Create Video
Start a video generation. Returns a task to poll.
Video is asynchronous: this call returns immediately with a task id, and you poll GET /v1/videos/tasks/{id} until it succeeds or fails.
Image-to-video models need an image_url your account generated. Failed generations are refunded automatically.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your SpicyAPI key (sk-spicy-…). Create one in the dashboard under API Keys.
Body
application/jsonA video model id, e.g. spicy-pov-missionary-1.
What should happen in the clip.
First frame. Required for image-to-video models; must be one of your generated images.
720P or 1080P. Defaults to 720P.
Seconds, within the model's limits. Defaults to 5.
What to avoid.
Generate audio where the model supports it.
Reproducibility seed.
Response
200 — application/jsonSuccessful Response
A task you can poll.
Task id — pass to GET /v1/videos/tasks/{id}.
Always task.
Always video.
The model generating the clip.
queued, processing, finalizing, succeeded, or failed.
Null until the task succeeds.
Why the task failed, when it did.
What this request cost, in US dollars, already debited from your balance.
Was this page helpful?
curl --request POST \
--url https://api.spicyapi.com/v1/videos/generations \
--header 'Authorization: Bearer $SPICYAPI_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "spicy-pov-missionary-1",
"prompt": "slow build, steady rhythm",
"image_url": "https://cdn.spicyapi.com/outputs/a1b2/req_8f2a91c4-0.png",
"resolution": "720P",
"duration": 5
}'{
"id": "task_5d9e2f10",
"object": "task",
"type": "video",
"model": "spicy-pov-missionary-1",
"status": "queued",
"output": null,
"error": null,
"cost_usd": 0.875
}