Add up to 500 recipients. Retrying a batch is safe.
Duplicates are counted rather than rejected, so a request that timed out can simply be resent without double-dialling anyone. A campaign holds at most 20,000 recipients. Add them before launching; the list is fixed once dialling starts.
Requires the write 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.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/campaigns/string/recipients" \ -H "Content-Type: application/json" \ -d '{ "recipients": [ { "e164": "+919876543210", "variables": { "name": "Priya", "order_id": "AC-4417" } } ] }'{ "data": { "added": 0, "duplicates": 0, "total": 0 }}Fetch a call's transcript
The turn-by-turn transcript, once the call has ended. A call with no audio — a sandbox call, an unanswered one — has no transcript.
Hide the campaign from the list. Nothing is deleted, and this route still serves it.
Housekeeping for a finished run. Its calls, recipients and compliance record are all still there.