GET /v1/videos/{id}
API Reference
GET /v1/videos/{id}
Poll a video job status
GET
GET /v1/videos/{id}
Path params
The
id you received when creating the job (UUID format).Response
While still processing:completed):
How often to poll
Each provider has different latency. Practical recommendation:| Model | Poll every | Typical total time |
|---|---|---|
| Kling 2 | 15s | 2-5 min |
| Hailuo 02 | 15s | 2-4 min |
| Runway Gen-4 | 10s | 30s-2 min |
| Luma Ray 2 | 10s | 1-3 min |
| Veo 3.1 (with audio) | 30s | 3-5 min |
| Veo 3 | 20s | 2-4 min |
status: "processing" repeated — that’s not an error.
TS pattern
Storage
When it finishes, we download the video from the provider and upload it to your Supabase Storage. Thevideo_url is ours, doesn’t expire, and is publicly accessible with a UUID URL (same model as images).
If the upload to Storage fails for some reason, transparent fallback: we return the provider’s URL directly (that one does expire in ~1h-24h depending on the provider).