GET/api/v1/sms
SMS and WhatsApp messages, newest first, with filters.
- CLI
sendmock sms list- MCP tool
sendmock_sms_list- In the app
- SMS
Answer
200 PageOf_SmsMessage
/api/v1/smsSMS and WhatsApp messages, newest first, with filters.
sendmock sms listsendmock_sms_list200 PageOf_SmsMessage
/api/v1/smsDelete every message.
sendmock sms delete-all --yessendmock_sms_delete_all204 No content
/api/v1/smsNative send, with optional media URLs or inline media.
sendmock sms sendsendmock_sms_sendNativeSmsRequest : Body of POST /api/v1/sms (native send).
| Field | Type | Description |
|---|---|---|
| from | string | The sender: an E.164 number or an alphanumeric sender ID.Example: +15550001111 |
| to | string | The recipient, an E.164 number; whatsapp:+... sends over WhatsApp.Example: +8801700000000 |
| body | string | The message text. Its length and characters decide the segments and the encoding (GSM-7 or UCS-2).Example: Your code is 482913 |
| status_callback? | string | Your app's URL that receives each status change (queued, sent, delivered, failed).Example: http://localhost:3000/sms/status |
| metadata? | object | Any JSON you want stored with the message and echoed in its events. |
| media_urls? | string[] | Public links SendMock downloads, like Twilio's MediaUrl. |
| media? | InlineSmsMedia[] | Files sent inline as MMS media, base64 encoded. |
201 SmsMessageDetail
Errors: 400, as { error: { code, message } }
/api/v1/sms/threadsConversations, one per contact and your number.
sendmock sms threadssendmock_sms_threads200 SmsThread[]
/api/v1/sms/{smsId}One message with its status history and callbacks.
sendmock sms show <smsId>sendmock_sms_get200 SmsMessageDetail
Errors: 404, as { error: { code, message } }
/api/v1/sms/{smsId}Delete one message.
sendmock sms delete <smsId>sendmock_sms_delete204 No content
/api/v1/sms/{smsId}/media/{mediaIndex}Download one media item of an MMS or WhatsApp message.
sendmock sms media <smsId> <mediaIndex>sendmock://sms/{smsId}/media/{mediaIndex}200 string (*/*)
Errors: 404, as { error: { code, message } }
/api/v1/sms/{smsId}/openRecord a read and fire sms.opened.
sendmock sms open <smsId>sendmock_sms_openOpenEventRequest : Body of `POST /emails/{emailId}/open` and `POST /sms/{smsId}/open`.
| Field | Type | Description |
|---|---|---|
| source? | OpenSource | Who opened it: ui (the SendMock UI), manual (a person marking it) or api (a script). Defaults to api.One of: ui, manual, apiExample: api |
| user_agent? | string | The browser or client that opened it, kept in the open history. The UI sends its own.Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) |
| webhook_endpoint_ids? | Ulid[] | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide. |
| webhook_requests? | WebhookRequestEdit[] | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads. |
204 No content
Errors: 404, 409, as { error: { code, message } }
/api/v1/sms/{smsId}/opensEvery recorded read of an outbound message, oldest first.
sendmock sms opens <smsId>sendmock_sms_opens200 OpenRecord[]
Errors: 404, as { error: { code, message } }
/api/v1/sms/{smsId}/reply-webhook/resendSend an inbound message's reply webhook again.
sendmock sms resend-reply-webhook <smsId>sendmock_sms_reply_webhook_resend200 SmsMessageDetail
Errors: 404, 409, as { error: { code, message } }
/api/v1/sms/{smsId}/statusSet a delivery status by hand and fire its callback.
sendmock sms status <smsId> <status>sendmock_sms_set_statusSmsStatusUpdate : Body of `POST /sms/{smsId}/status`: a manual status change.
| Field | Type | Description |
|---|---|---|
| status | SmsStatus | The new status; fires the status callback and the matching event.One of: queued, sent, delivered, undelivered, failed, receivedExample: delivered |
| error_code? | string | null | A Twilio error code for failed or undelivered, e.g. 30003 (unreachable).Example: 30003 |
| webhook_endpoint_ids? | Ulid[] | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide. |
| webhook_requests? | WebhookRequestEdit[] | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads. |
200 SmsMessageDetail
Errors: 404, as { error: { code, message } }
/api/v1/sms/inboundSimulate a message from a contact to one of your numbers.
sendmock sms inboundsendmock_sms_simulate_inboundInboundSmsRequest : Body of POST /api/v1/sms/inbound (simulate an incoming message).
| Field | Type | Description |
|---|---|---|
| from | string | Who texts your app: the user's number.Example: +8801700000000 |
| to | string | Your app's number that receives it, usually a virtual number.Example: +15550001111 |
| body | string | The message text.Example: STOP |
| channel? | SmsChannel | sms (default) or whatsapp.One of: sms, whatsappExample: sms |
| template_id? | string | The payload template for the inbound webhook, instead of the number's (e.g. twilio.inbound_sms).Example: twilio.inbound_sms |
| media? | InlineSmsMedia[] | Files sent with the message, as MMS or WhatsApp media. |
| webhook_endpoint_ids? | Ulid[] | Send this action's webhooks to exactly these endpoints (IDs from GET /api/v1/webhooks/endpoints) instead of the ones the rules pick; an empty list sends none. Leave it out to let the rules decide. |
| webhook_requests? | WebhookRequestEdit[] | Payloads edited for this action, by endpoint: each body is sent as written instead of the rendered one and signed over those bytes. Leave it out to send the rendered payloads. |
201 SmsMessageDetail
Errors: 400, as { error: { code, message } }