Hang up a call

View as Markdown
Ends a live call by hanging up its carrier leg. The final status is taken from the carrier: `completed` if the call was answered, `canceled` if it was still ringing, or the carrier's own terminal status (and duration) if it had already ended. A call that never reached the carrier is closed as `canceled`. **Side effects.** Hangs up the carrier leg, releases the workspace's concurrency slot, closes the row (a concurrent post-call webhook that closes it first wins, keeping its richer data), invalidates the call caches and notifies the dashboard in real time. Transcript, analysis and billed minutes follow through the normal post-call pipeline. Writes an audit entry. **Idempotency.** Idempotent: a call already in a terminal state (`completed`, `failed`, `no-answer`, `busy`, `canceled`) returns 200 with no side effects, so double clicks and retries are safe. **Webhook events.** The post-call pipeline later delivers `call.completed` or `call.failed` for the call, as for any call that ends. See [Webhooks](/webhooks). **Access** - **Required scope:** `write`. - **Rate limit:** Outbound — 20 requests/min per workspace, shared by every `/api/calls` endpoint. 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 live call’s id. Must be a UUID (400 Invalid call ID otherwise).

Response

The call is ended (or already was).

dataobject

Errors

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