Tone docs
API referenceCompliance

Run the pre-dial compliance gate for one number, without dialling

Runs the exact checks an outbound call runs (DLT, A2P declaration, calling window, DNC, carrier DND, consent) and records the same audit rows. Returns the verdict instead of enforcing it — use it to pre-flight a number you dial on your own infrastructure.

Requires the write scope. A key with less gets 403 insufficient_scope.

POST
/v1/compliance/check
AuthorizationBearer <token>

Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/compliance/check" \  -H "Content-Type: application/json" \  -d '{    "e164": "+919876543210",    "purpose": "promotional"  }'
{  "data": {    "allowed": true,    "blockedBy": null,    "checks": [      {        "callId": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451",        "checkType": "dnc",        "createdAt": "2026-08-25T09:14:22Z",        "detail": {},        "e164": "+919876543210",        "enforced": true,        "id": "8814",        "outcome": "pass",        "reason": "Asked to be removed during a call on 2026-08-20.",        "source": "internal"      }    ],    "e164": "+919876543210",    "purpose": "promotional"  }}
Was this page helpful?