A2PCheck/API Docs

API Reference

Integrate A2P 10DLC pre-scanning into your registration workflows.

OpenAPI Spec (YAML)

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