---
title: "Get a time-limited recording download URL"
method: GET
path: "/conversation/{callId}/recording/download-url"
tags: ["Conversations"]
---

# Get a time-limited recording download URL

`GET /conversation/{callId}/recording/download-url`

Returns a presigned S3 URL for the call's recording. Hand the URL straight to the customer or pull bytes server-side. The presigned URL is **time-limited** — typically usable for a few minutes — so don't cache it; request a fresh one each time you need the recording.

Returns `404` if the call has no recording (call hasn't started, was cancelled before audio captured, or was deleted by the platform's retention policy). Returns `400 Invalid call ID format` if you pass a Mongo `_id` instead of the `callId` string.

## Path parameters

- `callId` string, required

## Response `200`

Successful response — presigned URL ready to fetch.

- object
  - `status` boolean
  - `data` object
    - `presignedUrl` string, uri — Time-limited HTTPS URL pointing at the recording in S3. The URL expires after a short window; request a fresh one if needed.

## Other responses

- `400` — Invalid call ID format.
- `401` — Unauthorized access
- `404` — No recording found for this call.
- `500` — Internal server error

---

[API](https://skmtc.net/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.net/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/revisions/c2d0eb64b01a/schema)
