Bluetooth

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The Bluetooth interface of the Web Bluetooth API provides methods to query Bluetooth availability and request access to devices.

EventTarget Bluetooth

Instance properties

Inherits properties from its parent EventTarget.

Instance methods

Bluetooth.getAvailability()

Returns a Promise that resolves to a boolean value indicating whether the user agent can support Bluetooth. Some user agents let the user configure an option that specifies what value is returned by this method.

Bluetooth.getDevices()

Returns a Promise that resolves to an array of BluetoothDevices this origin is allowed to access. Permission is obtained via previous calls to Bluetooth.requestDevice().

Bluetooth.requestDevice()

Returns a Promise that resolves to a BluetoothDevice object matching the specified options.

Specifications

Specification
Web Bluetooth
# bluetooth

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Bluetooth
Experimental
Chrome – Partial support
Chrome 56 – 69 (Release date: 2017-01-25)
footnote Partial support
footnote Only supported on macOS.
Chrome – Partial support
Chrome 70 (Release date: 2018-10-16)
footnote Partial support
footnote Linux support is not enabled by default.
Edge – Partial support
Edge 79 (Release date: 2020-01-15)
footnote Partial support
footnote Linux support is not enabled by default.
Firefox – No support
Firefox
footnote
footnote See bug 674737
Opera – Partial support
Opera 43 – 56 (Release date: 2017-02-07)
footnote Partial support
footnote Only supported on macOS.
Opera – Partial support
Opera 57 (Release date: 2018-11-28)
footnote Partial support
footnote Linux support is not enabled by default.
Safari – No support
Safari
footnote
footnote See bug 101034
Chrome Android – Full support
Chrome Android 56 (Release date: 2017-02-01)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 674737
Opera Android – Full support
Opera Android 43 (Release date: 2017-09-27)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote
footnote See bug 101034
Samsung Internet – Full support
Samsung Internet 6 (Release date: 2017-08-23)
footnote Full support
WebView Android – No support
WebView Android
footnote
footnote See bug 40703318
WebView on iOS – No support
WebView on iOS
footnote
footnote See bug 101034
getAvailability
Experimental
Chrome – Full support
Chrome 78 (Release date: 2019-10-22)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – No support
Firefox
footnote
footnote See bug 674737
Opera – Full support
Opera 65 (Release date: 2019-11-13)
footnote Full support
Safari – No support
Safari
footnote
footnote See bug 101034
Chrome Android – Full support
Chrome Android 78 (Release date: 2019-10-22)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 674737
Opera Android – Full support
Opera Android 56 (Release date: 2020-02-06)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote
footnote See bug 101034
Samsung Internet – Full support
Samsung Internet 12 (Release date: 2020-06-19)
footnote Full support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote
footnote See bug 101034
getDevices
Experimental
Chrome – No support
Chrome 85 (Release date: 2020-08-25)
disabled
disabled From version 85 users must explicitly set the #enable-experimental-web-platform-features preference to enabled. To change preferences in Chrome, visit chrome://flags.
Edge – No support
Edge 85 (Release date: 2020-08-27)
disabled
disabled From version 85 users must explicitly set the #enable-experimental-web-platform-features preference to enabled. To change preferences in Edge, visit about:flags.
Firefox – No support
Firefox
footnote
footnote See bug 674737
Opera – No support
Opera 71 (Release date: 2020-09-15)
disabled
disabled From version 71 users must explicitly set the #enable-experimental-web-platform-features preference to enabled. To change preferences in Opera, visit opera://flags.
Safari – No support
Safari
footnote
footnote See bug 101034
Chrome Android – No support
Chrome Android 85 (Release date: 2020-08-25)
disabled
disabled From version 85 users must explicitly set the #enable-experimental-web-platform-features preference to enabled. To change preferences in Chrome Android, visit chrome://flags.
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 674737
Opera Android – No support
Opera Android
footnote No support
Safari on iOS – No support
Safari on iOS
footnote
footnote See bug 101034
Samsung Internet – No support
Samsung Internet
footnote No support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote
footnote See bug 101034
requestDevice
Experimental
Chrome – Full support
Chrome 56 (Release date: 2017-01-25)
footnote Full support
Edge – Full support
Edge 79 (Release date: 2020-01-15)
footnote Full support
Firefox – No support
Firefox
footnote
footnote See bug 674737
Opera – Full support
Opera 43 (Release date: 2017-02-07)
footnote Full support
Safari – No support
Safari
footnote
footnote See bug 101034
Chrome Android – Full support
Chrome Android 56 (Release date: 2017-02-01)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote
footnote See bug 674737
Opera Android – Full support
Opera Android 43 (Release date: 2017-09-27)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote
footnote See bug 101034
Samsung Internet – Full support
Samsung Internet 6 (Release date: 2017-08-23)
footnote Full support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote
footnote See bug 101034
options.exclusionFilters parameter
Experimental
Chrome – Full support
Chrome 114 (Release date: 2023-05-30)
footnote Full support
Edge – Full support
Edge 114 (Release date: 2023-06-02)
footnote Full support
Firefox – No support
Firefox
footnote No support
Opera – Full support
Opera 100 (Release date: 2023-06-29)
footnote Full support
Safari – No support
Safari
footnote No support
Chrome Android – Full support
Chrome Android 114 (Release date: 2023-05-30)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote No support
Opera Android – Full support
Opera Android 76 (Release date: 2023-06-26)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – Full support
Samsung Internet 23 (Release date: 2023-10-18)
footnote Full support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote No support
options.filter.manufacturerData parameter
Experimental
Chrome – Full support
Chrome 92 (Release date: 2021-07-20)
footnote Full support
Edge – Full support
Edge 92 (Release date: 2021-07-22)
footnote Full support
Firefox – No support
Firefox
footnote No support
Opera – Full support
Opera 78 (Release date: 2021-08-03)
footnote Full support
Safari – No support
Safari
footnote No support
Chrome Android – Full support
Chrome Android 92 (Release date: 2021-07-20)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote No support
Opera Android – Full support
Opera Android 65 (Release date: 2021-10-20)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – Full support
Samsung Internet 16 (Release date: 2021-11-25)
footnote Full support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.
Has more compatibility info.