Skip to Content
edgebootDevicesNetwork MetricsGet devices network metrics

Get devices network metrics

GET/api/v1/integrations/devices/network/{resource}Devices

Returns network time-series metrics for several devices at once (up to 100 per request). For a single device you can also use Get device network metrics, which returns a flat list of rows. The same route handles five resources; choose one via the resource path segment: latency, packet-loss, jitter, metrics, or lte.

Pass the devices as serial_numbers (comma-separated; a single serial number works too). The account is resolved from the Bearer token and every device must belong to that account; if any device is not found, the whole request fails with 400 and no metrics are returned.

The available history depends on the metrics store enabled on the platform:

  • Extended history: interval or a start/end range, up to 30 days. Default window: last 24 hours.
  • Standard history: interval only, up to 12 hours. Default window: last 12 hours. Sending start/end returns 400.

Validation errors (bad serial_numbers, interval, start/end, time_bucket, or unknown query parameters) return 400 with success: false, a text message describing the error, and request_id when available.

Authentication
Bearer access token
Content-Type
application/json

Path parameters

ParameterTypeRequiredDescription
resourcestringYesMetric family to query. Must be exactly one of the values in the table below.

resource values

resourceDescription
latencyAverage, minimum and maximum latency per time bucket.
packet-lossAverage, minimum and maximum packet loss per time bucket.
jitterAverage jitter per time bucket: the mean absolute difference between consecutive latency samples of the same interface and probe target.
metricsLatency, packet loss and jitter together in one row per time bucket.
lteLTE radio metrics per time bucket: RSSI (dBm) and CSQ (0–30), using the same scaling as the portal historical metrics.

Any other resource value returns 404 with success: false and a message listing the allowed values (latency, packet-loss, jitter, metrics, lte).

Query parameters

Use either interval or start/end. When neither is sent, the last 24 hours (extended history) or 12 hours (standard history) are returned.

ParameterTypeRequiredDescription
serial_numbersstringYesComma-separated device serial numbers, e.g. ABC123456,DEF789012, or a single serial number. Repeating the parameter (serial_numbers=A&serial_numbers=B) also works. Duplicates are removed; between 1 and 100 devices per request. Every device must belong to the token account.
intervalstringNoLookback window from now. Extended history: default 24h, at most 30d. Standard history: default and maximum 12h. Must match ^\d+[hd]$ (hours or days), e.g. 1h, 12h, 7d. Cannot be combined with start/end.
startstringNoRange start as an ISO 8601 timestamp, e.g. 2026-09-01T00:00:00Z. Timestamps without an offset are treated as UTC. Must be in the past. Extended history only; with standard history it returns 400.
endstringNoRange end as an ISO 8601 timestamp. Requires start and must be after it. Defaults to now; a future value is capped to now. start and end can be at most 30 days apart.
time_bucketstringNoAggregation bucket size. Default 1h. Must match ^\d+[mhd]$ (minutes, hours, or days), e.g. 15m, 1h, 1d, and must not be larger than the time range. Same field accepts query aliases bucket or time_bucket_size.
probe_targetstringNoOptional probe target (e.g. 8.8.8.8) to return a single probe target. Default returns all probe targets. Ignored when resource=lte.

Request size limit

The number of devices multiplied by the number of time buckets in the window must not exceed 20,000. For example, 100 devices over 7d with time_bucket=1h is 100 × 168 = 16,800 and is accepted, while 100 devices over 30d with time_bucket=1h (72,000) is rejected with 400. Send fewer serial_numbers, use a larger time_bucket, or shorten the window.

Headers

HeaderValueRequired
AuthorizationBearer <access_token>Yes

Responses

On success, data is an array with one entry per requested device, in the order the devices were sent. Devices that reported no metrics in the window are still included, with an empty rows array.

Device entry fields

FieldTypeDescription
serial_numberstringDevice serial number.
namestringDevice name. Omitted when the device has no name.
statusstringCurrent device status: `online` or `offline`.
rowsarrayTime-bucketed metric rows for the requested `resource` (fields below). Empty when the device reported no metrics in the window.

Row fields

Every row has time_bucket (bucket start, ISO 8601 UTC) and interface. Rows for latency, packet-loss, jitter and metrics also include probe_target.

resourceMetric fields
latency`avg_latency_avg`, `min_latency_min`, `max_latency_max`
packet-loss`avg_packet_loss`, `min_packet_loss`, `max_packet_loss`
jitter`jitter`
metrics`avg_latency_avg`, `min_latency_min`, `max_latency_max`, `avg_packet_loss`, `min_packet_loss`, `max_packet_loss`, `jitter`
lte`avg_rssi`, `min_rssi`, `max_rssi` (dBm) and `avg_csq`, `min_csq`, `max_csq` (0–30)

If a bucket has no valid samples for a field, that field is 0.

Status codes

HTTPDescription
200`success: true`, `data` = array of device entries (see above), `request_id` set.
400Bad request — invalid or missing `serial_numbers`, more than 100 devices, invalid `interval` / `start` / `end` / `time_bucket`, window longer than allowed (30 days, or 12 hours with standard history), `start`/`end` with standard history, request size limit exceeded, unknown query parameters, or one or more `serial_numbers` not found in the account (`success: false`, `text`, `request_id`).
401Unauthorized — invalid or missing Bearer token.
404Unknown `resource`, or no account resolved from the token (`success: false`, `text`, `request_id`).
500Metrics store or service error, `text` = `Unable to load network metrics` (`success: false`, `text`, `request_id`).

Success payload examples (200)

Error payload examples

Examples

Defaults match the API model: last 24h (extended history) or 12h (standard history) and time_bucket=1h if you omit interval, start/end and time_bucket. The start/end examples require extended history.

Last updated on