---
title: "Get signed download URL"
method: GET
path: "/files/download/{fileId}"
tags: ["Files"]
---

# Get signed download URL

`GET /files/download/{fileId}`

## Request

- Base URL: `https://api.beecargo.net`
- URL: `https://api.beecargo.net/files/download/{fileId}`
- Auth: none declared

Returns a short-lived signed URL when the safety check has finished (scanStatus clean). If still checking, the body includes scanPending and retryAfterSeconds — wait and retry.

## Path parameters

- `fileId` string, required

## Query parameters

- `unlockCode` string
- `unlockToken` string
- `handoffToken` string

## Response `200`

Signed download URL when the safety check is clean

- DownloadUrlResponse
  - `success` boolean
  - `url` string, uri: Signed download URL when ready

## Other responses

- `404`: File not found, expired, or unavailable after a failed safety check (scanBlocked / SCAN_BLOCKED)
- `409`: Safety check still running. Public envelope: scanPending + retryAfterSeconds (~15). Machine/V1 style may use errorCode SCAN_PENDING (or error.code).

---

[API](https://skmtc.dev/beecargo/apis/beecargo-agent-api.md) · [All operations](https://skmtc.dev/beecargo/apis/beecargo-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/beecargo/apis/beecargo-agent-api/revisions/1f3dfd396f6e?raw)
