Get Generation Download URL

Obtain the available full output of a completed generation in your organization. Authenticate with `x-api-key`; no Studio project or user session is required. Any valid API key belonging to the generation's organization can request the URL. The successful response is an **unquoted URL in a text/plain body**, not JSON, a redirect, or the video itself. Fetch that URL separately without forwarding your API key. ```bash download_url=$(curl --fail-with-body --silent --show-error \ -H "x-api-key: $SYNC_API_KEY" \ "https://api.sync.so/v2/generations/$GENERATION_ID/download") && curl --fail --location "$download_url" --output output.mov ``` The URL resolves an existing output using your organization's current plan and billing-version eligibility. Free and watermark-required plans receive the watermarked derivative when present. Entitled plans (such as v2 Creator and v3 Starter or higher) receive the clean output when available. Historical outputs can have the watermark burned in, so an upgrade does not guarantee every old output becomes watermark-free. Outputs created without a watermark can remain clean after a downgrade. If no watermarked derivative exists, the resolver retains its existing fallback to the original output; changing plans does not rewrite files. This endpoint does not generate a new render or remove burned-in watermarks. Signed S3 URLs request seven-day validity, but credential expiry, revocation, access changes, or file deletion can make them unusable sooner. Request this endpoint again for a fresh signed URL while the output is still available. The selected S3 file is checked before signing; a successful response does not guarantee future availability. Older URL-only records return their stored URL unchanged, without checking its availability or extending its original expiration. These URLs are download credentials: keep them private. Errors use the standard JSON error body and stable `errorCode`: | Status | Code | Meaning / next step | | --- | --- | --- | | 400 | — | Invalid generation UUID. | | 401 | — | API key missing, invalid, or revoked. | | 404 | `generation_not_found` | Missing, deleted, or outside your organization. | | 404 | `generation_output_unavailable` | No eligible output reference or the selected file is missing; contact support. | | 409 | `generation_not_ready` | Pending or processing; poll Get Generation until COMPLETED. | | 422 | `generation_not_downloadable` | Failed or rejected; inspect the generation error. | | 503 | `generation_download_unavailable` | Storage lookup or signing failed; retry with backoff. | Authentication also returns 422 for draft organizations. Requesting a download URL does not create a project, incur a generation charge, or restore deleted files.

Authentication

x-api-keystring
API Key authentication via header

Path parameters

idstringRequired
A unique identifier for the generation.

Headers

x-sync-acceleratestringOptional

Send true to request transfer acceleration; falls back to the standard endpoint when acceleration is disabled.

Query parameters

fileNamestringOptional

Optional download filename. Its extension is replaced with the output’s format. Ignored for URL-only outputs.

Response

Unquoted download URL. Read as text and fetch separately.

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
503
Service Unavailable Error