Calls

Outbound and inbound telephony calls placed by a phone agent.

List calls

GET/calls
GET /calls
curl -X GET "https://api.rabbitt.ai/api/v1/calls" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Query parameters

agentIdstringoptional
statusstringoptional

One of:createdactivecompleted

pageintegeroptional

default: 1 · min 1

limitintegeroptional

default: 25 · 1–100

Responses

200A paginated list of calls
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 200
objectstring
dataTypestring
dataobject[]
paginationobject

Place an outbound call

POST/calls

Creates a call for a phone agent and begins dialing immediately. Returns as soon as the carrier accepts the request — poll the call or wait for the report to observe the outcome.

POST /calls
curl -X POST "https://api.rabbitt.ai/api/v1/calls" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "507f1f77bcf86cd799439011",
    "phoneNumber": "+919876543210"
  }'

Body parameters

agentIdstringrequired
phoneNumberstringrequired

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

max length 30

contactNamestringoptional

max length 200

externalRefstringoptional

Your own identifier for this call, echoed back on the call and its report.

max length 500

variablesobjectoptional

Values for the {{placeholders}} declared in the agent's instructions.

Responses

201The call, now dialing
400Invalid request
401Missing or invalid API key
402Invalid request
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 201
idstring
objectstring
agentIdstring
agentNamestring
statusstring

`created` before the call connects, `active` while in progress, `completed` once it ends. When `reportId` is present the analysis has finished.

One of:createdactivecompleted

directionstring
phoneNumberstring
contactNamestring
attemptNumberinteger
campaignIdstring
dispositionstring
languagestring
externalRefstring
startedAttimestamp
endedAttimestamp
durationSecondsinteger
chargedMinutesnumber
reportIdstring
recordingAvailableboolean
createdAttimestamp

Retrieve a call

GET/calls/{id}
GET /calls/{id}
curl -X GET "https://api.rabbitt.ai/api/v1/calls/507f1f77bcf86cd799439011" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Path parameters

idstringrequired

Responses

200The call
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 200
idstring
objectstring
agentIdstring
agentNamestring
statusstring

`created` before the call connects, `active` while in progress, `completed` once it ends. When `reportId` is present the analysis has finished.

One of:createdactivecompleted

directionstring
phoneNumberstring
contactNamestring
attemptNumberinteger
campaignIdstring
dispositionstring
languagestring
externalRefstring
startedAttimestamp
endedAttimestamp
durationSecondsinteger
chargedMinutesnumber
reportIdstring
recordingAvailableboolean
createdAttimestamp

Retrieve a call transcript

GET/calls/{id}/transcript

Turns in chronological order. Empty while the call is still connecting.

GET /calls/{id}/transcript
curl -X GET "https://api.rabbitt.ai/api/v1/calls/507f1f77bcf86cd799439011/transcript" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Path parameters

idstringrequired

Responses

200The transcript
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 200
objectstring
callIdstring
dataobject[]

Retrieve a call report

GET/calls/{id}/report

Reports are generated asynchronously after a call ends. Responds 202 with `status: "pending"` until the analysis is ready.

GET /calls/{id}/report
curl -X GET "https://api.rabbitt.ai/api/v1/calls/507f1f77bcf86cd799439011/report" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Path parameters

idstringrequired

Responses

200The report
202The report is still being generated
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 202
objectstring
callIdstring
statusstring

End a call in progress

POST/calls/{id}/hangup
POST /calls/{id}/hangup
curl -X POST "https://api.rabbitt.ai/api/v1/calls/507f1f77bcf86cd799439011/hangup" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Path parameters

idstringrequired

Responses

200The ended call
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 200
idstring
objectstring
agentIdstring
agentNamestring
statusstring

`created` before the call connects, `active` while in progress, `completed` once it ends. When `reportId` is present the analysis has finished.

One of:createdactivecompleted

directionstring
phoneNumberstring
contactNamestring
attemptNumberinteger
campaignIdstring
dispositionstring
languagestring
externalRefstring
startedAttimestamp
endedAttimestamp
durationSecondsinteger
chargedMinutesnumber
reportIdstring
recordingAvailableboolean
createdAttimestamp

Dashboard Welcome