Consent records, newest first
Consent is purpose-scoped, so a number can appear several times — once per purpose. active=true filters to the records that would satisfy the gate right now.
Requires the read 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
Query Parameters
How many records to return. 1-100.
1 <= value <= 10025Opaque page cursor from the previous response.
Only records for this number.
^\+91\d{10,11}$Only records covering this purpose. Open set — handle an unrecognised value rather than throwing. Today: promotional, service, transactional, collections.
Value in
- "promotional"
- "service"
- "transactional"
- "collections"
Only records that would satisfy the gate right now — neither revoked nor expired.
Value in
- "true"
- "false"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/consent"{ "data": [ { "active": true, "capturedAt": "2026-08-20T11:02:00Z", "createdAt": "2026-08-25T09:14:22Z", "e164": "+919876543210", "evidenceRef": "form-sub-88213", "expiresAt": "2026-11-23T09:14:22Z", "id": "8814", "kind": "explicit", "purpose": "promotional", "revokedAt": null, "revokedReason": null, "scope": "Order updates and delivery reminders.", "source": "api" } ]}Report what happened to a call you placed yourself
Closes the audit loop on a verdict. opt_out revokes consents and suppresses the number for 90 days; complaint suppresses it permanently.
A recipient opted out
Revokes every active consent for the number and suppresses it for the 90-day re-consent lockout, in one transaction.