Toll-free

One 8xx number, US and Canada.

A toll-free number is an 8xx number that sends and receives SMS across the US and Canada. It carries application traffic without A2P 10DLC, once it has cleared toll-free verification — which buys higher, more predictable throughput than an unregistered long code.

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

When a toll-free number fits.

Toll-free is one of the four sender types on Bird SMS numbers, part of the broader Bird SMS API. Reach for it when one number should cover both the US and Canada and you'd rather skip A2P 10DLC registration — verification handles the carrier review instead.

What a toll-free number gives you.

Cross-border reach, two-way traffic, no 10DLC.

  1. 01

    US and Canada from one number.

    A single 8xx number reaches recipients on both sides of the border, so you don't provision and manage a separate sender per country.

  2. 02

    Two-way by default.

    Point the number's inbound traffic at a webhook and replies arrive as signed events — the same conversational foundation as any Bird number.

  3. 03

    No A2P 10DLC needed.

    Toll-free traffic sits outside the 10DLC system entirely, so there's no brand-and-campaign registration to file before you send.

  4. 04

    Cleared through toll-free verification.

    Carriers review the use case and message content first; once verification clears, the number sends at full volume rather than throttled or filtered.

Buy one and start sending.

Search by country and capability, buy the number, and route its inbound at a webhook — the same client you send with. The same code shape provisions any sender type; only the type field changes.

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

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

Verification is part of the deal.

Before a toll-free number can send application traffic, it goes through toll-free verification — the carriers review your use case, sample messages, and opt-in before approving the number. Bird files the verification from the dashboard and reports its status through the API, so you know exactly when the number is cleared. If your US traffic already runs over A2P 10DLC, a long code is the alternative sender.

Toll-free FAQ

What is a toll-free SMS number?+
A toll-free number is an 8xx number (800, 888, 877, and the rest of the toll-free prefixes) that sends and receives SMS across the US and Canada. It carries application traffic without A2P 10DLC, once it has passed toll-free verification.
Do toll-free numbers need 10DLC registration?+
No. Toll-free numbers sit outside the A2P 10DLC system. Instead they go through toll-free verification, where the carriers review the use case and message content before the number is allowed to send at full volume.
Can a toll-free number receive replies?+
Yes. Toll-free numbers are two-way: route the number's inbound at a webhook and replies arrive as HMAC-signed events, the same as any other Bird SMS number.
When should I use a long code instead?+
Reach for a long code when you want a local area code or your US traffic already runs through A2P 10DLC. A toll-free number wins when you want one 8xx sender that covers both the US and Canada without registering 10DLC campaigns.

One verified number for the whole continent.

Toll-free is one sender type on the Bird SMS numbers surface. Provision an 8xx number, clear verification, 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