Developers — API

Calls API

Initiate single or bulk calls and read their results.

Initiate a call

POST/api/calls/initiate
agent_idstringrequired

The agent that will handle the call.

phone_numberstringrequired

Destination in E.164 format, e.g. +919812345678.

contact_dataobjectoptional

Optional 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_idstringrequired

Agent for the campaign.

contactsarrayrequired

List of objects with phone_number (and optional name / company / email).

consent_attestedbooleanrequired

Must be true — confirms you hold consent to call this list.

calls_per_secondnumberoptional

Dial 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.