Every compliance check recorded for this campaign's calls
The audit trail for the whole run: every check that passed, warned or blocked, in the order it ran. This is what a complaint is answered with.
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 campaign's id.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/campaigns/string/compliance"{ "data": [ { "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" } ]}Remove every recipient — replacing the list
Clears the list so you can upload a different one. Only meaningful while the campaign is still a draft.
Create a campaign (as a draft)
A campaign is a recipient list plus a pacing, retry and calling-window policy. It is created as a draft and dials nothing until you launch it. 🔴 agentId can never be changed afterwards — duplicate the campaign to use a different agent.