Compliance

The rules, handled in one place.

Sending SMS means meeting carrier and regulator rules: A2P 10DLC registration in the US, opt-out keyword handling everywhere, and sender-ID pre-registration in many countries. Bird runs each from one place and reports status through the API.

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

Three regimes, one surface.

Compliance is the layer of the Bird SMS API that keeps your traffic deliverable. Different regimes apply depending on where you send and what kind of message you send: US application traffic needs 10DLC, every recipient can opt out, and many countries gate alphanumeric senders behind pre-registration. You file each once and check its status from the same client you send with.

Which regime applies to me?

What you have to register depends on where your recipients are and what you send. Most US application programs touch all three at once.

RegimeWhat it coversWhere it applies
A2P 10DLCBrand and campaign registration for application-to-person trafficUnited States
Opt-out (STOP/HELP)STOP, HELP, and START keyword handling and a suppression listEverywhere you send
Sender-ID registrationPre-registering alphanumeric sender IDs before they can deliverMany countries that require it

File once, check status from the API.

You submit a 10DLC brand and campaign, a toll-free verification, or a sender-ID registration from the dashboard. Bird carries it to the carriers and registries and exposes the current state through the API, so your provisioning code can wait for approval rather than guess at it. Opt-out handling needs no setup — it's enforced on every send.

SMS compliance FAQ

What do I have to register before I can send?+
It depends on where you send and what you send. US application traffic needs A2P 10DLC brand and campaign registration. Many countries require sender-ID pre-registration for alphanumeric senders. Opt-out handling applies everywhere and needs no setup.
Do I have to build opt-out handling myself?+
No. STOP, HELP, and START keywords are honored automatically on every send. A STOP suppresses the recipient, HELP triggers a help response, and START resubscribes them. The suppression list is queryable through the API.
How do I know when a registration is approved?+
Bird files each registration with the carriers or registries and reports its status through the API. Your code can poll the registration's state and wait for approval rather than send into a campaign that isn't live yet.
Is compliance separate from the rest of the SMS API?+
No. It uses the same client and keys as sending, numbers, and two-way. Registration status and the suppression list are API resources alongside the send call, so one integration covers both sending and the rules around it.

Register once, send with confidence.

Compliance is one capability of the Bird SMS API: sending, numbers, two-way inbound, 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