---
title: "Get Agent Session Recording"
method: GET
path: "/v1/agent/sessions/{session_id}/recording"
tags: ["Agent Sessions"]
---

# Get Agent Session Recording

`GET /v1/agent/sessions/{session_id}/recording`

## Request

- Base URL: `https://api.fish.audio`
- URL: `https://api.fish.audio/v1/agent/sessions/{session_id}/recording`
- Auth: HTTP bearer

Return time-limited download URLs for the session's audio recording, one
per speaker track (agent and user are recorded separately).

## Path parameters

- `session_id` string, required

## Response `200`

Request fulfilled, document follows

- object
  - `session_id` string, required
  - `status` 'processing' | 'complete' | 'failed', required
  - `tracks` AgentSessionRecordingTrackEntity[], required
    - `role` 'agent' | 'user' | 'human', required
    - `status` 'requested' | 'active' | 'complete' | 'failed', required
    - `url` string, nullable
    - `expires_at` string, date-time, nullable
    - `duration_ms` integer, nullable
    - `started_at` string, date-time, nullable
    - `ended_at` string, date-time, nullable
    - `error` string, nullable
    - `error_code` string, nullable
  - `transfers` AgentSessionTransferRecordingEntity[]
    - `transfer_id` string, required
    - `status` 'processing' | 'complete' | 'failed', required
    - `tracks` AgentSessionRecordingTrackEntity[], required
      - `role` 'agent' | 'user' | 'human', required
      - `status` 'requested' | 'active' | 'complete' | 'failed', required
      - `url` string, nullable
      - `expires_at` string, date-time, nullable
      - `duration_ms` integer, nullable
      - `started_at` string, date-time, nullable
      - `ended_at` string, date-time, nullable
      - `error` string, nullable
      - `error_code` string, nullable
  - `error` string, nullable
  - `error_code` string, nullable
  - `error_message` string, nullable

## Other responses

- `401`: No permission -- see authorization schemes
- `404`: Nothing matches the given URI
- `410`: URI no longer exists and has been permanently removed
- `502`: Invalid responses from another server/proxy
- `503`: The server cannot process the request due to a high load

## Changes

- **2026-11-03** `42ac421f7a12`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fish/apis/fishaudio-openapi/changes/v1/agent/sessions/:session_id/recording/get.md)

---

[API](https://skmtc.dev/fish/apis/fishaudio-openapi.md) - [All operations](https://skmtc.dev/fish/apis/fishaudio-openapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fish/apis/fishaudio-openapi/revisions/42ac421f7a12?raw)
