---
title: "Get a call recording"
method: GET
path: "/v1/calls/{id}/recording"
tags: ["Calls"]
---

# Get a call recording

`GET /v1/calls/{id}/recording`

Channel-agnostic recording fetch: resolves a fresh, playable MP3 URL
for any call regardless of channel (provider-signed URLs expire ~10
minutes after signing, so this re-signs on demand). Default responds
`302 Found` redirecting to the fresh URL; pass `as=json` to receive
`{ url }` instead.

## Path parameters

- `id` string, required

## Query parameters

- `as` 'json'

## Response `200`

Recording URL (`as=json` only).

- object
  - `url` string

## Other responses

- `302` — Redirect to a freshly-signed recording URL.
- `400` — Invalid request
- `401` — Unauthorized
- `404` — Call not found, or no recording is available for this call
- `502` — Recording provider lookup failed

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 1 info
  - added the optional property `details/budgetScope` to the response with the `400` status
- **2026-09-15** `0dba7d004d75` — 2 info
  - added the optional property `details/quotaExhausted` to the response with the `400` status
  - added the optional property `details/quotaScope` to the response with the `400` status
- **2026-09-09** `222e3a38a382` — 1 info
  - removed the non-success response with the status `403`

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/calls/:id/recording/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/be448f13ecdc?raw)
