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.
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
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.
- 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.
- 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.
- 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.
- 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.
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?+
What's the difference between a brand and a campaign?+
How long does approval take?+
Does 10DLC apply outside the US?+
Other compliance topics
10DLC is one of three SMS compliance regimes. See the rest.
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.