Short codes

Built to send at scale.

A short code is a 5–6 digit number built for high-volume one-to-many SMS: marketing, alerts, and high-rate OTP. Carriers vet every program before it can send, so provisioning lead time is measured in weeks rather than minutes.

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

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

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from: "Bird",
  to:   "+15005550006",
  text: `Your Bird verification code is ${code}. Reply STOP to opt out.`,
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Today at 2:14 PM

Hey Ada — your Bird sign-in code is 482917. It'll expire in 10 minutes. Don't share it with anyone.
482917
Delivered

Where a short code fits.

A short code is one of the four sender types on Bird SMS numbers, part of the broader Bird SMS API. It's the option you reach for when one number has to push high volume to many recipients — and you're willing to trade provisioning speed for the throughput and carrier trust that comes with it.

What a short code gives you.

High throughput, carrier-vetted, made for one-to-many.

  1. 01

    The highest throughput of any sender type.

    A short code is engineered for one number to carry a heavy outbound load, which is what makes a same-day campaign or alert fan-out land in time.

  2. 02

    Dedicated or shared.

    Take a dedicated short code and its sending reputation is yours alone; share one behind keywords to start faster and cheaper, at the cost of inheriting your neighbors' reputation.

  3. 03

    Carrier-vetted before it sends.

    Every short code program is reviewed by the carriers, so the number arrives with their trust already established rather than earning it under live traffic.

  4. 04

    Best for one-to-many.

    Marketing sends, transactional alerts, and high-rate OTP all fit a short code. For two-way conversational traffic a long code is usually the better starting point.

Search, buy, and route it.

Provisioning a short code uses the same client and the same call shape as any other sender type — only the type field changes. Search by country and capability, buy the number, and point its inbound at a webhook.

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

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

Vetting buys you throughput.

The tradeoff is direct: a short code earns its high, carrier-trusted throughput by going through vetting first, so plan for a lead time in weeks. Reach for one when a program's volume outgrows what a long code supports, or when you need a sending rate that's high and predictable from day one. If your traffic is two-way and conversational, or volume is moderate, a long code is live sooner and costs less to start.

Short code FAQ

What is an SMS short code?+
A short code is a 5–6 digit number that carriers approve for high-volume one-to-many SMS — marketing campaigns, alerts, and high-rate OTP. It's the highest-throughput sender type, and it goes through carrier vetting before it can send.
How long does a short code take to provision?+
Plan in weeks, not minutes. Carriers vet every short code program before it goes live, so a short code carries a real lead time — unlike a long code, which you can buy and start sending on as soon as registration clears.
Dedicated or shared short code?+
A dedicated short code is yours alone, so its sending reputation is entirely your own. A shared short code splits a number across senders behind keywords — cheaper, faster to start, but you inherit the reputation of everyone else on it.
When should I use a long code instead?+
When traffic is two-way and conversational, or volume doesn't justify the vetting and lead time. A long code is local, two-way by default, and live as soon as its 10DLC campaign clears.

Pick the sender type your volume calls for.

A short code is one sender type on the Bird SMS numbers surface. Provision one when volume and throughput justify the vetting, and route inbound from the same API you send with.

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