Recordings

Request a download

Changed on

Starts async generation of a downloadable file and returns a download_id to poll. Video is generated in the background; audio-only recordings complete immediately, so the response may already return status: completed with the file payload.

Downloads are private to the API client that created them, and URLs expire ~24 hours after generation—request a new one when it expires.

Only the owner, teammates who can view the recording, and people it was shared with at standard or admin level can download it. Limited-access shares get 403 Forbidden.

post/recordings/{recording_id}/download

Request

  • Base URL
    https://api.fathom.ai/external/v1
  • URL
    https://api.fathom.ai/external/v1/recordings/{recording_id}/download
  • Auth
    • API key in header X-Api-Key
    • or HTTP bearer

Path parameters

recording_idinteger required
Example:123456789

The ID of the meeting recording to generate a download for.

Request body

destination_urlstring uri

URL Fathom POSTs the completed download payload to when it is ready. If omitted, poll the status endpoint.

Example request

{
  "destination_url": "https://example.com/destination"
}

Response

The download request was accepted. Poll the download status endpoint until it completes.

download_idstring required
recording_idinteger required
status'processing' | 'completed' | 'failed' | 'expired' required
failure_reason'generation_failed' | 'generation_timeout'

Present when the download failed.

Example response

{
  "download_id": "dl_CJAj1YPuruCgWHaKgEBv6Mb1UsNj8x",
  "recording_id": 123456789,
  "status": "processing",
  "video": {
    "url": "https://media.fathom.ai/downloads/...",
    "content_type": "video/mp4",
    "file_size_bytes": 154763264,
    "expires_at": "2026-07-13T18:30:00Z"
  },
  "audio": {
    "url": "https://media.fathom.ai/downloads/...",
    "content_type": "video/mp4",
    "file_size_bytes": 154763264,
    "expires_at": "2026-07-13T18:30:00Z"
  }
}

Changes