---
title: "GET /v1/files/{id}/download-url"
method: GET
path: "/v1/files/{id}/download-url"
tags: ["Files"]
---

# GET /v1/files/{id}/download-url

`GET /v1/files/{id}/download-url`

## Request

- Base URL: `https://api.virtuall.pro`
- URL: `https://api.virtuall.pro/v1/files/{id}/download-url`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

## Path parameters

- `id` string, uuid, required

## Response `200`

Pre-signed download URL

- DownloadUrl
  - `downloadUrl` string, required: Download URL for this file. Request GET /v1/files/{id}/download-url again when the URL expires.
  - `expiresIn` number, required: Nominal signing lifetime in seconds. Refresh signed URLs before reuse; already-public URLs may have a different lifetime.

## Other responses

- `400`: Invalid request
- `401`: Authentication required or invalid
- `403`: Permission denied
- `404`: File not found
- `429`: Rate limit exceeded
- `500`: Unexpected server error
- `503`: Service temporarily unavailable

---

[API](https://skmtc.dev/virtuall/apis/virtuall-external-api.md) - [All operations](https://skmtc.dev/virtuall/apis/virtuall-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/virtuall/apis/virtuall-external-api/revisions/2b3a30238ce0?raw)
