Web Bluetooth works in Chrome 56+, Edge 79+, Opera 43+, and Samsung Internet 6.2+. Firefox and Safari do not support it. Learn the API, use cases, and limits.

Prince Dewani
May 1, 2026
Web Bluetooth is a JavaScript API from the W3C Web Bluetooth Community Group that lets web pages talk to Bluetooth Low Energy devices through a secure permission flow. It works in Chrome 56+ on macOS, Android, and ChromeOS, Chrome 70+ on Windows, Edge 79+, Opera 43+, Opera Mobile 80+, and Samsung Internet 6.2+, while Firefox, Safari on macOS, and Safari on iOS do not support it in any version.
This guide covers what Web Bluetooth is, the browsers that ship it, the key API features, real-world use cases, and the limitations to plan around before you ship.
Web Bluetooth is a JavaScript API that gives a web page access to Bluetooth Low Energy peripherals through the Generic Attribute Profile (GATT), exposed on the navigator.bluetooth object. The Web Bluetooth Community Group at the W3C edits the spec, with Reilly Grant and Ovidio Ruiz-Henriquez at Google as the listed editors. The API first shipped in Chrome 56 in January 2017 and is gated to secure HTTPS contexts and a user-gesture permission prompt for every new device.
Chromium-based desktop and Android browsers ship Web Bluetooth, while Firefox and every Safari version on macOS, iOS, and iPadOS leave it out, so global browser support sits near 76% as of April 2026.
Chrome supports Web Bluetooth from Chrome 56 on macOS, Android 6.0+, and ChromeOS, and from Chrome 70 on Windows 10 version 1703 and later. Chrome 45 to 55 had the API disabled by default behind chrome://flags/#enable-experimental-web-platform-features. Chrome on Linux still ships Web Bluetooth only when that experimental flag is on, and the platform needs Linux Kernel 3.19+ with BlueZ 5.41+ installed. Chrome 4 to 44 did not support Web Bluetooth.
Microsoft Edge supports Web Bluetooth from Edge 79, the first Chromium-based release shipped on January 15, 2020, on Windows 10 and macOS. Pre-Chromium EdgeHTML 12 to 44 never added the API, and Internet Explorer never supported it. Edge for Linux follows the same experimental-flag rule that Chrome on Linux uses.
Firefox does not support Web Bluetooth in any version on Windows, macOS, Linux, or Android. Mozilla published a harmful standards position on the spec, citing fingerprinting, tracking, and security concerns about exposing low-level radio access. There is no about:config preference that turns it on, and there is no public Mozilla plan to ship it.
Safari does not support Web Bluetooth on macOS in any version, including Safari 18 on macOS Sequoia and Safari 17 on macOS Sonoma. Apple WebKit has not published a public position on the spec, and no WebKit bug tracks an active implementation. macOS users who need a Web Bluetooth tester can install Chrome, Edge, or Opera instead.
Safari on iOS and iPadOS does not support Web Bluetooth in any version, including iOS 18 and iPadOS 18. Apple's app store rules force every iOS browser to use the WebKit engine, so Chrome on iOS and Edge on iOS inherit the same gap. iPhone and iPad users who need Web Bluetooth must install Bluefy or WebBLE, third-party browsers from the App Store that ship a separate Bluetooth stack.
Opera supports Web Bluetooth from Opera 43, released February 7, 2017, on Windows, macOS, and Linux, and tracks every Chromium release after that. Opera 36 to 42 had the API disabled by default behind the same experimental flag Chrome used. Opera Mobile supports Web Bluetooth from Opera Mobile 80 on Android, while Opera Mini does not support it in any version.
Samsung Internet supports Web Bluetooth from Samsung Internet 6.2, released April 2018, on Galaxy phones and tablets running Android 6.0 Marshmallow or later. The browser ships the same Chromium GATT pipeline Chrome uses on Android. Samsung Internet 1.0 to 6.0 did not support the API.
Chrome for Android, Samsung Internet, and Android WebView together provide Web Bluetooth on most modern Android phones running Android 6.0 Marshmallow or later. The legacy stock Android Browser, last shipped with Android 4.4 KitKat, never added the API. Firefox for Android does not support Web Bluetooth in any version.
Internet Explorer does not support Web Bluetooth in any version. The API depends on a Chromium device service plumbing that Trident never had. Internet Explorer is end-of-life and out of support, so move any Bluetooth-dependent web app to Chromium-based Edge or Chrome for any new work.
The Web Bluetooth API is built around a permission-gated chooser, a GATT client for service discovery, and event-based connection updates. Every call runs in a secure HTTPS context on a top-level page or in an iframe that the parent has unlocked through the bluetooth Permissions-Policy.
Web Bluetooth lets a web app talk directly to a paired BLE device without a native app or driver. That is the right fit for short-lived configuration tools, wellness dashboards, and IoT control panels. Production sites already use it for health, fitness, education, and hardware control.
Paste this snippet into the DevTools console of Chrome, Edge, or Opera over HTTPS. Click anywhere on the page once and the chooser opens, ready to read battery level from any BLE device the user picks.
// Paste this into the DevTools console of Chrome, Edge, or Opera over HTTPS.
// Click anywhere on the page once and the device chooser opens.
if (navigator.bluetooth) {
console.log("Web Bluetooth is available.");
document.body.addEventListener("click", async () => {
try {
const device = await navigator.bluetooth.requestDevice({
acceptAllDevices: true,
optionalServices: ["battery_service"],
});
console.log("Picked device:", device.name);
const server = await device.gatt.connect();
const service = await server.getPrimaryService("battery_service");
const level = await service.getCharacteristic("battery_level");
const value = await level.readValue();
console.log("Battery level:", value.getUint8(0), "percent");
} catch (err) {
console.error("Bluetooth request failed:", err.message);
}
}, { once: true });
} else {
console.log("Web Bluetooth is not supported in this browser.");
}If the console prints "Web Bluetooth is not supported in this browser", you are on Firefox, Safari, or a mobile iOS browser. Fall back to a native helper app or to Bluefy on iOS for those visitors.
Note: Web Bluetooth breaks across Firefox, Safari, and iOS. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
Web Bluetooth has the smallest footprint of any modern device API outside Chromium. The painful edges show up around Firefox refusal, the Safari and iOS gap, and the rules Chrome layered on top of GATT to keep users safe.
In my experience, the trickiest failure is the user-gesture rule paired with React. A useEffect that calls requestDevice on mount throws every time, even after a real click somewhere else, because Chrome has already burned the activation token by the time the effect runs. Wire requestDevice to an onClick handler on a real button and the problem disappears.
All Web Bluetooth version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance