> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kataven.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kataven Hub API — call recordings

> REST API reference for retrieving call recordings via short-lived presigned S3 URLs.

Retrieve a presigned URL for a call recording. Wrapped by the [Python SDK](/sdks/python/recordings) and [Node SDK](/sdks/node/recordings).

## Endpoints at a glance

| Method | Path                                                                   | Summary                                    |
| ------ | ---------------------------------------------------------------------- | ------------------------------------------ |
| `GET`  | [`/api/v1/sessions/{id}/recording`](#get-api-v1-sessions-id-recording) | Get a presigned URL for the call recording |

## Reference

### `GET /api/v1/sessions/{id}/recording`

Get a presigned URL for the call recording

Returns a short-lived presigned S3 URL for playback. The URL expires in 5 minutes — refetch if it lapses. Returns 404 if no recording exists, 409 if the recording is not yet uploaded.

**Parameters**

| Name | In   | Type     | Required | Description |
| ---- | ---- | -------- | -------- | ----------- |
| `id` | path | `string` | Yes      | Session id  |

**Responses**

| Code  | Description                       | Body     |
| ----- | --------------------------------- | -------- |
| `200` | OK                                | `object` |
| `400` | Missing X-Account-ID header       | `string` |
| `404` | No recording for this session     | `string` |
| `409` | Recording not ready               | `string` |
| `500` | Internal error                    | `string` |
| `503` | Recording playback not configured | `string` |

**Example**

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.kataven.ai/v1/sessions/agent_01HZ2N.../recording \
    -H "Authorization: Bearer $KATAVEN_API_KEY"
  ```

  ```python Python SDK theme={null}
  from kataven import KatavenClient

  client = KatavenClient()  # reads KATAVEN_API_KEY
  client.recordings.get(id="agent_01HZ2N...")
  ```

  ```typescript Node SDK theme={null}
  import { Kataven } from "@kataven/server";

  const client = new Kataven();   // reads KATAVEN_API_KEY
  await client.recordings.get("agent_01HZ2N...");
  ```
</CodeGroup>
