Video generation is asynchronous by nature: you submit a job, the model renders, and you collect the result when it is ready. Apifuse exposes this through a single OpenAI-style endpoint so the flow is the same for Sora 2, Veo 3.1 and Kling V3.

Submit a job

POST your prompt and parameters to /v1/videos. The response returns immediately with a job id while the render runs in the background.

curl https://api.apifuse.net/v1/videos \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "model": "sora-2", "prompt": "A timelapse of a city at dusk", "duration": 5 }'

Poll for completion

Poll the job id until status is succeeded, then download the rendered clip. Back off between polls — a few seconds is plenty for short clips.

curl https://api.apifuse.net/v1/videos/<id> \
  -H "Authorization: Bearer <token>"

Controlling cost

You only pay for successful renders, so failed or cancelled jobs cost nothing. Start at lower resolution and shorter duration while iterating on a prompt, then scale up once the shot is right.