---
title: "Download Drawing Url"
method: GET
path: "/api/v1/drawings/{drawing_id}/download-url"
tags: ["drawings"]
---

# Download Drawing Url

`GET /api/v1/drawings/{drawing_id}/download-url`

## Request

- Base URL: `https://api.rudus.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rudus.ai/api/v1/drawings/{drawing_id}/download-url`
- Auth: none declared
- TypeScript: <https://skmtc.dev/rudus/apis/rudus-api/docs/api/v1/drawings/:drawing_id/download-url/get.ts> (a function with typed inputs; its response is checked against the schema)

Mint a signed GET URL for rendering the source PDF.

User-scoped connection; RLS is the safety net per ADR-0015.
Reuses get_drawing_storage_path (the same ownership check as /upload).
Per docs/superpowers/specs/2026-05-06-ingestion-design.md §2.1.

## Path parameters

- `drawing_id` string, uuid, required

## Response `200`

Successful Response

- SignedDownloadResponse: A short-lived signed GET URL for rendering the source PDF in the FE. Distinct from `SignedUploadResponse` because the operation, TTL, and HTTP method differ. Mint freshly on FE workspace mount and re-mint when `expires_in` approaches expiry.
  - `url` string, required
  - `expires_in` integer, required

## Other responses

- `4XX`: Client Error
- `5XX`: Server Error

---

[API](https://skmtc.dev/rudus/apis/rudus-api.md) - [All operations](https://skmtc.dev/rudus/apis/rudus-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rudus/apis/rudus-api/revisions/5673f72c8a5d?raw)
