---
title: "Mint a short-lived presigned GET URL for a private S3 object after ACL check"
method: GET
path: "/v1/protected-assets/{prefix}/{uuid}/{filename}"
tags: ["Protected Assets"]
---

# Mint a short-lived presigned GET URL for a private S3 object after ACL check

`GET /v1/protected-assets/{prefix}/{uuid}/{filename}`

## Request

- Base URL: `https://api.vendure.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.vendure.io/v1/protected-assets/{prefix}/{uuid}/{filename}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/vendure/apis/vendure-io-api-public/docs/v1/protected-assets/:prefix/:uuid/:filename/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `prefix` string, required
- `uuid` string, required
- `filename` string, required

## Response `200`

- ProtectedAssetUrlDto
  - `url` string, required: Short-lived presigned GET URL for the private asset
  - `expiresInSeconds` number, required: Lifetime of the presigned URL in seconds

## Other responses

- `400`: Validation failed
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `500`: Internal server error

---

[API](https://skmtc.dev/vendure/apis/vendure-io-api-public.md) - [All operations](https://skmtc.dev/vendure/apis/vendure-io-api-public/llms.txt) - [OpenAPI document](https://skmtc.dev/vendure/apis/vendure-io-api-public/revisions/0747ce439f89?raw)
