Cancel a warm transfer

View as Markdown
Hangs up the human leg and returns the caller to the AI: a fresh voice-provider conversation is registered on the caller's leg with the call's agent, and the transfer fields are cleared. **Side effects.** Ends the human's carrier leg, starts a new AI conversation on the same call row (the row now points at the new conversation, whose post-call data replaces the old one), and writes an audit entry. The AI can only be resumed when the call's agent still exists, is provisioned and is not paused. Those refusals currently surface as **502** (not 409): they are raised after the human leg has already been hung up and are wrapped as a telephony error, so on a 502 the caller may be left in the conference alone. Check the agent's state before canceling. **Idempotency.** Not safe to repeat blindly: after a success the transfer fields are cleared and a repeat returns 400 `No active transfer to cancel`; after a 502 the human leg may already be gone. **Access** - **Required scope:** `full`. Signed-in users need the admin or owner role. - **Rate limit:** Outbound — 20 requests/min per workspace, and also the General API budget (per plan: 120 to 600 requests/min per workspace). See [Rate limits](/rate-limits). - **Plan:** Available on every plan.

Authentication

AuthorizationBearer
Workspace API key: `jl_` followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (**Settings → API Keys**) and sent as `Authorization: Bearer jl_...`. The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys. | Scope | GET / HEAD | POST / PUT / PATCH / DELETE | Admin-only routes | | --- | --- | --- | --- | | `read` | Yes | No | No | | `write` | Yes | Yes | No | | `full` | Yes | Yes | Yes | Operations restricted to admins or owners reject keys without the `full` scope with `403`, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See [Authentication](/authentication).

Path parameters

callIdstringRequiredformat: "uuid"

The transferred call’s id. Must be a UUID (400 Invalid call ID otherwise).

Response

Transfer canceled and the AI is back on the line. Note this body has no data wrapper.

successtrue

Always true.

messagestring
Fixed confirmation text.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
502
Bad Gateway Error