A2P 10DLC

Register once, send to the US.

A2P 10DLC is how application-to-person SMS reaches US recipients on standard 10-digit numbers. You register a brand, then a campaign that describes the messages you send. Carriers vet both and grant the campaign throughput once it's approved.

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

Why 10DLC exists.

A2P 10DLC is part of SMS compliance on the Bird SMS API. US carriers require any business sending application traffic over local long codes to register the brand behind it and each campaign it runs. Registered traffic earns vetted throughput and carrier trust; unregistered traffic gets filtered. Bird files both and reports approval state so you send into a campaign that's actually live.

The registration flow.

Brand, then campaign, then the numbers that carry it.

  1. 01

    Register a brand.

    Submit the legal entity behind your traffic. The carriers vet it and the brand becomes the identity every campaign attaches to.

  2. 02

    Register a campaign.

    Describe the messages you send — the use case, sample content, and opt-in flow. Approval is what unlocks the campaign's throughput.

  3. 03

    Associate your numbers.

    Attach the long codes that will carry the campaign. From then on their US application traffic runs over the registered campaign.

  4. 04

    Query status until it's live.

    Approval takes days to weeks. Poll the campaign's state through the API so your code waits for it rather than sending into a pending campaign.

Check a campaign's status from the API.

You file the brand and campaign from the dashboard; the API exposes where each one stands. Read the campaign by its id and branch on the status before you start sending.

campaign-status.ts
200 · approved
const { data: campaign } = await bird.sms.compliance.campaigns
  .get("cmp_7Hq2...")
  .safe();

if (campaign.status === "approved") {
  // throughput is live — safe to send
}

console.log(campaign.brandId); // → "brand_3Lx9..."

10DLC is how long codes earn US throughput.

If you send from long codes, 10DLC is what turns them from a filtering risk into a vetted sender. The number is yours the moment you buy it, but its US application traffic only flows at full rate once the campaign it's associated with is approved.

A2P 10DLC FAQ

What is A2P 10DLC?+
A2P 10DLC is the US carrier framework for application-to-person SMS sent over standard 10-digit long codes. A business registers the brand behind its traffic and a campaign describing the messages, and the carriers vet both before granting throughput.
What's the difference between a brand and a campaign?+
The brand is the legal entity sending the traffic. A campaign describes a specific messaging use case under that brand. One brand can have several campaigns, and you associate numbers with a campaign rather than the brand.
How long does approval take?+
Brand and campaign vetting runs through the carriers and registry and typically takes days to weeks. Query the campaign's status through the API so your code waits for approval before it sends.
Does 10DLC apply outside the US?+
No. 10DLC is a US framework. Other countries have their own rules — many require sender-ID pre-registration instead — and opt-out keyword handling applies wherever you send.

File your brand and campaign, then send.

10DLC is one regime of SMS compliance on Bird. Register from the dashboard, track approval through the API, and send to US recipients with vetted throughput.

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