---
title: "Download an Omni call recording"
method: GET
path: "/v1/omni/calls/{call_id}/recording"
tags: ["Omni"]
---

# Download an Omni call recording

`GET /v1/omni/calls/{call_id}/recording`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/omni/calls/{call_id}/recording`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Fetch the call's audio recording, when one exists (recording is off by default). Requires `omni:read`.

By default the endpoint streams audio bytes from the tenant-scoped PyAI resource (`Content-Type` reflects the stored format, e.g. `audio/wav`). Pass `?response=url` to receive the canonical authenticated PyAI resource URL as JSON. Storage locations, raw recording URLs, and internal source identifiers are never returned.

`404` if there is no recording for the call.

## Path parameters

- `call_id` string, required: Stable opaque PyAI-owned call identifier. Use it unchanged across every Omni call sub-resource.

## Query parameters

- `response` 'url'

## Response `200`

The canonical PyAI resource as JSON (`?response=url`), or the audio bytes streamed inline.

- OmniCallRecording
  - `object` string
  - `call_id` string: Stable opaque PyAI-owned call identifier. Use it unchanged across every Omni call sub-resource.
  - `url` string, uri: Canonical authenticated PyAI endpoint for the recording audio.

## Other responses

- `404`: Resource not found (`code: not_found`)

---

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