curl -G https://api.tracklysms.com/api/v2/pending-sends \
-H "X-Api-Key: trk_your_api_key" \
--data-urlencode "status=approved" \
--data-urlencode "limit=20"
{
"pending_sends": [
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "approved",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"created_at": "2026-09-04T14:10:32.000000Z",
"expires_at": "2026-09-05T14:10:32.000000Z",
"decided_at": "2026-09-04T14:12:05.000000Z",
"decided_by": "user:1042",
"decision_reason": null,
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}
],
"has_more": false,
"next_cursor": null
}
Pending Sends (v2)
List Pending Sends
List the account’s held sends, newest first, optionally filtered by status.
GET
/
v2
/
pending-sends
curl -G https://api.tracklysms.com/api/v2/pending-sends \
-H "X-Api-Key: trk_your_api_key" \
--data-urlencode "status=approved" \
--data-urlencode "limit=20"
{
"pending_sends": [
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "approved",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"created_at": "2026-09-04T14:10:32.000000Z",
"expires_at": "2026-09-05T14:10:32.000000Z",
"decided_at": "2026-09-04T14:12:05.000000Z",
"decided_by": "user:1042",
"decision_reason": null,
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}
],
"has_more": false,
"next_cursor": null
}
Lists held sends for the account the key belongs to, newest first. List rows omit the payload, render snapshot, and per-message execution evidence; fetch a single pending send for those details and durable execution reconciliation. Listing derives status without performing recovery writes.
Also
Query Parameters
string
One of
pending, approved, executing, unknown_execution, sent, rejected, cancelled, expired. pending and approved return only sends that have not lapsed; expired returns the ones that have. An expired execution claim appears as unknown_execution until reconciled.string
Optional ISO-8601 upper time bound. Use
cursor for pagination so rows sharing a timestamp are not skipped. Cannot be combined with cursor.string
Pass the previous response’s
next_cursor unchanged. Rows are ordered by creation time and ID, newest first.integer
default:"50"
Page size, max 100.
Response Fields
object[]
Pending send rows, newest first.
boolean
true when older rows exist beyond this page.string
Opaque continuation cursor;
null on the final page.Errors
| HTTP Status | Error Code | Description |
|---|---|---|
| 400 | invalid_param | Unknown status, invalid limit, malformed before or cursor, or both pagination parameters supplied. |
401 invalid_credentials.
Examples
curl -G https://api.tracklysms.com/api/v2/pending-sends \
-H "X-Api-Key: trk_your_api_key" \
--data-urlencode "status=approved" \
--data-urlencode "limit=20"
{
"pending_sends": [
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "approved",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"created_at": "2026-09-04T14:10:32.000000Z",
"expires_at": "2026-09-05T14:10:32.000000Z",
"decided_at": "2026-09-04T14:12:05.000000Z",
"decided_by": "user:1042",
"decision_reason": null,
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}
],
"has_more": false,
"next_cursor": null
}