GATT Service Browser
Walk a Bluetooth device's service tree — read-only, and without touching a single value.
How this talks to your device
You pick a device from the browser's chooser, the page connects, and it walks the GATT tree: every primary service, every characteristic within it, and what each characteristic supports — read, write, notify, indicate and the rest. Standard services and characteristics are named from the Bluetooth SIG's assigned numbers, which are extracted properly from the full 128-bit UUID rather than by matching a prefix, so a vendor UUID that happens to begin with familiar digits is not mislabelled. Nothing is read and nothing is written. A characteristic read can change state on some peripherals, and a tool that quietly pokes every readable characteristic on hardware it does not understand is not a browsing tool. The properties are listed so you can see what is possible; doing it belongs to a tool built for that specific device.
What the results mean
- Standard service
- A service with a Bluetooth SIG assigned number, so its behaviour and packet layouts are published. Battery, Device Information and Heart Rate are the common ones.
- Vendor-specific service
- A UUID outside the SIG's base range. Only the manufacturer knows what it does, and this page shows the UUID rather than guessing.
- Properties
- What a characteristic supports. Notify is the interesting one — it means the device pushes updates rather than waiting to be polled, which is how live sensor readings work.
- Connected but no services
- The device is using services this page never requested. Web Bluetooth requires a page to declare what it wants in advance, so a fully proprietary device legitimately appears empty.
Common problems and fixes
- The tree is empty after connecting
- The device's services are vendor-specific and were not among those requested. There is no general fix from a browser — a page cannot ask for a UUID it does not know. The manufacturer's own app can, because it was written knowing them.
- A service appears with no characteristics under it
- The service exists but refused enumeration, which some devices do for services requiring authentication. It is listed as present because it is present — dropping it would be less accurate than showing it empty.
- The device disconnects immediately
- Many peripherals drop a connection that does not begin the exchange they expect within a second or two. That is the device's own timeout rather than a browser problem, and it means this tool cannot browse that device.
- You need to read an actual value
- This tool will not do it deliberately. Reading is a state-changing operation on some hardware, and the safe path is a tool built for your specific device. What this gives you is the map: which services exist and which characteristics support what.
Frequently asked questions
Why not just read every characteristic and show the values?
Because a read is not always free. On some peripherals reading a characteristic acknowledges an alert, advances a state machine or wakes hardware, and a generic browsing tool has no way to know which. Enumerating structure is safe on anything; reading everything is not, and the risk falls on the visitor's device rather than on us.
Why do I have to pick the device every time?
Web Bluetooth requires a user gesture and an explicit choice for each new session by design, so that a page cannot silently reconnect to hardware. Browsers that support the permitted-devices API can shorten this on repeat visits, but the first choice is always yours.
What is a GATT service, in plain terms?
A grouping of related values a device exposes. The Battery service holds a battery level; the Heart Rate service holds a measurement characteristic and a sensor location. Standard ones have published layouts so any client can read them — which is why a heart-rate strap works with software its manufacturer never heard of.
Can I use this to reverse-engineer a device?
It will show you the map — which services and characteristics exist and what operations they support — and that is genuinely where such work starts. It will not read or write values, so the next step needs a tool built for that purpose, on hardware you own.
More in Device
- BLE Device ScannerCheck a Bluetooth device connects and publishes what it should — from the browser.
- Heart-Rate Monitor TesterCheck your strap pairs, transmits and reports good contact. Not a medical measurement.
- Bluetooth Audio Latency TestFind out how many milliseconds your wireless headphones actually add.