Skip to main content

Videos

Use Videos for async video generation and media job management. Create a job, poll its status, then download content when the provider returns downloadable video bytes.

GET /v1/videos
POST /v1/videos
POST /v1/videos/generations
POST /v1/videos/edits
POST /v1/videos/extensions
GET /v1/videos/{video_id}
DELETE /v1/videos/{video_id}
GET /v1/videos/{video_id}/content

Create a video

curl https://api.voxvey.com/v1/videos \
-H "Authorization: Bearer $VOXVEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/sora-2",
"prompt": "A concise product demo shot of a developer dashboard",
"size": "1280x720",
"seconds": 4
}'

Example response shape:

{
"id": "video_...",
"object": "video",
"status": "queued",
"model": "sora-2"
}

Poll a job

curl https://api.voxvey.com/v1/videos/video_... \
-H "Authorization: Bearer $VOXVEY_TOKEN"

Example response shape:

{
"id": "video_...",
"object": "video",
"status": "completed",
"output": [
{
"type": "video",
"url": "https://..."
}
]
}

Download content

curl https://api.voxvey.com/v1/videos/video_.../content \
-H "Authorization: Bearer $VOXVEY_TOKEN" \
-o output.mp4

OpenAI Sora video IDs use /content for byte downloads. Other providers may return output URLs in the polling response instead.

Other video operations

OperationRoute
List videosGET /v1/videos
Generate videoPOST /v1/videos/generations
Edit videoPOST /v1/videos/edits
Extend videoPOST /v1/videos/extensions
Delete or cancelDELETE /v1/videos/{video_id}

Use /v1/models to discover the currently available video model IDs.