Skip to content
A2PCheck
A2PCheck/API Docs

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 access

Authentication

API requests require a Bearer token. Include your API key in the Authorization header.

Authorization: Bearer a2p_live_your_api_key_here

Endpoints

POST/api/v1/scan

Full campaign scan with AI analysis and URL crawling. Takes 15-20 seconds.

Rate limit: 10/min, 100/day per API key

POST/api/v1/scan/quick

Quick scan skipping URL crawling. Takes 5-8 seconds. URL-dependent fields return YELLOW placeholders.

Rate limit: 30/min, 300/day per API key

GET/api/v1/health

Health 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

StatusCodeDescription
400VALIDATION_ERRORInvalid request body
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENInactive API key
429RATE_LIMITEDRate limit exceeded
500INTERNAL_ERRORServer error

Get API Access

API keys are manually issued during the beta period. Contact us to request access.

Contact for API Access