Skip to main content
POST
/
videos
/
{video_id}
/
download_url
Create a signed video download URL
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({index: 1, ttl_seconds: 2})
};

fetch('https://api.phaseo.app/v1/videos/{video_id}/download_url', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "download_url": "<string>",
  "expires_at": 123
}
Optional request fields let you choose:
The public video routes are currently mounted but temporarily disabled, so this route currently returns 501 not_implemented.
  • ttl_seconds for link lifetime
  • disposition as attachment or inline
  • index when a generation has multiple outputs
The response returns:
  • download_url
  • expires_at

Authorizations

Authorization
string
header
required

Bearer token authentication

Path Parameters

video_id
string
required

The ID of the video generation request.

Body

application/json
index
integer
Required range: x >= 0
ttl_seconds
integer
Required range: x >= 1
disposition
enum<string>
Available options:
attachment,
inline

Response

200 - application/json

Signed download URL

download_url
string
expires_at
integer
Last modified on May 19, 2026