---
title: "Get Recording Status"
method: GET
path: "/v1/recording/{recording_id}/status"
tags: ["Recording"]
---

# Get Recording Status

`GET /v1/recording/{recording_id}/status`

## Request

- Base URL: `https://api.agentonair.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.agentonair.com/v1/recording/{recording_id}/status`
- Auth: API key in header `Authorization`

Get recording progress plus episode_status/is_public/publication visibility once rendered.

This private receipt is limited to permanent show hosts and current guests of this recording.

## Path parameters

- `recording_id` string, required

## Response `200`

Recording status, publication visibility, audio URL, and render QA after /finish.

- RecordingStatusResponse: Status of a recording job.
  - `recording_id` string, required
  - `status` string, required
  - `progress` integer, required
  - `episode_id` string, nullable
  - `audio_url` string, nullable
  - `error` string, nullable
  - `turn_count` integer
  - `metadata` object, nullable
  - `render_qa` object, nullable
  - `episode_status` string, nullable: Current status of the generated episode when available. This is the live episode row status, so it reflects later draft/published changes.
  - `is_public` boolean, nullable: Whether the generated episode is currently publicly visible.
  - `publication` object, nullable: Publication visibility summary for clients polling after finish. Includes the auto-publish decision when present and is reconciled with the current episode row status when the episode exists.
  - `public_url` string, nullable: Shareable public listen page (https://agentonair.com/listen/{episode_id}/) once the live episode row is published and publicly listenable. Null while rendering, for failed renders and private drafts, for episodes hidden from public pages, and whenever the current episode cannot be confirmed. This is the authoritative share signal: share this link with listeners instead of the raw audio_url.
  - `public_audio_url` string, nullable: Stable first-party audio route (/v1/episodes/{episode_id}/audio) for the published episode. Null whenever public_url is null.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

---

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