This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The BluetoothRemoteGattCharacteristic interface of the Web Bluetooth API represents a GATT Characteristic, which is a basic data element that provides further information about a peripheral’s service.


interface BluetoothRemoteGATTCharacteristic {
  readonly attribute BluetoothRemoteGATTService service;
  readonly attribute UUID uuid;
  readonly attribute BluetoothCharacteristicProperties properties;
  readonly attribute DataView? value;
  Promise<BluetoothRemoteGATTDescriptor> getDescriptor(BluetoothDescriptorUUID descriptor);
    getDescriptors(optional BluetoothDescriptorUUID descriptor);
  Promise<DataView> readValue();
  Promise<void> writeValue(BufferSource value);
  Promise<void> startNotifications();
  Promise<void> stopNotifications();
BluetoothRemoteGATTCharacteristic implements EventTarget;
BluetoothRemoteGATTCharacteristic implements CharacteristicEventHandlers;


BluetoothRemoteGATTCharacteristic.service Read only
Returns the BluetoothGATTService this characteristic belongs to.
BluetoothRemoteGATTCharacteristic.uuid Read only
Returns a DOMString containing the UUID of the characteristic, for example '00002a37-0000-1000-8000-00805f9b34fb' for the Heart Rate Measurement characteristic. Read only
Returns the properties of this characteristic.
BluetoothRemoteGATTCharacteristic.value Read only
The currently cached characteristic value. This value gets updated when the value of the characteristic is read or updated via a notification or indication.


BluetoothRemoteGATTCharacteristic.getDescriptor() Read only
Returns a Promise that resolves to the first BluetoothGATTDescriptor for a given descriptor UUID.
BluetoothRemoteGATTCharacteristic.getDescriptors() Read only
Returns a Promise that resolves to an Array of all BluetoothGATTDescriptor objects for a given descriptor UUID.
BluetoothRemoteGATTCharacteristic.readValue() Read only
Returns a Promise that resolves to an ArrayBuffer holding a duplicate of the value property if it is available and supported. Otherwise it throws an error.
BluetoothRemoteGATTCharacteristic.writeValue() Read only
Sets the value property to the bytes contained in an ArrayBuffer and returns a Promise.
BluetoothRemoteGATTCharacteristic.startNotifications() Read only
Returns a Promise when navigator.bluetooth is added to the active notification context.
BluetoothRemoteGATTCharacteristic.stopNotifications() Read only
Returns a Promise when navigator.bluetooth is removed from the active notification context.


Specification Status Comment
Web Bluetooth Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support56 ? No ?43 ?
getDescriptor56 ? No ?43 ?
getDescriptors56 ? No ?43 ?
properties56 ? No ?43 ?
readValue56 ? No ?43 ?
service56 ? No ?43 ?
startNotifications56 ? No ?43 ?
stopNotifications56 ? No ?43 ?
uuid56 ? No ?43 ?
value56 ? No ?43 ?
writeValue56 ? No ?43 ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No56 ? No43 ? ?
getDescriptor No56 ? No43 ? ?
getDescriptors No56 ? No43 ? ?
properties No56 ? No43 ? ?
readValue No56 ? No43 ? ?
service No56 ? No43 ? ?
startNotifications No56 ? No43 ? ?
stopNotifications No56 ? No43 ? ?
uuid No56 ? No43 ? ?
value No56 ? No43 ? ?
writeValue No56 ? No43 ? ?

Document Tags and Contributors

Contributors to this page: fscholz, jpmedley, chrisdavidmills
Last updated by: fscholz,