Sealed evidence records, newest first
One tamper-evident record per call attempt — completed calls AND refused dials. Each carries the full basis on which the attempt was allowed or refused, hashed and chained to its predecessor so any alteration, deletion or reordering is detectable.
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 results to return. 1-100, defaulting to 25.
1 <= value <= 10025Opaque page cursor from the previous response.
^\d+$Only records about this number.
^\+91\d{10,11}$Only records of this kind. Refusals are evidence too — a ledger of only successes proves nothing about whether the rules were honoured when they bit. Open set — handle an unrecognised value rather than throwing. Today: completed_call, blocked_dial.
Value in
- "completed_call"
- "blocked_dial"
The record sealing this call.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidOnly records from this campaign, refusals included.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/compliance/evidence-records"{ "data": [ { "callId": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451", "campaignId": null, "chainSeq": "4211", "content": {}, "contentHash": "a3f1…", "e164": "+919876543210", "id": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451", "kind": "completed_call", "prevHash": "0000…", "recordHash": "b7e2…", "sealedAt": "2026-08-31T09:14:22Z" } ]}One sealed evidence record
The full evidence document plus its seal: the content hash, the previous record’s hash, and the chain position. Recompute sha256 over the canonical content to prove the document was not altered; walk the verify endpoint to prove the whole chain.
Verify the evidence chain's integrity
Re-hashes every record in the requested slice and re-checks every link. An edited record fails its content hash; a deleted or reordered one breaks the chain. Long chains verify in slices — when complete is false, continue from throughSeq + 1.