coderef

Web BluetoothLimited availability

The Web Bluetooth API enables selecting and communicating with nearby Bluetooth devices.

Not yet supported in all major browsers — check the table and provide a fallback.

Browser support

DesktopChrome
1–69Not supported
70+Supportedsince Oct 16, 2018
Current: 155
Edge
12–18Not supported
79+Supportedsince Jan 15, 2020
Current: 154
Firefox
✕Not supportedup to 157
Current: 157
Safari
✕Not supportedup to 27
Current: 27
MobileChrome Android
18–55Not supported
56+Supportedsince Feb 1, 2017
Current: 155
Firefox Android
✕Not supportedup to 157
Current: 157
Safari iOS
✕Not supportedup to 27
Current: 27

How to use

Not supported in Firefox, Safari, Firefox Android, Safari iOS. Use feature detection below and provide a fallback (or a polyfill) for those browsers.

Example

Full syntax and examples are on MDN: Bluetooth.

Feature detection

JS · check before using
if ("Bluetooth" in globalThis) {
  // Bluetooth is available
} else {
  // load a polyfill or use a fallback
}

Sub-features

Support for each part of the feature (61). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
Bluetooth✕✕✕✕56✕✕
Bluetooth.getAvailability✕✕✕✕78✕✕
Bluetooth.getDevices✕✕✕✕✕✕✕
Bluetooth.requestDevice✕✕✕✕56✕✕
Bluetooth.requestDevice.options_exclusionFilters_parameter✕✕✕✕114✕✕
Bluetooth.requestDevice.options_filter_manufacturerData_parameter✕✕✕✕92✕✕
BluetoothCharacteristicProperties✕✕✕✕56✕✕
BluetoothCharacteristicProperties.authenticatedSignedWrites✕✕✕✕56✕✕
BluetoothCharacteristicProperties.broadcast✕✕✕✕56✕✕
BluetoothCharacteristicProperties.indicate✕✕✕✕56✕✕
BluetoothCharacteristicProperties.notify✕✕✕✕56✕✕
BluetoothCharacteristicProperties.read✕✕✕✕56✕✕
BluetoothCharacteristicProperties.reliableWrite✕✕✕✕56✕✕
BluetoothCharacteristicProperties.writableAuxiliaries✕✕✕✕56✕✕
BluetoothCharacteristicProperties.write✕✕✕✕56✕✕
BluetoothCharacteristicProperties.writeWithoutResponse✕✕✕✕56✕✕
BluetoothDevice✕✕✕✕56✕✕
BluetoothDevice.gatt✕✕✕✕56✕✕
BluetoothDevice.gattserverdisconnected_event✕✕✕✕56✕✕
BluetoothDevice.id✕✕✕✕56✕✕
Show 41 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
BluetoothDevice.name✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.characteristicvaluechanged_event✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.getDescriptor✕✕✕✕57✕✕
BluetoothRemoteGATTCharacteristic.getDescriptors✕✕✕✕57✕✕
BluetoothRemoteGATTCharacteristic.properties✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.readValue✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.service✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.startNotifications✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.stopNotifications✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.uuid✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.value✕✕✕✕56✕✕
BluetoothRemoteGATTCharacteristic.writeValueWithResponse✕✕✕✕85✕✕
BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse✕✕✕✕85✕✕
BluetoothRemoteGATTDescriptor✕✕✕✕57✕✕
BluetoothRemoteGATTDescriptor.characteristic✕✕✕✕57✕✕
BluetoothRemoteGATTDescriptor.readValue✕✕✕✕57✕✕
BluetoothRemoteGATTDescriptor.uuid✕✕✕✕57✕✕
BluetoothRemoteGATTDescriptor.value✕✕✕✕57✕✕
BluetoothRemoteGATTDescriptor.writeValue✕✕✕✕57✕✕
BluetoothRemoteGATTServer✕✕✕✕56✕✕
BluetoothRemoteGATTServer.connect✕✕✕✕56✕✕
BluetoothRemoteGATTServer.connected✕✕✕✕56✕✕
BluetoothRemoteGATTServer.device✕✕✕✕56✕✕
BluetoothRemoteGATTServer.disconnect✕✕✕✕56✕✕
BluetoothRemoteGATTServer.getPrimaryService✕✕✕✕56✕✕
BluetoothRemoteGATTServer.getPrimaryServices✕✕✕✕56✕✕
BluetoothRemoteGATTService✕✕✕✕56✕✕
BluetoothRemoteGATTService.device✕✕✕✕56✕✕
BluetoothRemoteGATTService.getCharacteristic✕✕✕✕56✕✕
BluetoothRemoteGATTService.getCharacteristics✕✕✕✕56✕✕
BluetoothRemoteGATTService.isPrimary✕✕✕✕56✕✕
BluetoothRemoteGATTService.uuid✕✕✕✕56✕✕
BluetoothUUID✕✕✕✕56✕✕
BluetoothUUID.canonicalUUID_static✕✕✕✕56✕✕
BluetoothUUID.getCharacteristic_static✕✕✕✕56✕✕
BluetoothUUID.getDescriptor_static✕✕✕✕56✕✕
BluetoothUUID.getService_static✕✕✕✕56✕✕
Navigator.bluetooth✕✕✕✕56✕✕
iframe.allow.bluetooth104104✕✕104✕✕
http.headers.Permissions-Policy.bluetooth104104✕✕104✕✕