Skip to page content

Get delivery report

Request a message's delivery result by messageId, or retrieve available reports.

POST / GEThttps://api.quantumtec.eu/v1/sms/report

POST: X-ApiKey headerGET: X-ApiKey in the URLAuthentication

POST request

POST request
ParameterDescription
messageIdstringoptionalMessage ID. When omitted, returns available delivery reports.
LimitintegeroptionalMaximum reports to return. Default: 50. Maximum: 500.
cURL · POST
curl --request POST 'https://api.quantumtec.eu/v1/sms/report' \
  --header 'X-ApiKey: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
  "messageId": "19905880-9404-4686-a8af-54af8888b96d",
  "Limit": 50
}'

Response

The response is an array of reports. Match SMS parts by partId and read state for each part's delivery result. state 2 means Delivered.

Response
ParameterDescription
messageIdstringMessage identifier.
tonumberRecipient number in the published response example.
partIdstringIdentifier of an SMS part.
stateintegerDelivery state, 2–8.
deliveredstringTime the delivery report was received, in UTC.
errorCodestringOperator error code; not supported by every operator.
JSON response
[
  {
    "messageId": "19905880-9404-4686-a8af-54af8888b96d",
    "to": 37250000000,
    "partId": "300000005",
    "state": 2,
    "delivered": "2026-09-01T10:00:02.000Z",
    "errorCode": "000"
  }
]

GET alternative

GET uses the same messageId and Limit parameters in the URL query string, together with X-ApiKey. It returns the same report structure.

cURL · GET
curl --get 'https://api.quantumtec.eu/v1/sms/report' \
  --header 'Accept: application/json' \
  --data-urlencode 'X-ApiKey=YOUR_API_KEY' \
  --data-urlencode 'messageId=19905880-9404-4686-a8af-54af8888b96d' \
  --data-urlencode 'Limit=50'