This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The USB interface of the WebUSB API provides attributes and methods for finding and connecting USB devices from a web page.
Use navigator.usb to get access to the USB object.
The USB interface inherits from EventTarget.
None.
USB.getDevices() Experimental
Returns a Promise that resolves with an array of USBDevice objects for paired attached devices.
USB.requestDevice() Experimental
Returns a Promise that resolves with an instance of USBDevice if the specified device is found. Calling this function triggers the user agent's pairing flow.
connect Experimental
Fired whenever a previously paired device is connected.
disconnect Experimental
Fired whenever a paired device is disconnected.
| Specification |
|---|
| WebUSB API> # usb> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
USB |
61 | 79 | No | 48 | No | 61 | No | 45 | No | 8.0 | NoWebView exposes this interface, but does not support WebUSB. See bug 41441927. |
No |
connect_event |
61 | 79 | No | 48 | No | 61 | No | 45 | No | 8.0 | No | No |
disconnect_event |
61 | 79 | No | 48 | No | 61 | No | 45 | No | 8.0 | No | No |
getDevices |
61 | 79 | No | 48 | No | 61 | No | 45 | No | 8.0 | No | No |
requestDevice |
61 | 79 | No | 48 | No | 61 | No | 45 | No | 8.0 | No | No |
worker_support |
118Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.70–118Available in dedicated workers, not available in shared workers and service workers. |
118Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.79–118Available in dedicated workers, not available in shared workers and service workers. |
No |
104Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.57–104Available in dedicated workers, not available in shared workers and service workers. |
No |
118Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.70–118Available in dedicated workers, not available in shared workers and service workers. |
No |
79Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.49–79Available in dedicated workers, not available in shared workers and service workers. |
No |
25.0Available in dedicated workers and WebExtension service workers, not available in shared workers and normal service workers.10.0–25.0Available in dedicated workers, not available in shared workers and service workers. |
NoWebView exposes this interface, but does not support WebUSB. |
No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/USB