Bird SMS

SMS that moves the conversation forward.

Send the update people need, launch a campaign they want and keep the conversation going when they reply. Bird brings SMS sending, audiences, content and delivery reporting together, with an API for your application and a workspace for your team.

Cursor
send-notification.ts
202 Accepted
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const message = await bird.sms.send({
  from:     "Bird",
  to:       "+31612345678",
  text:     "Your order #4821 has shipped. Track it: bird.ly/t/4821x",
  category: "transactional",
});

console.log(message.id);
// → "sms_01m11jw130e7svjzv70kgqr38w"
Hi Ada, reminder of your appointment tomorrow at 14:30 with Dr. Kowalski.
Your order #4821 has shipped. Track it: bird.ly/t/4821x
Your subscription renews on 3 Sep for €12/mo. Manage it here: bird.ly/account

Illustrative messages and API response.

Trusted every day by teams that build world-class software

Read more customer stories

Find your SMS workflow.

Build a notification, launch a campaign or make room for the reply.

For your application

Send the moment it matters.

Order updates, appointment reminders and service alerts. Build an SMS send into the event that makes it useful.

Explore the sending API

For your marketing team

Give the message a reason.

Bring the audience, content and launch review into one campaign. Make the offer relevant before you make the send.

Explore SMS marketing

For the conversation

Make room for the reply.

Receive messages on an eligible number, connect them to your application and respond with the context the customer expects.

Explore two-way SMS

Campaigns and broadcasts

A campaign your team can stand behind.

Choose an audience, shape the message and review the send together. Preview personalizations and segments, confirm the sender and schedule the campaign. The dashboard, API and your agent work with the same broadcast lifecycle.

Keep permission and purpose close to the content. Follow delivery and replies, then connect the actions your business measures to the campaign that prompted them.

Fieldnotes · Autumn launch

Example campaign

FIELDNOTES
Hi Ada, our autumn collection is here. Explore your favorites: fieldnotes.example/autumn. Reply STOP to opt out.

One clear reason. One next step.

Campaign

Autumn launch

Status

Ready for review

Illustrative campaign. Explore the content and launch review; this preview sends no messages.

Choose the identity people see

01

A local number

Conversations and notifications

02

A toll-free number

An SMS-capable national identity

03

A short code

An approved messaging program

04

Your brand name

One-way messages where supported

Choose by destination, capabilities and registration requirements.

Senders and destinations

Start with the name on their screen.

Your sender determines what the customer recognizes and whether they can reply. Choose a local number, toll-free number, short code or brand name, then check the destinations and registration requirements for that choice.

A number, a registered sender and permission to contact a person solve different parts of the journey. Bird brings those decisions into view before you launch in a new market.

From npm install to a test send

Send an SMS from the language you already use.

Build with Node.js, Python, Go or PHP, or use the CLI and HTTP API. The same sender, message and delivery record carry through your integration. Follow the sending guide for a controlled test before sending to customers.

1
2
3
4
5
6
7
const msg = await bird.sms.send({
  from: "+15557654321",
  to: "+14155550100",
  text: "Your verification code is 123456.",
  category: "authentication",
});
console.log(msg.id, msg.status);

Before sending to customers, check sender registration for each destination. Follow the SMS sending guide from request to delivery outcome, then use SMS events and inbound replies to handle delivery receipts and messages sent to your numbers.

The controls behind a dependable SMS program.

Prepare the sender, control the destination and understand the outcome.

  1. 01

    Destination controls

    Choose the countries your workspace can send to. Review sender support and registration requirements before enabling a new destination.

  2. 02

    Carrier connectivity

    Bird manages carrier connectivity and exposes the reported outcome through one message record.

  3. 03

    Operator-grade routing

    Routing responds to the destination and carrier conditions, with delivery outcomes available to your application.

  4. 04

    Two-way SMS inbound

    Incoming texts on eligible numbers produce signed workspace webhooks, ready for your application to verify and process.

  5. 05

    Numbers of every shape

    Choose long codes, toll-free numbers, short codes or a sender ID. Availability and registration depend on the destination.

  6. 06

    A2P 10DLC in-dashboard

    Brand and campaign registration handled in the console; status is queryable from the API.

  7. 07

    MNP lookup before send

    Number intelligence helps identify the recipient’s network and supports destination routing.

  8. 08

    Opt-out and help keywords

    Recognized STOP keywords suppress the sender-and-subscriber pair; HELP returns support information. Check keyword coverage for your country.

  9. 09

    Delivery receipts as webhooks

    Subscribe to SMS lifecycle events and inspect the message record when a delivery needs investigation.

  10. 10

    Segment and Unicode safety

    Bird calculates encoding and billable segments. Check the body with the segment calculator before sending.

