Retrieve a call recording
Authentication
Path parameters
The call’s id. Must be a UUID (400 Invalid call ID otherwise).
Response headers
Always private, max-age=300.
The call’s id. Must be a UUID (400 Invalid call ID otherwise).
Always private, max-age=300.
Streams the call’s recording from the voice provider, normally as audio/mpeg, with the provider’s Content-Length when known. Offer it when the call’s has_recording is true; the bytes are proxied on demand and never stored by Jelliu.
A 404 carries an X-Recording-Status header when the provider has no audio: processing (the call is recent; retry in a minute) or expired (older than about 13 days, past the provider’s retention window; it will not come back). A call that never reached the voice provider returns 404 without the header.
Consistency. Sent with Cache-Control: private, max-age=300. The upstream fetch is attempted every time, whatever the call’s age.
Idempotency. Read-only; safe to retry. If the stream breaks mid-way the response simply ends; request it again.
Access
read (or write)./api/calls endpoint. See Rate limits.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.
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.