# SMS for developers

Send codes and updates. Receive replies. Build SMS into your app with Bird’s API.

[Get started](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Fsms%2Fonboarding)

[Contact Sales](/demo?product=sms)

[Read customer stories](/customers)

[Explore Enterprise](/enterprise)

- [Airwallex](/customers/airwallex)
- [Glovo](/customers/glovo)
- [Zillow](/customers/zillow)
- Uber
- [Binance](/customers/binance)
- Adobe
- Meta
- PayPal
- Pinterest
- Square
- [Al Jazeera](/customers/aljazeera)
- [Aramex](/customers/aramex)
- [Bazaar Technologies](/customers/bazaar)
- [ComparaOnline](/customers/compara)
- [Emma](/customers/emma)

## From prompt to delivered.

Send an SMS from your app or agent. Follow the carrier receipt. Full read and write access through MCP and CLI.

**MCP**: `Bird MCP`

```json
https://mcp.bird.com
```

United States

 Long codeToll-freeBrand name
  +1 (202) 555-0188 Dedicated number

Replies
Send and receive

Registration
10DLC

  Registration required

Register your brand and campaign, then link your number.

### Start with the right sender.

Choose an identity for the destination. See which registrations you need and which numbers can receive replies.

[Explore SMS senders](/sms-api/features/numbers)

Message body

Your order is on its way. We'  ll  deliver tomorrow between 10:00 and 12:00. Reply CHANGE if you need another time.

 Smart encoding

 1 segment
GSM-7

One apostrophe. One fewer segment.

### Make every character count.

One curly apostrophe adds a billable segment here. Opt in to smart encoding to bring it back to one.

[Explore smart encoding](/docs/guides/sms/smart-encoding)

## Turn incoming texts  into useful replies.

Receive texts on an eligible number. Reply from your app,  or connect the steps in a Bird automation.

  Acknowledge an incoming SMS Automations
Published
 One message. Every step connected.

- 01
Message received

“Is my order ready?”

Bird event
Received
- 02
Recognize sender

Match by phone number

List contacts → Branch
Waiting
- 03
Send a reply

Personal acknowledgement

Set values → Send SMS
Waiting
- 04
Confirm delivery

Wait for the SMS receipt

Wait for event → Exit
WaitingOther paths No match, failures & timeout

No contact found Continue with a generic greeting.

Lookup failed or multiple matches Exit and record the reason.

Send failed Classify the failure.

No receipt within 10 minutes Record delivery as unconfirmed.

 Incoming SMS

Is my order ready to collect?

