USB Device List
List connected USB devices using the WebUSB browser API. View vendor ID, product ID, manufacturer, and serial number for each granted device.
Input
Output
| Product Name | Manufacturer | Vendor ID | Product ID | Serial Number | USB Version |
|---|---|---|---|---|---|
| No USB devices found. Click "Add Device" to grant access. | |||||
Readme
What is the WebUSB API?
The WebUSB API is a browser standard that allows web pages to communicate directly with USB devices — without installing native drivers or desktop applications. It was introduced in Chrome 61 and gives websites controlled, permission-gated access to hardware such as microcontrollers, development boards, MIDI interfaces, and other USB peripherals.
Unlike traditional USB access (which requires kernel-level drivers), WebUSB works entirely in the browser sandbox. Users must explicitly grant permission to each device through the browser's built-in device picker, which ensures that no website can silently read from or write to your hardware.
Tool description
This tool lets you enumerate USB devices that have been granted to the browser via the WebUSB API. On load it automatically lists any previously permitted devices. You can also open the browser's native USB picker to grant access to a newly connected device, or refresh the list at any time.
For each device the tool displays the product name, manufacturer, vendor ID, product ID, serial number, and USB protocol version.
Features
- Automatically loads previously granted USB devices on page open
- Opens the browser's native USB device picker to grant access to new devices
- Displays vendor ID and product ID in standard hexadecimal notation (e.g.
0x1A2B) - Shows USB protocol version (e.g.
2.0,3.1) alongside device identity fields - Sortable results table with CSV and JSON export
How it works
When you click Add Device, the browser calls navigator.usb.requestDevice() and displays a system-level picker listing connected USB devices. If you select one, the browser stores the permission for that origin. On subsequent visits (or after clicking Refresh), navigator.usb.getDevices() returns all previously permitted devices without prompting again.
Vendor ID and product ID are rendered in 4-digit uppercase hex (e.g. 0x04D8) — the standard format used in USB registries and datasheets.
Use cases
- Firmware developers can quickly confirm that a connected microcontroller or development board (Arduino, STM32, RP2040, etc.) is correctly enumerated by the browser before writing a WebUSB-based flashing tool.
- Web app developers can verify that their WebUSB-enabled application will see the expected device identity fields during early-stage prototyping.
Limitations
- WebUSB is only supported in Chromium-based browsers (Chrome, Edge, Opera). Firefox and Safari do not implement this API.
- The page must be served over HTTPS (or
localhost) — WebUSB is blocked on plain HTTP origins. - Some operating system and browser combinations restrict access to certain device classes (e.g. HID, mass storage) even when permissions are granted.
- This tool reads device metadata only; it does not open any USB interface or transfer data to/from the device.