Skip to content
Stand with Ukraine flag

Telemetry

Publish telemetry by sending a POST request to:

POST https://thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry

See Getting Connected for authentication and connection details.

A flat JSON object of key-value pairs. ThingsBoard assigns the server receive time as the timestamp.

{"temperature": 42, "humidity": 73}
Terminal window
curl -s -X POST -H "Content-Type: application/json" -d '{"temperature":42,"humidity":73}' "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry"

Include ts (Unix milliseconds) when the device has a reliable clock and you want the exact measurement time stored instead of the server receive time.

{"ts": 1451649600512, "values": {"temperature": 42, "humidity": 73}}
Terminal window
curl -s -X POST -H "Content-Type: application/json" -d '{"ts":1451649600512,"values":{"temperature":42,"humidity":73}}' "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry"

1451649600512 is a Unix timestamp in milliseconds — corresponds to Fri, 01 Jan 2016 12:00:00.512 GMT.

Array of Objects with Client-Side Timestamps

Section titled “Array of Objects with Client-Side Timestamps”

Send a batch of readings in a single request, each with its own timestamp. Use this to flush buffered measurements captured while offline.

[
{"ts": 1451649600512, "values": {"temperature": 42, "humidity": 73}},
{"ts": 1451649601000, "values": {"temperature": 43, "humidity": 72}}
]
Terminal window
curl -s -X POST -H "Content-Type: application/json" -d '[{"ts":1451649600512,"values":{"temperature":42,"humidity":73}},{"ts":1451649601000,"values":{"temperature":43,"humidity":72}}]' "http://thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry"