Prepare your brand.
Register the campaign.
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.
The brand, campaign and number
01 · Brand
Identify the legal business behind the traffic.
02 · Campaign
Declare the use case, content and consent flow.
03 · Number
Link the number to an approved campaign.
Before sending
Enable the destination and check current eligibility.
A conceptual registration workflow. Carrier and registry review determine the actual status.
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.
Review the registry status and any requested corrections. Link the number only after the campaign is approved, and enable the destination before sending.
Check a campaign's status from the API.
Read the requirements, prepare the brand and campaign, then inspect their status in Bird. Read the campaign by its ID and wait for approval before linking a number for traffic.
// The 10DLC surface is not on the SDK yet, so read it over HTTP with a key
// carrying the sms_management:read scope.
const res = await fetch(
`https://eu1.platform.bird.com/v1/sms/10dlc/campaigns/${campaignId}`,
{ headers: { Authorization: `Bearer ${process.env.BIRD_API_KEY!}` } },
);
const campaign = await res.json();
if (campaign.status === "approved") {
// throughput is live — safe to send
}
console.log(campaign.brand_id); // → "brd_01krdgeqcxet5s7t44vh8rt9mg"
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.
What registration costs.
Review the published registration fees before submission. Brand registration, campaign vetting and recurring campaign charges have separate prices in the Bird pricing catalogue. A corrected resubmission can be a new chargeable attempt.
Registration fees
Questions about registration and sending
What is the brand, campaign and number model?
Can I change a campaign’s use case?
Does brand approval mean the number can send?
Does 10DLC apply to toll-free numbers?
Other compliance topics
10DLC is one of three SMS compliance regimes. See the rest.
Scale without
losing control.
Organize teams in workspaces, control API access, and trace changes through audit logs.
Audit log
Production- Workspace
- Production
- Resource
- Delivery agent
- ReadRead & write