curl https://api.tracklysms.com/api/v2/pending-sends/66f1c2a9b8e4d3f0a1b2c3d4 \
-H "X-Api-Key: trk_your_api_key"
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "rejected",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"payload": { "to": "+14155551234", "list_number": "+18005551234", "body": "Hi Sam, ..." },
"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": "Wrong time, the table is at 7:30",
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}
Pending Sends (v2)
Get a Pending Send
Fetch one held send; poll it until it is approved.
GET
/
v2
/
pending-sends
/
{id}
curl https://api.tracklysms.com/api/v2/pending-sends/66f1c2a9b8e4d3f0a1b2c3d4 \
-H "X-Api-Key: trk_your_api_key"
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "rejected",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"payload": { "to": "+14155551234", "list_number": "+18005551234", "body": "Hi Sam, ..." },
"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": "Wrong time, the table is at 7:30",
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}
Returns one pending send with the fields described in Hold a Send for Approval. Poll it while
Also
status is pending; once it is approved, call send. A rejected send carries the approver’s decision_reason; an expired one lapsed 24 hours after it was held.
If the status is unknown_execution, inspect execution.messages for publication acknowledgements and message status evidence. Reads can reconcile to sent only when every recipient has positive publication evidence or an explicit recorded refusal before publication. A recovered mixed batch preserves its exact result.queued_count, result.error_count, and indexed result.errors; refusal details are not included in execution.messages. Missing or uncertain evidence never authorizes replay. Keep using this pending ID for reconciliation.
Path Parameters
string
required
Pending send ID.
Errors
| HTTP Status | Error Code | Description |
|---|---|---|
| 404 | not_found | No pending send with this ID on the account. |
401 invalid_credentials.
Examples
curl https://api.tracklysms.com/api/v2/pending-sends/66f1c2a9b8e4d3f0a1b2c3d4 \
-H "X-Api-Key: trk_your_api_key"
{
"id": "66f1c2a9b8e4d3f0a1b2c3d4",
"status": "rejected",
"kind": "send",
"recipient_count": 1,
"note": "Reservation confirmation requested in chat at 2:10pm",
"api_key_id": "66e0a1b2c3d4e5f6a7b8c9d0",
"payload": { "to": "+14155551234", "list_number": "+18005551234", "body": "Hi Sam, ..." },
"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": "Wrong time, the table is at 7:30",
"executed_at": null,
"executed_by_key_id": null,
"result": null,
"last_error": null
}