---
title: "Get a prepared download"
method: GET
path: "/downloads/{downloadRequestId}"
tags: ["Downloads"]
---

# Get a prepared download

`GET /downloads/{downloadRequestId}`

## Request

- Base URL: `https://api.braiv.co/v1`
- URL: `https://api.braiv.co/v1/downloads/{downloadRequestId}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Returns a URL when ready. Failed download preparation is a terminal 200 response with `status: failed` and an error object. Required scope: `downloads:write`.

## Path parameters

- `downloadRequestId` string, required

## Response `200`

Download is ready or terminally failed.

- Download
  - `id` string, required: Download request ID.
  - `status` string, required: Normalized to ready or failed at terminal state; otherwise stored queue status.
  - `tier` 'full' | 'sample': Download entitlement applied.
  - `truncated` boolean, required: True for sample-tier artifacts.
  - `maxDurationSeconds` number, nullable, required: Sample duration cap or null for full downloads.
  - `url` string, uri, nullable, required: Prepared artifact URL when ready.
  - `error` object, nullable, required: Terminal worker failure details.
  - `jobId` string, required: Pollable download job ID.

## Other responses

- `202`: Download is still queued or processing.
- `401`: A supported authentication header is missing or contains an invalid Public API key.
- `403`: Authentication succeeded, but the required scope, workspace role, or resource permission is missing.
- `404`: The resource does not exist or is not accessible to the caller.
- `429`: The API key exceeded its allowed concurrency or request rate. Retry after in-flight work completes or the limit resets.
- `500`: An unexpected server error occurred.

---

[API](https://skmtc.dev/braiv/apis/braiv-public-api.md) - [All operations](https://skmtc.dev/braiv/apis/braiv-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/braiv/apis/braiv-public-api/revisions/8ed0fd0d0a6f?raw)
