---
title: "POST /v1/assets/{asset_id}/download-token — Issue a time-limited download token for the master rendition of a licensed asset."
method: POST
path: "/v1/assets/{asset_id}/download-token"
tags: ["Tokens"]
---

# POST /v1/assets/{asset_id}/download-token — Issue a time-limited download token for the master rendition of a licensed asset.

`POST /v1/assets/{asset_id}/download-token`

## Request

- Base URL: `https://api.stockfilm.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stockfilm.com/v1/assets/{asset_id}/download-token`
- Auth: API key in header `Authorization`

Requires an active license entitlement for the requesting tenant on the
given asset. Returns 404 for missing/cross-tenant assets, 409 when the
tenant has no active license or the asset lacks a master rendition.

## Path parameters

- `asset_id` string, uuid, required

## Request body

- CreateDownloadTokenRequest: Request body for POST /v1/assets/{asset_id}/download-token.
  - `ttl_minutes` integer, nullable: Optional TTL in minutes (default 10).

## Response `201`

Download token issued

- CreateDownloadTokenResponse: Response for POST /v1/assets/{asset_id}/download-token.
  - `asset_id` string, uuid, required
  - `asset_rendition_id` string, uuid, required
  - `download_event_id` string, uuid, required
  - `expires_at` string, required
  - `token_id` string, required

## Other responses

- `400`: Invalid TTL
- `404`: Asset or active license not found
- `409`: License not active, expired, no master rendition, or token already issued
- `429`: Per-license or per-tenant download budget exceeded

---

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