Skip to main content
Check the delivery status of sent SMS messages using this endpoint. You can filter results by a single message, an entire bulk campaign batch, or a specific delivery status. Results are paginated for efficient retrieval.
All requests must include the Authorization: Bearer YOUR_API_KEY header. Responses use Content-Type: application/json.

Endpoint

Query Parameters

string
Filter results to a specific message. Use the message_id returned when you sent the message via POST /sms/send.
string
Filter results to all messages belonging to a bulk campaign. Use the batch_id returned from POST /sms/bulk.
string
Filter results by delivery status. Accepted values: delivered, failed, pending, sent.
integer
Page number for paginated results. Defaults to 1.
integer
Number of results to return per page. Defaults to 50. Maximum is 200.

Request

Response

200 — Success

Response Fields

string
Indicates the outcome of the request. Either "success" or "error".
array
An array of delivery report objects matching your query.
string
The unique identifier of the message. Matches the message_id from the send response.
string
The recipient phone number in E.164 format.
string
The Sender ID used to send this message.
string
Current delivery status. One of pending, sent, delivered, or failed.
string
ISO 8601 timestamp of when the message was confirmed delivered to the recipient’s handset. null if not yet delivered.
string
ISO 8601 timestamp of when the message was dispatched to the carrier network.
object
Metadata about the paginated result set.
integer
The current page number.
integer
The number of results per page as requested.
integer
The total number of records matching your query across all pages.

Delivery Status Values

Code Examples

Use webhooks for real-time delivery notifications instead of polling this endpoint. Webhooks push status updates to your callback_url the moment a delivery event occurs, reducing API calls and eliminating latency.