---
title: "Download a file"
method: GET
path: "/v1/files/{file_id}/download"
tags: ["Files"]
---

# Download a file

`GET /v1/files/{file_id}/download`

Get a presigned URL to download the content of a file by its unique identifier.

The response includes a short-lived URL that can be used to download the file directly from cloud storage without additional authentication. The URL is valid for 1 hour; call this endpoint again to mint a fresh URL when needed.

Download availability is based on upload completion and redaction/obfuscation readiness. It is separate from processing status: a file can still report `pending` or `failed` from the **Get file by id** endpoint while the original bytes are available for download.

## Path parameters

- `file_id` string, required

## Response `200`

200

- object
  - `data` object, required
    - `url` string, uri, required — Short-lived presigned URL pointing at cloud storage. Fetch this URL with no extra authentication to download the file bytes. Valid for 1 hour.
    - `expires_at` string, date-time, required — ISO 8601 timestamp when the presigned URL expires.

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `422` — 422
- `429` — 429
- `500` — 500

---

[API](https://skmtc.net/dovetail/apis/dovetail-public-api.md) · [All operations](https://skmtc.net/dovetail/apis/dovetail-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dovetail/dovetail-public-api/revisions/4107f5fdf8b2/schema)
