---
title: "Download a CDN file"
method: POST
path: "/cdn/download"
tags: ["cdn"]
---

# Download a CDN file

`POST /cdn/download`

Proxies a Ringover CDN download (transcription, recap, audio or video) using service credentials.

Private CDN URLs cannot be opened with a public API token or in a browser. Pass the full URL in the body of this route instead.

Typical sources:
- `transcription_url`, `recap_url`, `audio_url` or `video_url` from `GET /empower/call/{callUUID}`
- any other Ringover CDN download URL that belongs to your team

The `url` must:
- use a Ringover CDN host (`cdn.ringover.com`, `cdn-eu.ringover.com` or `cdn-us.ringover.com`)
- be a download path (`/v2/private/download/` or `/v2/public/download/`)
- belong to the team of the API token (the team id in the path is checked)
- point to a JSON, audio or video file (`.json`, `.mp3`, `.mp4`, `.mpeg`, `.mpg`, `.wav`, `.m4a`, `.webm`, `.ogg`, `.mov`, `.aac`)

Public download URLs (`/v2/public/download/`) are rewritten to the matching private path before the file is fetched.

The response is streamed. JSON is returned as JSON; audio and video are returned as the original binary, with the CDN `Content-Type` and `Content-Length` when present.

**Permission:** No specific permission required. A valid API key is sufficient. Empower Read is not required.

**Monitoring:** No impact. The team id in the URL must match the token's team.

```
curl -X POST https://public-api.ringover.com/v2/cdn/download \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://cdn.ringover.com/v2/private/download/teams/12345678/types/records/12345678-11111111/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee.mp3"}' \
  -o recording.mp3
```

## Request body

- object
  - `url` string, uri, required — Full CDN download URL (transcription, recap, audio or video).

## Response `200`

File content, streamed from the CDN. Content-Type matches the file (JSON, audio or video).

- object

## Other responses

- `400` — Bad request — invalid body, host, path or file type (only JSON, audio and video on an allowlisted Ringover CDN host).
- `401` — Unauthorized — missing or invalid token.
- `403` — Forbidden — the URL does not belong to the authenticated team (`url does not belong to your team`).
- `404` — Not found — file not found on the CDN.
- `502` — Bad gateway — failed to download the file from the CDN.

## Changes

- **2026-08-25** `241a8d30fa9b` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/ringover/apis/ringover-public-api/changes/cdn/download/post.md)

---

[API](https://skmtc.dev/ringover/apis/ringover-public-api.md) · [All operations](https://skmtc.dev/ringover/apis/ringover-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ringover/ringover-public-api/revisions/241a8d30fa9b/schema)
