Outpost logoOutpost Docs

Enqueue SMS messages

POST
/v1/messages/sms

Queues one or more SMS messages for delivery and returns 202 before they are sent. Delivery outcomes arrive asynchronously — subscribe to a webhook config on the project to receive them.

Partial success is normal: each item is evaluated independently and lands in accepted, rejected (e.g. invalid number, opted out), or errors. A 2xx therefore does not mean every item was accepted — always check the per-item arrays.

x-api-key<token>

Project-scoped API key. Keys carry either the ADMIN or TENANT role; a route additionally requires that the key's role is listed in its x-required-roles. Machine-to-machine callers should use this.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/messages/sms" \  -H "Content-Type: application/json" \  -d '{    "items": [      {        "to": "string",        "body": "string"      }    ]  }'
{  "accepted": [    {      "phoneNumber": "string",      "messageId": "string",      "code": 0    }  ],  "rejected": [    {      "phoneNumber": "string",      "code": 0,      "reason": "INVALID_FORMAT",      "message": "string"    }  ],  "errors": [    {      "phoneNumber": "string",      "code": 0,      "reason": "RATE_LIMITED",      "message": "string"    }  ],  "acceptedCount": 0,  "rejectedCount": 0,  "errorCount": 0}