Received

 [Incoming SMS events](/docs/guides/sms/events#the-event-envelope)
[Explore Automations](/docs/guides/automations)
 Illustrative SMS reply workflow. Send acceptance is followed by a carrier delivery receipt, not a read receipt. No messages are sent from this page.

## Before you ship.  After you send.

Preview requests, follow delivery, and fix errors with clear feedback.

CLI dry run

```
bird sms send \
  --from +15557654321 \
  --to +14155550100 \
  --text 'Your verification code is 123456.' \
  --category authentication \
  --dry-run
```

SMS · Request preview Preview request

### Preview before you send.

Inspect the CLI request before it reaches the API.

[Explore CLI dry runs](/docs/ai/cli-for-agents)

`POST /webhooks/bird` Signed
SMS delivered

Its signed event is ready for your endpoint.

 `sms.delivered`14:32:04 · 128 ms  Queued

 `sms.received`14:32:01 · 38 ms  200

Endpoint response Replay event

### Know what happened.

Follow delivery receipts and incoming texts through signed events.

[Explore webhooks](/docs/guides/sms/events)

`POST /v1/sms/messages`
Idempotency-Key `welcome/customer_42`
Original request 202 Accepted  `id: sms_01ky7q3hckecgv6d7jpq865532`status: accepted
Same request · retry 01 202 Accepted  `id: sms_01ky7q3hckecgv6d7jpq865532`Idempotency-Replay: true

Same request. Same result. Retry request

### Recover the response.

Retry with the same key to recover the original response.

[Explore idempotency](/docs/guides/idempotency)

`POST /v1/sms/messages`
`to` 422 `E01001 ValidationError`

`to` must be a phone number in E.164 format.  Include the country code, starting with +.

`req_01ky7q4665emc9tw1pxkptaqwq`[Error reference](/docs/api/errors/E01001)

Fix & retry

### Errors you can act on.

The field, the reason, and the correction. Then try again.

[Explore errors](/docs/guides/errors)

Illustrative product states. No messages are sent from this page.

## Every message.  A clearer picture.

Follow delivery over time. See which carriers account for failures.

SMS analytics

### Delivery over time

37,380 accepted  98.0% delivery rate

Accepted Delivered Failed
Sep 21 · UTC

74.1%

of failures in this hour   Northstar Mobile

206 of 278 · 14:00–15:00 UTC

#### By carrier

14:00–15:00 UTC

Carrier | Accepted | Failed | Share |

Northstar Mobile | 1,529 | 206 | 74.1% |

Metro Wireless | 834 | 50 | 18.0% |

Connect | 417 | 22 | 7.9% |

[Explore SMS analytics](/sms-api/features/analytics)

## Explore SMS.

From your first sender to two-way conversations. Build SMS into your app.

[SMS API

Send text messages from your application and inspect the result.](#integrate)[Senders

Choose a sending identity that works for the destination.](/sms-api/features/numbers)[Two-way SMS

Receive customer texts and reply from your application.](/sms-api/features/two-way)[Templates

Send reusable texts with variables and language selection.](/sms-api/features/marketing/templates)[Automations

Receive a text, find the customer, and send the next reply.](/docs/guides/automations)[Global delivery

Understand destination support before sending.](/sms-api/features/destinations)[Encoding & segments

See how characters affect message length and segment count.](/docs/guides/sms/smart-encoding)[Consent & opt-outs

Honor the choices customers make about your messages.](/sms-api/features/compliance/opt-out)[Webhooks

React to incoming texts and delivery changes.](/docs/guides/sms/events)[Analytics

Understand SMS delivery by carrier and destination.](/sms-api/features/analytics)

## Scale without  losing control.

Organize teams in workspaces, control API access, and trace changes through audit logs.

Harbor Organization
Workspaces Production Sandbox

### Delivery agent

API key · Customer operations team
Active
Permissions Access
Email Read & write
SMS Read & write
WhatsApp Read Read & write
AL Alex Lee Admin  Permissions updated

### Audit log

Production
 API key updated Alex Lee · 09:42:18 UTC

Workspace
Production

Resource
Delivery agent

WhatsApp
Read Read & write

Succeeded

 [Workspaces](/docs/guides/workspaces)[Team roles](/docs/guides/users-teams-roles)[API authentication](/docs/guides/authentication)
[Explore Enterprise](/enterprise)

Examples: [MCP](/it-it/sms-api.mcp.md) · [CLI](/it-it/sms-api.cli.md) · [TypeScript](/it-it/sms-api.ts.md) · [Python](/it-it/sms-api.py.md) · [Go](/it-it/sms-api.go.md) · [PHP](/it-it/sms-api.php.md) · [cURL](/it-it/sms-api.curl.md)

## Start with SMS. Build across channels with Bird.

[Get started](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Fsms%2Fonboarding) · [Contact Sales](/demo?product=sms)

[Email](/email-api) · [SMS](/sms-api) · [WhatsApp](/whatsapp-api) · [Apple Messages](/apple-messages-api) · [Voice](/voice-api)



## Related resources

- [Sending your first SMS](/learn/sms/sending-your-first-sms) (video)
- [Sending SMS](/docs/guides/sms/sending-sms) (docs)
- [What does SMS mean?](/explained/sms/what-does-sms-mean) (answer)
- [Build your first integration](/learn/paths/integration) (course)

[Get an implementation brief](/learn/workspace?topic=sms)
