Agents

Voice and phone agents — the reusable definition of who the AI is and what it should accomplish.

List agents

GET/agents

Returns the agents belonging to your organization, newest first.

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

Query parameters

typestringoptional

`phone` agents place and receive calls; `voice` agents run browser-based interviews.

One of:voicephone

default: "phone"

pageintegeroptional

default: 1 · min 1

limitintegeroptional

default: 25 · 1–100

Responses

200A paginated list of agents
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
pageinteger
limitinteger
totalinteger
totalPagesinteger
hasMoreboolean

Create an agent

POST/agents

Creates a voice or phone agent. Counts against your organization's agent quota.

POST /agents
curl -X POST "https://api.rabbitt.ai/api/v1/agents" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Asha Menon",
    "instructions": "You are a friendly scheduling assistant. Confirm the appointment time."
  }'

Body parameters

typestringoptional

One of:voicephone

default: "phone"

namestringrequired

max length 200

descriptionstringoptional

max length 2000

instructionsstringrequired

The agent's system prompt: who it is, what it must accomplish, and how it should behave.

max length 20000

modestringoptional

Voice agents only. Selects the prompt and report family.

One of:interviewworkflow

languagestringoptional
sectorstringoptional
maxDurationMinutesintegeroptional

1–120

providersobjectoptional
llmstringoptional

One of:mistralgeminigroq

sttstringoptional
ttsstringoptional
phoneobjectoptional
directionstringoptional

One of:outboundinboundboth

greetingstringoptional

max length 2000

fallbackstringoptional

max length 2000

voicemailBehaviorstringoptional

One of:hangupleave_messagemark_no_answer

maxAttemptsintegeroptional

1–5

retryDelayMinutesintegeroptional

min 1

requiredContactFieldsstring[]optional
outcomeLabelsstring[]optional
voiceobjectoptional
goalstringoptional

max length 2000

openingstringoptional

max length 2000

evaluationStylestringoptional

max length 2000

evaluationCriteriastring[]optional
difficultystringoptional

Responses

201The created agent
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
409Invalid request
429Rate limit exceeded
Response body - 201
idstring
objectstring
typestring

One of:voicephone

namestring
descriptionstring
modestring
languagestring
sectorstring
maxDurationMinutesinteger
instructionsstring
providersobject
llmstring
sttstring
ttsstring
sessionsCountinteger
createdAttimestamp

Retrieve an agent

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

Path parameters

idstringrequired

Responses

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

One of:voicephone

namestring
descriptionstring
modestring
languagestring
sectorstring
maxDurationMinutesinteger
instructionsstring
providersobject
llmstring
sttstring
ttsstring
sessionsCountinteger
createdAttimestamp

Update an agent

PATCH/agents/{id}

Only the supplied fields are changed.

PATCH /agents/{id}
curl -X PATCH "https://api.rabbitt.ai/api/v1/agents/507f1f77bcf86cd799439011" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Asha Menon",
    "description": "…",
    "instructions": "You are a friendly scheduling assistant. Confirm the appointment time.",
    "language": "…",
    "sector": "…",
    "maxDurationMinutes": 1,
    "providers": {},
    "phone": {},
    "voice": {}
  }'

Path parameters

idstringrequired

Body parameters

namestringoptional

max length 200

descriptionstringoptional

max length 2000

instructionsstringoptional

max length 20000

languagestringoptional
sectorstringoptional
maxDurationMinutesintegeroptional

1–120

providersobjectoptional
phoneobjectoptional
voiceobjectoptional

Responses

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

One of:voicephone

namestring
descriptionstring
modestring
languagestring
sectorstring
maxDurationMinutesinteger
instructionsstring
providersobject
llmstring
sttstring
ttsstring
sessionsCountinteger
createdAttimestamp

Delete an agent

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

Path parameters

idstringrequired

Responses

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

Dashboard Welcome