Skip to content

Telemetry API

Endpoints for retrieving node telemetry data.

Get Latest Telemetry

http
GET /api/ui/telemetry/{node_num}

Returns the most recent telemetry data for a node.

Path Parameters

ParameterTypeDescription
node_numintegerNumeric node identifier

Response

json
{
  "node_num": 1234567890,
  "battery_level": 85,
  "voltage": 4.1,
  "channel_utilization": 12.5,
  "air_util_tx": 3.2,
  "snr": 8.5,
  "rssi": -95,
  "temperature": 28.5,
  "relative_humidity": 65.0,
  "barometric_pressure": 1013.25,
  "timestamp": "2024-01-15T10:30:00Z"
}

Response Fields

FieldTypeUnitDescription
battery_levelinteger%Battery percentage (0-100)
voltagenumberVBattery voltage
channel_utilizationnumber%Channel airtime usage
air_util_txnumber%Transmit utilization
snrnumberdBSignal-to-noise ratio
rssinumberdBmReceived signal strength
temperaturenumber°CDevice temperature
relative_humiditynumber%Relative humidity
barometric_pressurenumberhPaBarometric pressure
timestampstringISO 8601 timestamp

Get Telemetry History

http
GET /api/ui/telemetry/{node_num}/history/{metric}

Returns historical values for a specific telemetry metric.

Path Parameters

ParameterTypeDescription
node_numintegerNumeric node identifier
metricstringMetric name (see below)

Query Parameters

ParameterTypeDefaultDescription
hoursinteger24Hours of history to return
source_idintegerFilter by source ID

Available Metrics

MetricDescription
battery_levelBattery percentage
voltageBattery voltage
channel_utilizationChannel usage percentage
air_util_txTransmit utilization
snrSignal-to-noise ratio
rssiReceived signal strength
temperatureDevice temperature
relative_humidityHumidity percentage
barometric_pressureAir pressure

Response

json
{
  "metric": "battery_level",
  "node_num": 1234567890,
  "data": [
    {
      "timestamp": "2024-01-15T10:00:00Z",
      "value": 85
    },
    {
      "timestamp": "2024-01-15T09:00:00Z",
      "value": 87
    },
    {
      "timestamp": "2024-01-15T08:00:00Z",
      "value": 89
    }
  ]
}

Time Ranges

Common time ranges for telemetry queries:

HoursDescription
6Last 6 hours
12Last 12 hours
24Last 24 hours (default)
48Last 2 days
72Last 3 days
168Last 7 days

Data Aggregation

When querying long time ranges, data points may be aggregated:

  • < 24 hours: Raw data points
  • 24-72 hours: 15-minute averages
  • > 72 hours: 1-hour averages

This ensures reasonable response sizes while maintaining data fidelity.

Example: Fetch Battery History

bash
curl "http://localhost:8080/api/ui/telemetry/1234567890/history/battery_level?hours=24"

Example: Fetch All Metrics for a Node

bash
# Get latest telemetry
curl "http://localhost:8080/api/ui/telemetry/1234567890"

# Get specific metric history
for metric in battery_level voltage snr rssi; do
  curl "http://localhost:8080/api/ui/telemetry/1234567890/history/${metric}?hours=24"
done