SMS API
Send and receive SMS with one API call
POST to /sms and your message is on its way to 220+ countries. Delivery receipts and replies come back as webhooks, the sender carries your name, and it all runs on the same platform — and the same numbers — as your calls.
What your customer sees
Your appointment is confirmed for tomorrow at 2:30 PM. Reply YES to confirm.
2:30 PM
YES
2:31 PM
What your backend receives
v2.sms.outbound.updated
status: delivered
v2.sms.inbound.received
body: “YES”
POST /sms · 202
Both directions
Send and receive — same API
One endpoint sends, dedicated numbers receive — and every event lands in your backend as a webhook.
Outbound — POST /sms
A recipient in E.164 format, your text, an optional branded sender. Callr detects the encoding, hands the message to the carrier, and reports every status change back until it’s delivered.
Inbound — on your numbers
Receive replies and inbound messages on dedicated virtual numbers. Each one fires a webhook to your backend the moment it arrives — ready to parse, route, or answer.
Why send with Callr
One API, every message
SMS on Callr rides the same carrier network, the same numbers, and the same API as your voice traffic — with delivery you can actually see.
220+ countries, one integration
Send transactional and marketing SMS worldwide from the same API and numbers as your calls — no second provider to wire in.
Your name as the sender
For one-way messages, swap the anonymous number for an alphanumeric sender ID of up to 11 characters, where local regulations allow it — replies happen on your virtual numbers.
Delivery receipts in real time
Follow every message from created to delivered — each carrier status change is pushed to your backend as a webhook, failures included.
Any language, any alphabet
GSM and Unicode encodings are detected automatically, and long messages are split and reassembled transparently — emoji included.
Use cases
Where SMS does the work
SMS is the channel for messages that must be seen — and answered — within minutes.
Reminders & confirmations
Appointment reminders, booking confirmations, delivery updates — sent at the right moment and confirmed with a single reply.
Alerts & notifications
Incidents, security warnings, operational alerts — declared as alerting traffic so carriers route them as such.
Marketing campaigns
Promotions and product news to opted-in lists, with per-message delivery statuses to measure exactly what landed.
Two-way conversations
Support threads and data capture on virtual numbers — parse replies into structured data to confirm, qualify, or escalate automatically.
Under the hood
Plain REST, no surprises
Everything is an HTTP request or a webhook — if you can POST JSON, you can ship SMS today.
One endpoint to send
POST /sms with a recipient and a text returns 202 and a message ID — search and fetch any message back through the same API.
Status webhooks (DLR)
v2.sms.outbound.updated follows each message through created, sent, and delivered — with error, failed, and expired called out explicitly.
Flexible sender ID
Send from a phone number or an approved alphanumeric sender — or leave it empty and Callr picks the right default per destination.
GSM & Unicode, multipart
Encoding is detected per message; long texts split into parts of 153 (GSM) or 67 (Unicode) characters, up to 3,200 characters per message.
Marketing & alerting traffic
Every message declares its traffic type — marketing or alerting — the classification carriers require for compliant routing.
SMS inside call flows
Callr Actions scenarios send SMS mid-call — a confirmation after an IVR choice, a link while callers wait — without extra code.
Endpoints, webhook payloads, and code examples live in the docs. Read the docs →
Ship your first SMS today
Start free and send a message in minutes — or read the docs for endpoints and payloads.