# USB Device Identifier

> Paste a USB vendor or product ID — 1d6b, 0x1d6b, 1d6b:0002 — and get the names behind it, or plug a device in and read its class, USB version and interfaces.

- URL: https://bytescope.dev/en/usb-device-info/
- Locale: en · Also: [ja](https://bytescope.dev/ja/usb-device-info.md) · [zh-Hant](https://bytescope.dev/zh-Hant/usb-device-info.md)
- Runs: Looks ids up in your browser — nothing about your devices is sent anywhere.
- Requires: Chrome, Edge or Opera on desktop, and Chrome on Android (WebUSB). Not Firefox, Safari or iOS.
- Updated: 2026-09-08

## What it does

Every USB device announces itself with two 16-bit numbers: a vendor ID assigned to whoever makes it, and a product ID that vendor picks for the model. Those two numbers are what your operating system matches against to load a driver, what `lsusb`, Device Manager and `dmesg` print at you, and what a forum thread will ask for first. This page turns them back into names — either by hand, with nothing plugged in, or by reading a device you connect.

### Look up a VID and PID by hand

Type or paste an id in whatever shape you already have it: `1d6b` on its own, `0x1d6b`, the `1d6b:0002` pair that `lsusb` prints, or the `USB\VID_1D6B&PID_0002` hardware id Windows Device Manager shows on the Details tab. The vendor name comes back immediately, and the product name too when the pair is known. If you only remember the company, search by name instead — type `logitech` or `realtek` and pick the vendor from the list, along with how many of its products the database knows. This half needs no device, no permission prompt and no particular browser: it is a table lookup, and it works in Firefox and Safari exactly as it does in Chrome.

### Identify a device that's plugged in

In a Chromium browser, click Connect and pick a device from the browser's picker; anything you have already permitted shows up on its own. For each one the page lists the vendor and product ids with their resolved names, the device class, subclass and protocol, the USB specification version the device reports, its release number, and whatever manufacturer, product and serial strings it chooses to expose. Below that come the configuration descriptors: every interface, its alternate settings with their own class triplet, and each endpoint's number, direction, transfer type and packet size — which is how you find out that the thing you thought was a plain serial adapter also claims a HID interface.

### Where the names come from, and what leaves your browser

The name data is the `usb.ids` database from the Linux USB project at linux-usb.org — the same list `lsusb` reads, maintained by volunteers who take submissions from anyone. The exact version shipped here is printed next to the lookup box. Refreshing it is a manual step on our side, so a device released last month may well be a blank: an id with no name means nobody has submitted it yet, not that the device is fake. The file is fetched from this site the first time you look something up, parsed in the tab, and everything after that is local — no id you type and nothing about any device you connect is ever sent anywhere, and the site's analytics record only that the tool was used.

## Limits

Does not install drivers or fix an unrecognised device; it identifies a connected USB device by vendor/product ID.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"usb-device-info"`; `result` is WebUSB descriptor structure only. `serialNumber` is omitted. vendorId / productId / class codes are decimal numbers.

- `webUsbSupported` (boolean | null) — `null` = not probed yet; `false` = probed, WebUSB missing; `true` = `navigator.usb` exists.
- `devices` (array of objects) — Granted devices. Each has vendorId, productId, deviceClass, deviceSubclass, deviceProtocol, `usbVersion` (string or `null` when version parts were missing), `deviceVersion` (string or `null` when missing), `manufacturerName` / `productName` (string or `null` when the device did not expose that string — never invented from usb.ids), and `configurations` (configurationValue, configurationName or `null`, interfaces with alternates: interfaceClass/Subclass/Protocol, interfaceName or `null`, endpoints).

## FAQ

### What are a USB VID and PID?

The vendor ID is a 16-bit number the USB Implementers Forum assigns to a company; the product ID is a 16-bit number that company assigns to a specific model. Together they are how a host identifies what it is talking to before any driver is loaded. They are written as four hex digits each, and the `1d6b:0002` form you see everywhere is simply VID:PID.

### What can I paste into the lookup box?

A bare id (`1d6b`), a `0x`-prefixed one (`0x1d6b`), a VID:PID pair in either style, the same pair separated by a space, or a full Windows hardware id such as `USB\VID_1D6B&PID_0002`. Short ids are zero-padded, so `9` is read as `0009`. Anything that is not a valid hex id is rejected outright rather than silently truncated.

### Why is my device not in the list, or not in the picker?

Reading a plugged-in device uses WebUSB, which only Chromium browsers implement — there is no picker at all in Firefox or Safari, and the manual lookup above is the half that works there. Even in Chrome, devices whose class the browser protects (keyboards, mice, webcams, mass storage, smart cards) are hidden from the picker, and a device already claimed exclusively by a driver may not appear either. None of this affects the lookup half.

### Does connecting here open, claim or change my device?

No. The page reads only the descriptors the browser hands over when you grant permission — it never calls `open()`, never claims an interface and never sends a transfer. Unplugging is enough to undo everything; you can also revoke the permission from the icon in the address bar.

### Is anything uploaded?

No. The `usb.ids` file is downloaded from this site to your browser, which is the only network request the tool makes; the lookups themselves run against that copy in your tab. Ids you type, device names, and serial numbers never leave the page.

### The vendor name looks wrong or out of date — why?

Because `usb.ids` is a community list, not a registry export. Vendors get bought, rename themselves and reuse ids, and nobody is obliged to file an update — so an id can carry the name of a company that no longer exists, and a genuinely new product can be missing entirely. Treat a name as a strong hint, and the numbers as the fact.

## Related tools

- [HID Report Descriptor Inspector](https://bytescope.dev/en/hid-inspector.md) — Decode a HID report descriptor and watch input reports arrive live.
- [Web ADB](https://bytescope.dev/en/web-adb.md) — Talk ADB to an Android phone over the same USB cable, with nothing installed.
- [ESP Flasher](https://bytescope.dev/en/esp-flasher.md) — Flash ESP32 and ESP8266 firmware straight from the browser.
- [My Computer Specs](https://bytescope.dev/en/my-computer-specs.md) — See which GPU, how many CPU threads and how much RAM this browser reports, and whether hardware acceleration is on.
