Devices
Device Heartbeat
Report device health status for fleet monitoring
POST
Report device health status including battery level, storage usage, and signal strength. Health data is stored on the device record and returned in Get Device and List Devices responses.Documentation Index
Fetch the complete documentation index at: https://docs.bota.dev/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
This endpoint accepts two authentication methods depending on the device connectivity:| Path | Auth | Use case |
|---|---|---|
| 4G/WiFi direct | Device token | Device reports its own status directly |
| BLE relay | API key | Developer’s backend relays status read from device over BLE |
Path Parameters
The device’s unique identifier (e.g.,
dev_abc123), or me when using a device token. The me alias resolves to the device ID associated with the token, so the device doesn’t need to know its own Bota ID. When using an explicit device ID with a device token, it must match the token’s device.Request Body
All fields are optional — send only the metrics your device can report.Current battery level (0-100).
Storage used in megabytes.
Total storage capacity in megabytes.
Cellular signal strength in dBm (typically -50 to -120, where higher/less negative is better).
Current firmware version string (max 32 characters).
Device name (max 64 characters). Updated in the device record when provided.
Current device operational state (max 32 characters). One of:
idle, recording, syncing, uploading, charging, lowBattery, storageFull, error.Number of recordings on the device pending sync/upload.
Device status flags as a 1-byte bitmask (0-255). Bit 0: charging, Bit 1: low battery, Bit 2: storage full, Bit 3: WiFi connected, Bit 4: LTE connected, Bit 5: sync active.
Active device connections. Array of:
wifi, 4g, ble.Response
Returns{ "status": "ok" } on success.
Response Fields
| Field | Type | Description |
|---|---|---|
status | string | ok on success |
Recommended Heartbeat Interval
| Scenario | Interval |
|---|---|
| Normal operation | Every 15-30 minutes |
| Low battery (< 20%) | Every 5 minutes |
| Charging | Every 30-60 minutes |
| Poor signal (< -100 dBm) | Every 5-10 minutes |
Field Constraints
| Field | Type | Range |
|---|---|---|
battery_percent | integer | 0-100 |
storage_used_mb | integer | >= 0 |
storage_total_mb | integer | >= 0 |
signal_strength_dbm | integer | <= 0 (typically -50 to -120) |
firmware_version | string | max 32 characters |
device_name | string | max 64 characters |
device_state | string | max 32 characters |
pending_recordings | integer | >= 0 |
flags | integer | 0-255 |
connection_type | string[] | Array of wifi, 4g, ble |

