Generate a video
Video
Generate a video
Submit a deterministic video-generation job. Returns immediately with a generation id and a status URL to poll; the video is produced asynchronously. model and prompt are required; everything in parameters is forwarded verbatim to the provider. Poll the returned status_url (GET /v3/artifacts//status) for a presigned download URL when complete.
POST
Generate a video
Video generation is asynchronous. This call validates the request, starts the
job, and returns
202 Accepted with an id and a status_url — it does not
block until the video is ready.
The flow is:
POST /v3/videoswithmodel+prompt→202 { id, status_url }- Poll
GET {status_url}(i.e.GET /v3/artifacts/{id}/status) untilstatusiscompletedorfailed - On
completed, download the video from the presignedurl(valid for one hour)
Parameters
model and prompt are the only fields Opper owns. Everything in parameters
is forwarded verbatim to the provider, which validates and rejects it — so the
accepted keys depend on the model (e.g. Sora takes seconds/size; Veo takes
durationSeconds/resolution/generateAudio). Use
GET /v3/videos/models to see each
model’s supported aspect_ratios, resolutions, and max_duration.
For image-to-video and video-to-video, pass a top-level image or video (an
http(s) URL or data-URI) with a model whose capabilities include
image_to_video or video_editing. Accepted source formats differ per provider:
Sora takes a URL or base64 (image dims must equal size); Veo takes
base64/data-URI or gs:// (not an http URL); Pruna and xAI require a public,
server-fetchable URL. See the Video quickstart.