DCDevicecamp
Menu

Telemetry with one authenticated POST.

Use HTTPS for scripts, gateways and devices that wake periodically. Each credential belongs to exactly one device.

Endpoint

POST JSON to the device telemetry URL with its bearer secret. The body may contain up to 32 numeric, boolean or bounded string metrics.

curl -X POST https://api.devicecamp.app/v1/devices/DEVICE_ID/telemetry \
  -H "Authorization: Bearer DEVICE_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"temperature":22.4,"humidity":51}'

Timestamps and retries

Add recorded_at when the reading time differs from arrival time and message_id when retrying. Reusing a message ID is idempotent.

{"message_id":"reading-0042","recorded_at":"2026-07-25T08:00:00Z","metrics":{"temperature":22.4}}

Rejected means not stored

Devicecamp rejects invalid UTF-8, duplicate JSON keys, unknown envelope fields, non-finite numbers, oversized values, invalid timestamps and metric type changes. A failed reading is never stored partially.

Keep the boundary clear

Do not use agent tokens or browser cookies for ingestion. Rotate a device credential from Manage device if it is ever exposed.