---
title: "Get call recording metadata and disclosure state"
method: GET
path: "/v1/calls/{call_id}/recording"
---

# Get call recording metadata and disclosure state

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

## Request

- Base URL: `https://api.skysay.ai`
- URL: `https://api.skysay.ai/v1/calls/{call_id}/recording`
- Auth: none declared

The returned download_url is the stable authenticated playback contract. Clients must not construct storage URLs from storage_key or media_url.

## Path parameters

- `call_id` string, required

## Response `200`

Recording metadata

- CallRecording: Metadata for the active recording. Use download_url for playback; storage_key and media_url are legacy implementation details, not download contracts.
  - `call_id` string, required
  - `content_type` string, required
  - `disclosure` CallRecordingState, required: Safe recording-disclosure state (services/calls_routing/calls.py:_call_recording_state_from_rows). recording_state and recording_disclosure on Call both carry this same object.
    - `active_recording_id` string, required: Empty string unless the latest recording is undeleted and available.
    - `audit_actions` string[], required
    - `consent_notice` string, required
    - `consent_state` string, required
    - `deletable` boolean, required
    - `deleted_at` string, date-time, nullable, required
    - `downloadable` boolean, required
    - `duration_seconds` number, required
    - `kind` string, required
    - `media_url` string, required: Empty string unless a recording is currently active.
    - `recording_enabled` boolean, required
    - `recording_id` string, required: Empty string when there is no recording yet.
    - `retention_days` integer, required
    - `status` string, required: not_started or disabled when there is no recording yet, otherwise the latest recording's own status (e.g. processing, available, deleted).
    - `visible_to_customer` boolean, required
  - `download_url` string, required: Relative authenticated API URL for full or byte-range recording playback.
  - `duration_seconds` number, required
  - `id` string, required
  - `organization_id` string, required
  - `project_id` string, nullable
  - `status` string, required

## Other responses

- `404`: The call is not in the authenticated workspace, or it has no recording -- a call in another workspace answers exactly as one that never existed

---

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