Fetch a call's sealed evidence record
The tamper-evident evidence document for this call: the legal basis it was placed on (DNC, consent, carrier signal), how it was placed (DLT registration, A2P declaration, calling window, AI disclosure), the outcome, and the hash-chain seal. Available shortly after the call ends.
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
Path Parameters
The call's id.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/calls/string/evidence"{ "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" }}Place an outbound call (runs the compliance gate)
Runs the full pre-dial compliance gate inside the same transaction, so a refusal is a 403 with the audit rows already written and no carrier contacted. Requires agentId on a number that routes to a Tone agent and forbids it on a BYO number. Over your concurrent-call quota this returns 429 BEFORE the gate runs, so no verdict is recorded. Send an Idempotency-Key — a timeout is otherwise indistinguishable from a call you did not place.
Download a call's evidence record as a PDF
The same sealed record GET /v1/calls/{id}/evidence returns, rendered as a human-readable document with the hash-chain seal on page one.