API Reference
Integrate A2P 10DLC pre-scanning into your registration workflows.
OpenAPI Spec (YAML)For agencies, consultants & platform teams
If you register A2P 10DLC campaigns on behalf of clients — or your product onboards businesses that do — use the API to pre-scan every campaign before it reaches Twilio / TCR. Common patterns: gate submission on a GREEN report, surface per-field findings inline in your onboarding form, or store the scan output for client audit trails.
API keys are issued manually during beta. Tell us your expected volume and we'll set you up.
Request agency / volume accessAuthentication
API requests require a Bearer token. Include your API key in the Authorization header.
Authorization: Bearer a2p_live_your_api_key_here
Endpoints
/api/v1/scanFull campaign scan with AI analysis and URL crawling. Takes 15-20 seconds.
Rate limit: 10/min, 100/day per API key
/api/v1/scan/quickQuick scan skipping URL crawling. Takes 5-8 seconds. URL-dependent fields return YELLOW placeholders.
Rate limit: 30/min, 300/day per API key
/api/v1/healthHealth check endpoint. No authentication required.
Request Body
{
"useCaseType": "MARKETING", // required
"campaignDescription": "...", // required
"sampleMessages": ["msg1", "msg2"], // required, 2-5 items
"messageFlow": "...", // required
"businessName": "Acme Inc", // optional
"privacyPolicyUrl": "https://...", // optional
"websiteUrl": "https://...", // optional
"termsOfServiceUrl": "https://...", // optional
"optInKeywords": ["START"], // optional
"optOutKeywords": ["STOP"], // optional
"helpKeywords": ["HELP"], // optional
"optInMessage": "...", // optional
"optOutMessage": "...", // optional
"helpMessage": "...", // optional
"embeddedLinks": true, // optional
"embeddedPhoneNumbers": false, // optional
"ageGatedContent": false, // optional
"directLending": false, // optional
"numberPool": false // optional
}Example
curl -X POST https://api.a2pcheck.com/api/v1/scan \
-H "Content-Type: application/json" \
-H "Authorization: Bearer a2p_live_your_key" \
-d '{
"useCaseType": "MARKETING",
"campaignDescription": "Weekly promotional offers...",
"sampleMessages": [
"Acme: 20% off this week! Shop at acme.com/sale. Reply STOP to opt out.",
"Acme: New arrivals just dropped! Browse at acme.com/new. Msg&data rates apply."
],
"messageFlow": "Customers opt in via checkout checkbox at acme.com",
"optOutKeywords": ["STOP"],
"helpKeywords": ["HELP"]
}'Error Codes
| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid request body |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Inactive API key |
| 429 | RATE_LIMITED | Rate limit exceeded |
| 500 | INTERNAL_ERROR | Server error |
Get API Access
API keys are manually issued during the beta period. Contact us to request access.
Contact for API Access