Skip to content

WebUSB API browser support

Published

The WebUSB API lets a web app request access to a non-standard USB device through navigator.usb.requestDevice(), filtered by vendor and product ID, and communicate with it directly after open(). The configuration and interface numbers to select and claim come from the device’s own descriptors in device.configurations; claimInterface() takes an interface for exclusive use until releaseInterface() or close(). The request needs a secure context and transient user activation.

The table covers navigator.usb.requestDevice() and the core device pairing flow, derived from MDN browser-compat-data.

  • Legend
  • Yes
  • Partial
  • Flag
  • No
  • Unknown
Browser / PlatformSupportVersionsConfidenceSourceNotes
Chrome (Desktop)Yes61highsource—
Chrome (Android)Yes61highsource1
Edge (Desktop)Yes79highsource2
Firefox (Desktop)No—highsource3
Firefox (Android)No—highsource45
Safari (macOS)No—highsource6
Safari (iOS)No—highsource78
Samsung InternetYes8.0highsource9
WebView (Android)No—highsource10
OperaYes48highsource—
  1. Derived by browser-compat-data mirroring from Chrome.
  2. Derived by browser-compat-data mirroring from Chrome.
  3. No Firefox support is recorded in browser-compat-data.
  4. No Firefox for Android support is recorded in browser-compat-data.
  5. Derived by browser-compat-data mirroring from Firefox.
  6. No Safari support is recorded in browser-compat-data.
  7. No Safari on iOS support is recorded in browser-compat-data.
  8. Derived by browser-compat-data mirroring from Safari.
  9. Derived by browser-compat-data mirroring from Chrome Android.
  10. No WebView Android support is recorded in browser-compat-data.

Source data: /compatibility/web-usb.json · Global usage: 74 % (StatCounter 2026-05)

Source: spec · MDN · Last verified 2026-10-03 · Confidence: high (computed from sources)