Skip to content
Stand with Ukraine flag

Attributes

The HTTP Attributes API lets devices upload client-side attributes, request attribute values, and poll for shared attribute updates. For an explanation of attribute types, see Attributes.

See Getting Connected for authentication and connection details.

Upload client-side attributes with a POST request:

POST https://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes
{"attribute1": "value1", "attribute2": true, "attribute3": 42.0}
Terminal window
curl -s -X POST -H "Content-Type: application/json" -d '{"attribute1":"value1","attribute2":true,"attribute3":42.0}' "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes"

Request client-side and shared attribute values with a GET request:

GET https://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes?clientKeys=attr1,attr2&sharedKeys=shared1,shared2
Query parameterDescription
clientKeysComma-separated list of client-side attribute keys to return
sharedKeysComma-separated list of shared attribute keys to return
Terminal window
curl -s "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes?clientKeys=attribute1,attribute2&sharedKeys=shared1,shared2"

Response:

{"client": {"attribute1": "value1", "attribute2": true}, "shared": {"shared1": "value2", "shared2": false}}

Poll for shared attribute changes with a long-lived GET request:

GET https://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes/updates?timeout=20000
Terminal window
curl -s "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/attributes/updates?timeout=20000"

The request blocks until a shared attribute changes or the timeout elapses. The timeout parameter is in milliseconds. When an update occurs, ThingsBoard returns the changed attributes:

{"shared": {"firmware_version": "2.1.0"}}