Numbers

The right sender for every message.

Long codes, short codes, toll-free numbers, and alphanumeric sender IDs: provisioned, registered, and routed through one endpoint. The sender you send from decides throughput, cost, and which compliance regime applies.

send-notification.ts
202 · 0.4s
import { BirdClient } from "@messagebird/sdk";

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

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

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."
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

Four sender types, one API.

Numbers are the foundation of the Bird SMS API. Search availability, buy a number, and route inbound to a webhook with the same client you already send with. Which type you pick depends on volume, geography, and how much registration you can take on.

Which sender should I use?

Throughput, reach, and registration effort differ by sender type. Most US application traffic starts on a 10DLC long code; high-volume one-to-many programs move to a short code.

Sender typeBest forRegistration
Long code (10DLC)Two-way conversations, OTP, alerts at moderate volumeA2P 10DLC brand + campaign
Short codeHigh-volume one-to-many marketing and alertsCarrier-vetted, lead time in weeks
Toll-freeUS/Canada traffic without 10DLC, higher throughput than a long codeToll-free verification
Alphanumeric sender IDOne-way branded alerts where the country allows itPre-registration in many countries

Search, buy, and route in a few calls.

Find a number by country and capability, buy it, and point its inbound traffic at a webhook, all from the same SDK you send with. The number is live as soon as any required registration clears.

provision.ts
201 · purchased
const { data: available } = await bird.numbers.search({
  country: "US",
  type:    "long-code",
  capabilities: ["sms"],
}).safe();

const { data: number } = await bird.numbers.buy({
  number:  available[0].number,
  webhook: "https://example.com/webhooks/bird",
}).safe();

console.log(number.id); // → "num_8KQ2..."

Registration, handled where it's required.

Most US application traffic needs A2P 10DLC brand and campaign registration; toll-free needs verification; many countries require sender-ID pre-registration. Bird runs each of these from the dashboard, and the compliance surface tracks status from the API.

Provision the right number, route it in minutes.

Numbers are one capability of the Bird SMS API: sending, two-way inbound, compliance, routing, and analytics ship with it.

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