One event, with its payload re-rendered from current state
⚠️ The payload is RE-RENDERED from the resource as it stands now, not replayed from the signed bytes that were delivered. A transcript that landed after delivery will be present here and absent from what your endpoint received. Use it to understand an event, not to re-verify a signature.
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 event's id.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/events/string"{ "data": { "createdAt": "2026-08-25T09:14:22Z", "delivery": { "attempts": 0, "deliveredAt": "2026-08-25T09:14:03Z", "endpointId": "2b7c1d90-4e5f-4a6b-8c9d-0e1f2a3b4c5d", "lastStatus": 0, "status": "pending" }, "id": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451", "payload": { "created_at": "2026-08-25T09:14:22Z", "data": {}, "id": "evt_01J9Z2K3M4N5P6Q7R8S9T0", "links": { "recording": "/v1/calls/9f1c2d84-5b6a-4c3d-8e2f-1a0b9c8d7e6f/recording", "self": "/v1/calls/9f1c2d84-5b6a-4c3d-8e2f-1a0b9c8d7e6f", "transcript": "/v1/calls/9f1c2d84-5b6a-4c3d-8e2f-1a0b9c8d7e6f/transcript" }, "type": "call.completed" }, "subjectId": "9f1c2d84-4e3a-4f6c-b902-7d1e8a33c451", "subjectType": "call", "type": "call.initiated" }}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.
Recent events (newest first, 30-day retention)
The reconciliation path when a webhook delivery was missed, and the debugging path for "what exactly did Tone send". Deliveries are at-least-once and unordered, so dedupe on the event id.