Use these endpoints to retrieve the delivery status of sent messages.
Before making requests, ensure you have configured authentication.
| Endpoint | Use when |
|---|---|
| Get by message ID | You have the message ID returned by the send API |
| Get by phone number | You want the history of messages sent to a number |
| Get by reference key | You want to track messages by your own reference key |
For the full technical reference, see the OpenAPI specification.
Use webhooks for real-time status updates (push).
All three endpoints return the same response structure. For the list endpoints (/phonenumber and /reference), the response is wrapped in a messages array; each item contains a message object with the fields below.
id: Message identifierproviderAcceptanceAt: Timestamp when the message was accepted by the provider (ISO 8601). Corresponds to the initialPROVIDER_ACCEPTANCEstatusstatusChangedAt: Timestamp of the most recent status change (ISO 8601)reference: Reference object from the send request. May be empty{}if no reference was provided. See Reference Attributechannel: Delivery channel —SMSorRCSstatus: Current delivery status. See Status transitions. Possible values:PROVIDER_ACCEPTANCE— request accepted by the provider (initial state)SENT— sent by the providerDELIVERED— delivered to the handsetREJECTED— rejected by the provider (not sent)UNDELIVERED— failed to deliverREAD— (RCS only) read by recipient
provider: Provider informationname: Provider nameid: Provider's message identifierstatus: Provider-specific statuscode: Provider status/error codemessage: Optional provider error details (e.g.Number Blocked by Carrier)
sms:segments: Number of SMS segments used. Messages exceeding 160 characters (GSM-7) or 70 characters (UCS-2) are split into multiple segments
All endpoints require a valid API key. Authentication failures return HTTP 401.
| HTTP Status | Error code | Error type | Solution |
|---|---|---|---|
401 | 2 | Empty or missing api-key | The API key is missing or invalid. See Authentication |
Retrieves the delivery status for a specific message.
If the message ID is not found, the endpoint returns HTTP 404.
GET /api/messagestatus/{messageid}| Name | Required | Description |
|---|---|---|
X-Api-Key | Yes | API key for the account. See Authentication. |
| Parameter | Type | Required | Description |
|---|---|---|---|
messageid | string | Yes | Message identifier (UUID format) |
GET /api/messagestatus/011d9d6e-b5b9-4cb9-be13-2bc336a923ce200 — Message status
{
"message": {
"id": "011d9d6e-b5b9-4cb9-be13-2bc336a923ce",
"providerAcceptanceAt": "2026-02-04T06:54:35Z",
"statusChangedAt": "2026-02-04T06:54:55Z",
"reference": {
"service": "DIGITALSIGN",
"action": "AUTH",
"key": "EXT_KEY"
},
"channel": "SMS",
"status": "DELIVERED",
"provider": {
"name": "PROVIDER1",
"id": "bbe7a7b4-067b-484e-a55c-318f5716997e",
"status": "delivered",
"code": "0"
},
"sms": {
"segments": 1
}
}
}| HTTP Status | Error code | Error type | Solution |
|---|---|---|---|
404 | 1 | Message not found | The message ID does not exist |
Retrieves the delivery status of the latest messages sent to a given phone number.
If no messages are found, the endpoint returns HTTP 200 with an empty array: {"messages": []}.
GET /api/messagestatus/phonenumber/{phonenumber}| Name | Required | Description |
|---|---|---|
X-Api-Key | Yes | API key for the account. See Authentication. |
| Parameter | Type | Required | Description |
|---|---|---|---|
phonenumber | string | Yes | Phone number in E.164 format (e.g. +390000000000) |
| Parameter | Type | Required | Description |
|---|---|---|---|
count | integer | No | Maximum number of messages to return. Range: 1–100. Default: 50. Values above 100 are silently capped |
sendDate | string | No | Filter messages sent before this timestamp. Format: ISO 8601 (e.g. 2026-12-31T23:59:59Z). Default: current time |
GET /api/messagestatus/phonenumber/+390000000000?count=1&sendDate=2026-12-31T23:59:59Z200 — Messages list
{
"messages": [
{
"message": {
"id": "011d9d6e-b5b9-4cb9-be13-2bc336a923ce",
"providerAcceptanceAt": "2026-02-04T06:54:35Z",
"statusChangedAt": "2026-02-04T06:54:55Z",
"reference": {
"service": "DIGITALSIGN",
"action": "AUTH",
"key": "EXT_KEY"
},
"channel": "SMS",
"status": "DELIVERED",
"provider": {
"name": "PROVIDER1",
"id": "bbe7a7b4-067b-484e-a55c-318f5716997e",
"status": "delivered",
"code": "0"
},
"sms": {
"segments": 1
}
}
}
]
}Each item in messages contains a message object with the fields described in Response structure.
Retrieves the delivery status of the latest messages associated with the external key specified in the reference.key parameter of the send API.
If no messages are found, the endpoint returns HTTP 200 with an empty array: {"messages": []}.
GET /api/messagestatus/reference/{referencekey}| Name | Required | Description |
|---|---|---|
X-Api-Key | Yes | API key for the account. See Authentication. |
| Parameter | Type | Required | Description |
|---|---|---|---|
referencekey | string | Yes | External reference key |
| Parameter | Type | Required | Description |
|---|---|---|---|
count | integer | No | Maximum number of messages to return. Range: 1–100. Default: 50. Values above 100 are silently capped |
sendDate | string | No | Filter messages sent before this timestamp. Format: ISO 8601 (e.g. 2026-12-31T23:59:59Z). Default: current time |
GET /api/messagestatus/reference/user-12345-verification?count=2&sendDate=2026-12-31T23:59:59Z200 — Messages list
{
"messages": [
{
"message": {
"id": "011d9d6e-b5b9-4cb9-be13-2bc336a923ce",
"providerAcceptanceAt": "2026-02-04T06:54:35Z",
"statusChangedAt": "2026-02-04T06:54:55Z",
"reference": {
"service": "DIGITALSIGN",
"action": "AUTH",
"key": "EXT_KEY"
},
"channel": "SMS",
"status": "DELIVERED",
"provider": {
"name": "PROVIDER1",
"id": "bbe7a7b4-067b-484e-a55c-318f5716997e",
"status": "delivered",
"code": "0"
},
"sms": {
"segments": 1
}
}
}
]
}Each item in messages contains a message object with the fields described in Response structure.