Interviews

Candidate interview sessions, including embeddable ones.

List interviews

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

Query parameters

externalRefstringoptional

max length 500

statusstringoptional

One of:createdactivecompleted

pageintegeroptional

default: 1 · min 1

limitintegeroptional

default: 25 · 1–100

Responses

200A paginated list of interviews
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

Create an interview

POST/interviews

Creates a pre-authorized interview session for one candidate and returns a ready-to-send interview link. To embed the interview in your own product, call `POST /interviews/{id}/embed-token` instead of sending this link.

POST /interviews
curl -X POST "https://api.rabbitt.ai/api/v1/interviews" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "507f1f77bcf86cd799439011",
    "candidateName": "Asha Menon"
  }'

Body parameters

agentIdstringrequired
candidateNamestringrequired

max length 200

candidateEmailstringoptional

max length 320

modestringoptional

`voice` runs a spoken interview; `text` runs a chat interview.

One of:voicetext

default: "voice"

expiresInHoursintegeroptional

default: 72 · 1–720

externalRefstringoptional

Your own identifier (candidate id, job requisition, …), echoed back everywhere.

max length 500

Responses

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

One of:createdactivecompleted

modestring

One of:textvoice

candidateNamestring
candidateEmailstring
externalRefstring
languagestring
startedAttimestamp
endedAttimestamp
durationSecondsinteger
reportIdstring
expiresAttimestamp
createdAttimestamp
interviewUrlstring

Hosted interview link to send directly to the candidate.

Mint an embed token

POST/interviews/{id}/embed-token

Returns a short-lived, origin-bound token for embedding this interview in an iframe. Mint it server-side, immediately before rendering the frame — the token is safe to place in a URL precisely because it expires quickly and only works from the origins registered on your API key.

POST /interviews/{id}/embed-token
curl -X POST "https://api.rabbitt.ai/api/v1/interviews/507f1f77bcf86cd799439011/embed-token" \
  -H "Authorization: Bearer rb_live_xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "expiresInSeconds": 900
  }'

Path parameters

idstringrequired

Body parameters

expiresInSecondsintegeroptional

default: 900 · 60–86400

Responses

200The embed token and a ready-to-use iframe URL
400Invalid request
401Missing or invalid API key
403The key lacks the required scope
404Resource not found
429Rate limit exceeded
Response body - 200
objectstring
interviewIdstring
tokenstring
embedUrlstring
expiresAttimestamp
allowedOriginsstring[]

Retrieve an interview

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

Path parameters

idstringrequired

Responses

200The interview
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

One of:createdactivecompleted

modestring

One of:textvoice

candidateNamestring
candidateEmailstring
externalRefstring
languagestring
startedAttimestamp
endedAttimestamp
durationSecondsinteger
reportIdstring
expiresAttimestamp
createdAttimestamp

Retrieve an interview report

GET/interviews/{id}/report

Responds 202 with `status: "pending"` until the analysis has finished. Set `includeTranscript=true` to receive the full turn-by-turn transcript alongside it.

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

Path parameters

idstringrequired

Query parameters

includeTranscriptbooleanoptional

default: false

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
interviewIdstring
statusstring

Dashboard Welcome