---
title: "Create a short-lived task output download URL"
method: POST
path: "/api/v1/common/download-url"
tags: ["Media"]
---

# Create a short-lived task output download URL

`POST /api/v1/common/download-url`

## Request

- Base URL: `https://api.popnow.ai`
- URL: `https://api.popnow.ai/api/v1/common/download-url`
- Auth: HTTP bearer

The server verifies both task ownership and that the requested key is an
output of that task. Leave `key` empty to select the first output.

## Request body

- DownloadURLRequest
  - `taskId` string, required
  - `key` string: Optional output key; empty selects the first output.

## Response `200`

Short-lived download ticket.

- DownloadURLEnvelope
  - `code` 200, required
  - `msg` 'success', required
  - `request_id` string, required: Correlation identifier. Include it in support requests.
  - `data` DownloadURLResponse, required
    - `key` string, required
    - `url` string, uri, required
    - `expiresAt` string, date-time, required

## Other responses

- `400`: Invalid JSON, query, callback URL, model input, or media declaration. Invalid callBackUrl values return code 400 and msg "Invalid callback URL" with request_id. Submitted hosts, IP addresses, and DNS diagnostics are not echoed.
- `401`: Missing, malformed, expired, revoked, or otherwise invalid API key.
- `403`: Account, model, API-key, IP, or region authorization failed.
- `404`: Resource does not exist or is not visible to this account and API key. These cases are intentionally indistinguishable.
- `409`: Idempotency or media-transfer state conflicts with this request.
- `413`: Request body exceeds the server's accepted size limit.
- `429`: Account-level request limit exceeded.
- `500`: Internal failure. Details are not exposed; report `request_id` to support.

## Changes

- **2026-10-20** `fede911a6e9b`: 96 warning
  - added the new `agent_project_budget` enum value to the `allOf[subschema #2]/data/reason` response property for the response status `400`
  - added the new `agent_project_budget` enum value to the `allOf[subschema #2]/data/reason` response property for the response status `401`
  - added the new `agent_project_budget` enum value to the `allOf[subschema #2]/data/reason` response property for the response status `403`
  - added the new `agent_project_budget` enum value to the `allOf[subschema #2]/data/reason` response property for the response status `404`
  - …92 more

[Operation history](https://skmtc.dev/popnow/apis/popnow-api/changes/api/v1/common/download-url/post.md)

---

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