# Get a presigned URL to download a patient attachment Returns a short-lived presigned URL that can be used to download the patient attachment content directly from storage. The presigned URL is time-limited and grants temporary read access to the attachment content. No redirect is performed by this endpoint. Endpoint: GET /patient_attachment/{patient_attachment_id}/presign_url Version: v1 Security: x-api-key, a-api-key ## Path parameters: - `patient_attachment_id` (integer, required) ## Response 200 fields (application/json): - `url` (string) - `expires` (string) - `file_name` (string) ## Response 401 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 403 - `error.code` (string) Example: "UNAUTHORIZED" - `error.detail` (string) Human readable explanation of the error Example: "Access could not be verified for this request." - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000" ## Response 403 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 403 - `error.code` (string) Example: "MISSING_AUTHENTICATION_TOKEN" - `error.detail` (string) Human readable explanation of the error Example: "Authentication token is missing or the requested endpoint does not exist" - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000" ## Response 404 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 404 - `error.code` (string) Example: "NOT_FOUND" - `error.detail` (string) Human readable explanation of the error Example: "Could not find {Resource} with ID {ID_HERE}" - `request_id` (string) Example: "00000000-0000-0000-0000-000000000000" ## Response 500 fields (application/json): - `error` (object, required) - `error.status` (integer) Example: 500 - `error.code` (string) Example: "SERVER_ERROR" - `error.detail` (string) Human readable explanation of the error Example: "An unexpected error occurred while processing your request. Please try again in a few minutes. If it keeps happening, contact support with Request ID: 00000000-0000-0000-0000-000000000000." - `request_id` (string, required) Example: "00000000-0000-0000-0000-000000000000"