Pre-flight up to 100 numbers in one call
Each number runs the full gate and is metered as its own verdict, so a batch of 100 costs 100 verdicts. A campaign-sized list belongs in a campaign, which has a pre-flight built for that scale.
Requires the write scope. A key with less gets 403 insufficient_scope.
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/batch" \ -H "Content-Type: application/json" \ -d '{ "e164s": [ "+919876543210", "+919812345678" ], "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" } ]}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.
The evidence pack for one number
Every check, consent record, outcome and suppression we hold for a number — the document to hand an access provider when a complaint lands.