Endpoint reference
All paths are relative to https://<your-api-host>/api/v1. Every list endpoint uses cursor pagination and returns newest-first.
Workspace
/pingEstablishes the session cookie and returns a CSRF token and the signed-in user. The only endpoint you may call before authenticating.
/workspaceThe workspace name, inbound number, agent mode and timezone.
/workspaceUpdate the workspace name, timezone or transcript retention window.
Calls & transcripts
/callsList calls, newest first.
| Field | Type | Description |
|---|---|---|
| outcome | string | hot, qualified, review, not_suitable, no_intent. |
| from / to | date | Inclusive bounds on started_at. |
| q | string | Matches caller name, phone or intent. |
| limit / cursor | int / string | Standard pagination. |
/calls/{call_id}A single call with its summary, captured fields, next action and full transcript.
{
"id": "call_9f21",
"started_at": "2026-09-09T08:42:00Z",
"duration_seconds": 214,
"caller": { "name": "Denise Okafor", "phone": "+447700900123" },
"intent": "Selling a probate property",
"outcome": "hot",
"summary": "Three-bed semi in Walsall held in probate...",
"captured": { "Postcode": "WS3 2NX", "Bedrooms": "3" },
"next_action": "Call back today before 5pm",
"transcript": [
{ "speaker": "agent", "at_second": 0, "text": "Good morning..." },
{ "speaker": "caller", "at_second": 4, "text": "Hi, I've got a house..." }
]
}/calls/{call_id}/recordingReturns a short-lived signed URL for the audio, when a recording exists and retention has not expired.
Opportunities
/opportunitiesScored acquisition opportunities extracted from calls.
| Field | Type | Description |
|---|---|---|
| outcome | string | hot, qualified, review, not_suitable. |
| min_score | integer | 0–100 buy-box score floor. |
| postcode | string | Full or partial postcode prefix. |
/opportunities/{opportunity_id}Full property detail, the score breakdown, and the call it came from.
/opportunities/{opportunity_id}Assign an owner, override the outcome, or add a desk note.
{ "owner": "usr_2", "outcome": "qualified", "note": "Viewing booked Thursday" }Leads & contacts
/leadsEvery caller the agent has captured, with status and last call.
/leadsCreate a lead from another source, such as a web form. Send Idempotency-Key.
| Field | Type | Description |
|---|---|---|
| phone* | string | E.164 preferred. |
| name | string | Optional. |
| string | Optional. | |
| source* | string | Free-text origin, e.g. web_form. |
| note | string | Optional desk note. |
/leads/{lead_id}Update status (new, handled, dismissed) or add a desk note.
/leads/{lead_id}/callsEvery call linked to this lead, newest first.
Agent draft & publishing
/agent/draftThe editable configuration: greeting, voice, transfer number, closing line, buy box and guardrails.
/agent/draftFull replacement. Read the draft, modify it, send the whole object back.
/agent/publishPromotes the current draft to the live agent. Takes effect on the next inbound call.
/agent/publishedWhat callers hear right now, plus who published it and when.
Team, keys & webhooks
/teamMembers and pending invitations with their roles.
/team/invitationsInvite an email address with a role.
/team/{member_id}Remove a member or revoke an invitation.
/api-keysKey labels, prefixes, scopes and last use. Secrets are never returned.
/api-keysCreate a scoped key. The full secret appears in this response only.
/api-keys/{key_id}Revoke a key immediately.
/webhooksConfigured endpoints, subscribed events and last delivery.
/webhooksRegister an HTTPS endpoint and the events it should receive.
/audit-logWho changed what, when, with the request ID.
