Skip to main content
POST
/
v1
/
sms
cURL
curl --request POST \
  --url https://9dc2c77e6dbf.ngrok-free.app/v1/sms \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "from": "+15551234567",
  "to": [
    "+15559876543"
  ],
  "text": "Hello from Chirp!",
  "subject": "Important Message",
  "mediaUrls": [
    "https://example.com/image.jpg"
  ],
  "transport": "automatic"
}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "from": "<string>",
  "to": [
    "<string>"
  ],
  "text": "<string>",
  "subject": "<string>",
  "mediaUrls": [
    "<string>"
  ],
  "type": "SMS",
  "transport": "sms",
  "direction": "OUTBOUND",
  "status": "QUEUED",
  "createdAt": "<string>"
}

Authorizations

Authorization
string
header
required

App API key (format: sk_live_app_* or sk_test_app_*) for app-level operations

Body

application/json
from
string
required

Phone number to send from (must be assigned to your app)

Example:

"+15551234567"

to
string[]
required

Array of phone numbers to send to

Minimum length: 1
Example:
["+15559876543"]
text
string

Message text content

Example:

"Hello from Chirp!"

subject
string

Subject for MMS messages

Example:

"Important Message"

mediaUrls
string<uri>[]

Array of media URLs for MMS messages

Example:
["https://example.com/image.jpg"]
transport
enum<string>
default:automatic

Transport method: 'automatic' (decide based on content), 'sms' (force SMS), or 'mms' (force MMS)

Available options:
automatic,
sms,
mms
Example:

"automatic"

Response

Message queued successfully

id
string<uuid>
required
from
string
required
to
string[]
required
text
string | null
required
subject
string | null
required
type
enum<string>
required
Available options:
SMS,
MMS
transport
enum<string>
required
Available options:
sms,
mms
direction
enum<string>
required
Available options:
OUTBOUND
status
enum<string>
required
Available options:
QUEUED,
SENDING,
SENT,
DELIVERED,
FAILED
createdAt
string
required
mediaUrls
string[]
I