
PicassoIA Video
Turns a prompt or a starting image into a video with its audio track: up to 20 seconds at 480p, 10 at 720p and 5 at 1080p. The prompt can be enhanced automatically for a better video.
curl -s -X POST https://api.picassoia.com/v1/models/picassoia/picassoia-video/predictions \ -H "Authorization: Bearer $PICASSOIA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"input":{"prompt":"waves crashing on a rocky shore at night, cinematic"}}'How to call it
One run takes three requests: create the prediction, poll it until it finishes and read the result. The code and the answers below are for this model and the mode you chose.
Before you start
Create an API key and keep it on your server in the PICASSOIA_API_KEY environment variable. Every request sends it in the Authorization header.
Create the prediction
Send the input in a POST. The API answers
201at once, without waiting for the result: the prediction is in thestartingstate, with an estimate inetaand the address to poll inurls.get.Requestcurl -s -X POST https://api.picassoia.com/v1/models/picassoia/picassoia-video/predictions \ -H "Authorization: Bearer $PICASSOIA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"input":{"prompt":"waves crashing on a rocky shore at night, cinematic"}}'Response · 201 Createdstarting{ "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60", "model": "picassoia/picassoia-video", "input": { "prompt": "waves crashing on a rocky shore at night, cinematic", "resolution": "480p", "duration": 5, "aspect_ratio": "16:9", "save_audio": true, "enhance_prompt": true }, "output": null, "error": null, "status": "starting", "created_at": "2026-10-01T09:30:00.000Z", "started_at": null, "completed_at": null, "metrics": { "predict_time": null }, "urls": { "get": "https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60", "cancel": "https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60/cancel" }, "eta": { "seconds": 60, "next_poll_in_seconds": 30 } }Poll it until it finishes
Ask
urls.getagain aftereta.next_poll_in_seconds: at half the estimate, when the estimate is reached, then every 2 seconds. Polling faster gets you nothing sooner.Statuses:
startingprocessingsucceeded·failed·canceledRequest# Repeat after eta.next_poll_in_seconds until status is # succeeded, failed or canceled. curl -s https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60 \ -H "Authorization: Bearer $PICASSOIA_API_KEY"Response · 200 OK · in progressprocessing{ "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60", "status": "processing", "output": null, "eta": { "seconds": 30, "next_poll_in_seconds": 30 } }Only the fields that change are shown; the rest are as in step 1.
Read the result
When
statusissucceeded,outputis the URL of the MP4. Download the files you want to keep.If
statusisfailed,errorsays why;canceledmeans it was canceled before it finished. These three statuses are final: the prediction never changes again.Request# The last poll holds the result: "output" when "status" is succeeded, # "error" when it is failed. With jq, just those three fields: curl -s https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60 \ -H "Authorization: Bearer $PICASSOIA_API_KEY" | jq '.status, .output, .error'Response · 200 OK · finishedsucceeded{ "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60", "status": "succeeded", "output": "https://…/output.mp4", "error": null, "completed_at": "2026-10-01T09:30:54.000Z", "metrics": { "predict_time": 52.8 }, "eta": null }Only the fields that change are shown; the rest are as in step 1.
The ids, times and URLs in these answers are examples: yours come in each answer.
This model in the API
Create a prediction with a POST, then poll it until it finishes. These are the model's inputs:
Endpoint
POST https://api.picassoia.com/v1/models/picassoia/picassoia-video/predictionspicassoia/picassoia-video
Output: one MP4 URL (a string).
Compare with other providers
See how our prices compare with what other providers charge for the model of the same name.
| Model | Picasso IA | Other providers |
|---|---|---|
| PicassoIA Video · Text to Video · Image to Video | Unlimited$0 per request | from $0.06/s |
Comparison based on other providers' public prices as of October 1, 2026. On Picasso IA, API predictions are free with the Infinite plan, with up to 5 in progress at once.