Downlink — get frame status
Returns the current status of a frame queued with downlink_data_req: whether it is waiting to be sent, or has been handed to a gateway, radiated over the air or rejected. The frame is looked up by the dataId from the queuing response.
Useful if you are not subscribed to downlink_status messages or missed them, for example while reconnecting.
Request and response: downlink_ack_req → downlink_ack_resp.
Access: a low access level token sees the devices of its application and of applications that granted it access; a high access level token sees all devices of the owner.
Request
Fields not marked as required may be omitted.
| Field | Type | Description |
|---|---|---|
cmd | string | downlink_ack_req |
operation_id | string | Any string; the server returns it in the response to match the request and the response |
devEui | string | Required. Device DevEUI, 16 hex characters |
dataId | uint32 | Required. Frame identifier from downlink_data_resp |
{
"cmd": "downlink_ack_req",
"operation_id": "abc",
"devEui": "6F1E570FFE14DBFC",
"dataId": 3046127811
}
Response
| Field | Type | Description |
|---|---|---|
cmd | string | downlink_ack_resp |
operation_id | string | Value from the request |
dataId | uint32 | Frame identifier from the request |
downlink_status | uint8 | Frame status code, see the status table |
downlink_status_text | string | Status name, e.g. Delivered |
downlink_status_time | string | When the status was set, UTC, ISO 8601 |
ack_time | string or null | When the frame got its final status, UTC, format YYYY-MM-DD HH:MM:SS+0000; null while there is no final status |
status, error_code, error_text | uint8, uint8, string | Only on error: status = 2, see below |
{
"cmd": "downlink_ack_resp",
"operation_id": "abc",
"dataId": 3046127811,
"ack_time": "2026-10-08 09:47:21+0000",
"downlink_status": 3,
"downlink_status_text": "Delivered",
"downlink_status_time": "2026-10-08T09:47:21.402113+00:00"
}
Errors
error_code | error_text | What happened |
|---|---|---|
| 1 | dataId is required | dataId or devEui is missing |
| 2 | Device not found | There is no frame with this dataId for this device, or the device is not available with your token |
Good to know
- A successful response has no
statusfield. The v0.17 description includes it, but the current server version addsstatusonly on error. Success is indicated by the presence ofdownlink_status. - The confirmation comes from the gateway, not from the device. Status 3 (Delivered) means the gateway radiated the frame. The device does not acknowledge reception: frames are sent unconfirmed.
See also
- Sending data to a device — the whole scenario and frame statuses.
get_downlink_data_req— history of sent frames for a period.