---
title: "Get Document Download Url"
method: GET
path: "/documents/{child_id}/{document_id}/download"
tags: ["documents"]
---

# Get Document Download Url

`GET /documents/{child_id}/{document_id}/download`

## Request

- Base URL: `https://api.projectindi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.projectindi.com/documents/{child_id}/{document_id}/download`
- Auth: none declared

Get signed download URL for a document.

Authentication: JWT required
RLS: User must have access via family membership or document ownership

Returns signed URL for direct download. Blocks quarantined files.

``playback`` opts into the normalised MP4 for a transcoded video. It is
opt-in because this is also the *file download* endpoint - "save to disk"
on web, clinic and mobile all resolve here, and those want the bytes the
parent actually uploaded, under the name and MIME they uploaded them with.
Handing a re-encode to a clinician exporting a record would be silent data
substitution, so only the viewers that want to *play* the file ask for it.

## Path parameters

- `child_id` string, required
- `document_id` string, required

## Query parameters

- `playback` boolean

## Response `200`

Successful Response

- SrcApiDocumentsRoutesDownloadUrlResponse
  - `signed_url` string, required
  - `expires_at` string, required
  - `file_name` string, required
  - `file_type` string, required
  - `processing_status` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles.md) - [All operations](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/llms.txt) - [OpenAPI document](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/revisions/25a7813e21fd?raw)
