Developers — API
Calls API
Initiate single or bulk calls and read their results.
Initiate a call
POST/api/calls/initiate
agent_idstringrequiredThe agent that will handle the call.
phone_numberstringrequiredDestination in E.164 format, e.g. +919812345678.
contact_dataobjectoptionalOptional name / company / email to personalize the call and enrich the contact.
cURL
curl -X POST https://voice.vaaniq.ai/api/calls/initiate \
-H "X-API-Key: trc_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "your-agent-id",
"phone_number": "+919812345678",
"contact_data": { "name": "Riya", "company": "Acme" }
}'Bulk dial campaign
POST/api/calls/bulk
agent_idstringrequiredAgent for the campaign.
contactsarrayrequiredList of objects with phone_number (and optional name / company / email).
consent_attestedbooleanrequiredMust be true — confirms you hold consent to call this list.
calls_per_secondnumberoptionalDial rate. Defaults to 1.
cURL
curl -X POST https://voice.vaaniq.ai/api/calls/bulk \
-H "X-API-Key: trc_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "your-agent-id",
"calls_per_second": 1,
"consent_attested": true,
"contacts": [
{ "phone_number": "+919812345678", "name": "Riya" },
{ "phone_number": "+919800000000", "name": "Aman" }
]
}'DNC numbers are skipped automatically; the response reports how many were queued vs suppressed.
List calls & get detail
GET/api/calls
GET/api/calls/{id}/detail
List returns recent calls with status, duration, and outcome. The detail endpoint adds the full transcript, summary, sentiment, and any extracted appointment data.
A call returns immediately as
queued/initiated. Use webhooks to be notified on completion instead of polling.