30

countries onboarded in two months, as reported by Airwallex

Customer story

Bring your next market closer.

Airwallex worked with Bird to navigate local requirements and improve international SMS delivery. The team reported reducing its average country onboarding time from a month or more to about seven days.

Read the Airwallex story

SMS is one channel in a bigger toolkit. Verify users with one-time passcodes through Verify, check a number's line type and carrier before you send with Lookup, or reach the same handset with rich cards over RCS.

Weighing Bird against the incumbent? Bird vs Twilio for SMS puts the two send calls, both 10DLC surfaces, and what each one gives a coding agent side by side.

Follow the message after the API responds.

Receive signed events for accepted, submitted and reported delivery outcomes. Verify signatures and deduplicate webhook retries in your receiver.

POST /webhooks/bird
signed
{
  "type": "sms.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "sms_id":       "sms_01m11jw130e7svjzv70kgqr38w",
    "workspace_id": "ws_01m11jw130e7svjzv70kgqr38w",
    "to":           "+15005550006",
    "from":         "+12025550188",
    "tags":         [{ "name": "campaign", "value": "order_update" }],
    "metadata":     { "user_id": "usr_12345" },
    "carrier":      "Verizon",
    "mcc_mnc":      "311480",
    "cost": {
      "amount":             null,
      "currency_code":      "USD",
      "transaction_amount": null,
      "passthrough_amount": null
    }
  }
}

Webhook delivery and SMS delivery are separate outcomes. A failed webhook attempt does not mean the text failed. Use the webhook guide for retries and replay, and the message timeline for SMS status.

  • sms.acceptedAccepted by the API and queued for the carrier hand-off.
  • sms.sentSubmitted to the destination carrier's SMSC.
  • sms.deliveredDelivery receipt received from the carrier (DLR).
  • sms.rejectedRefused during processing or carrier submission. Inspect the error to determine the next action.
  • sms.undeliveredThe attempt ended without delivery for a potentially recoverable reason. This does not automatically resubmit the SMS.
  • sms.failedTerminal failure: the message will not be delivered.

A connected messaging platform

Choose the channel for the job.

Use Verify when the job is to generate, deliver and check a one-time code. SMS delivery is one part of verification; expiry, answer checking and configured fallback belong to that workflow.

Explore RCS and WhatsApp for richer content and channel-specific interactions. Plan sender onboarding, permissions and any fallback explicitly for the channels you choose.

Pricing

Pricing for the destinations you send to.

Review the published destination rates, sender costs and carrier fees for your traffic. Encoding and the rendered message length determine the billable segments. Discuss your requirements for a larger rollout.

Questions about sending SMS

Do I choose the sender?
For a free-text send, provide a sender your workspace can use in the destination and the appropriate message category. A system-template send resolves its category and sender from the template.
How do retries avoid a duplicate text?
Provide an idempotency key and reuse it for a retry of the same request. A send without that key can be treated as a new message.
Does accepted mean delivered?
No. A 202 response means the API accepted the request. Follow the message record and signed events for the carrier-reported outcome. A delivery receipt does not establish that the recipient read the text.
Is a batch the same as a broadcast?
A batch contains up to 100 independent messages, each with its own recipient and body. A broadcast is an audience campaign with shared content and a managed send lifecycle. Choose the workflow that matches your job.

Send your first request before you write any code.

The whole public API is a Postman collection, converted from the same OpenAPI specification the SDKs are generated from, with an example request and response on every endpoint. Fork it into your own workspace, set an API key, and send a live request.

Build the next conversation.

Create your workspace, prepare a sender and test your SMS integration. For a campaign rollout or a new market, bring your requirements to an SMS specialist.

Your details

All contact fields are required.

So our team can reach you about your demo.

Products of interest

Optional

We’ll contact you to arrange your demo.
Privacy policy

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor