Skip to content

Paginated list of sent messages with filtering.

GET  /api/v1/sms/messages  · Permission: sms.read

Terminal window
curl "https://restlink23telecom.com/api/v1/sms/messages?status=delivered&limit=10" \
-H "X-API-Key: $API_KEY"
ParameterDefaultDescription
page1Page number
limit25Results per page (max 100)
statusdelivered, undelivered, expired, pending, sent, failed, unknown
phoneSearch by phone number (substring)
countryISO code: US, GB, …
senderFilter by sender ID
period7dtoday, yesterday, 7d, 30d, this_month, last_month
from / toCustom range YYYY-MM-DD (omit period; the to day is included)
200 OK
{
"messages": [
{
"id": 1847,
"client_message_id": "api_42_1743667200123456789_a3f8b2c1d9e45f67",
"recipient": "+14155551234",
"sender_id": "MyApp",
"message": "Your verification code is 847291",
"status": "DELIVRD",
"status_code": "000",
"segments": 1,
"cost": 0.0085,
"created_at": "2026-02-13T10:30:00Z",
"delivered_at": "2026-02-13T10:30:04Z"
}
],
"total": 1250,
"page": 1,
"limit": 10,
"total_pages": 125
}
FilterMatches statuses
deliveredDELIVRD
undeliveredUNDELIV, REJECTD, DELETED
expiredEXPIRED
pendingpending, sent, ENROUTE, ACCEPTD
sentSame as pending (alias)
failedSame as undelivered (alias)
unknownUNKNOWN

GET  /api/v1/sms/messages/unified  · Permission: sms.read

Combines API traffic and broadcast campaigns in one view. Accepts the same parameters as /sms/messages plus:

ParameterDefaultDescription
sourceallapi, broadcasts, all
Terminal window
curl "https://restlink23telecom.com/api/v1/sms/messages/unified?source=all&limit=20" \
-H "X-API-Key: $API_KEY"
200 OK (unified, one item)
{
"messages": [
{
"id": "3201",
"source": "campaign",
"recipient": "+447911123456",
"sender_id": "Promo",
"message": "50% off today!",
"status": "DELIVRD",
"status_code": "000",
"cost": 0.042,
"sent_at": "2026-02-13T09:00:00Z",
"delivered_at": "2026-02-13T09:00:03Z",
"clicked": true,
"clicked_at": "2026-02-13T09:05:12Z",
"action_type": "registration",
"action_at": "2026-02-13T10:00:00Z",
"message_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"client_message_id": null,
"segments": 1,
"broadcast_id": 42,
"broadcast_name": "February Promo"
}
],
"total": 5420,
"page": 1,
"limit": 20,
"total_pages": 271
}

GET  /api/v1/sms/messages/unified/export  · Permission: sms.read

Streaming CSV export with the same filters as the unified list:

Terminal window
curl "https://restlink23telecom.com/api/v1/sms/messages/unified/export?period=30d" \
-H "X-API-Key: $API_KEY"

What to expect:

  • Excel-compatible — the body starts with a UTF-8 BOM.
  • Row cap — default 1,000,000 rows; the active cap is advertised in the X-Export-Limit response header. Larger result sets are truncated silently, so narrow the date window to drill down.
  • Content-Disposition: attachment; filename="messages_export_<timestamp>.csv".