Veo 2 (Image-to-Video)
An advanced multimodal (image + text) AI model that transforms static images into high-quality, dynamic video content. It builds upon the success of Google's Veo2 text-to-video model, offering unprecedented control and realism in video generation from still images, faithful content preservation from source images, and intuitive motion generation with physics-aware movement.
How to Make a Call
API Schemas
Now, all of our API schemas for video models use our new universal short URL — https://api.aimlapi.com/v2/video/generations.
However, you can still call this model using the legacy URL that includes the vendor name.
Create a video generation task and send it to the server
You can generate a video using this API.
The text description of the scene, subject, or action to generate in the video.
A direct link to an online image or a Base64-encoded local image that will serve as the visual base or the first frame for the video.
A direct link to an online image or a Base64-encoded local image to be used as the last frame of the video.
The length of the output video in seconds.
5Possible values: The aspect ratio of the generated video.
The description of elements to avoid in the generated video.
Varying the seed integer is a way to get different results for the same other request parameters. Using the same value for an identical request will produce similar results. If unspecified, a random number is chosen.
Whether to enhance the video generation.
trueThe ID of the generated video.
60ac7c34-3224-4b14-8e7d-0aa0db708325The current status of the generation task.
completedPossible values: curl -L \
--request POST \
--url 'https://api.aimlapi.com/v2/video/generations' \
--header 'Authorization: Bearer <YOUR_AIMLAPI_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "veo2/image-to-video",
"prompt": "Mona Lisa puts on glasses with her hands.",
"image_url": "https://raw.githubusercontent.com/aimlapi/api-docs/main/reference-files/mona_lisa_extended.jpg"
}'{
"id": "60ac7c34-3224-4b14-8e7d-0aa0db708325",
"status": "completed",
"video": {
"url": "https://cdn.aimlapi.com/generations/hedgehog/1759866285599-0cdfb138-c03a-49d4-a601-4f6413e27b15.mp4"
},
"error": {
"name": "text",
"message": "text"
},
"meta": {
"usage": {
"credits_used": 120000
}
}
}Fetch the video
After sending a request for video generation, this task is added to the queue. This endpoint lets you check the status of a video generation task using its id, obtained from the endpoint described above.
If the video generation task status is completed, the response will include the final result — with the generated video URL and additional metadata.
Bearer key
<REPLACE_WITH_YOUR_GENERATION_ID>The ID of the generated video.
60ac7c34-3224-4b14-8e7d-0aa0db708325The current status of the generation task.
completedPossible values: curl -L \
--request GET \
--url 'https://api.aimlapi.com/v2/video/generations?generation_id=<REPLACE_WITH_YOUR_GENERATION_ID>' \
--header 'Authorization: Bearer <YOUR_AIMLAPI_KEY>'{
"id": "60ac7c34-3224-4b14-8e7d-0aa0db708325",
"status": "completed",
"video": {
"url": "https://cdn.aimlapi.com/generations/hedgehog/1759866285599-0cdfb138-c03a-49d4-a601-4f6413e27b15.mp4"
},
"error": {
"name": "text",
"message": "text"
},
"meta": {
"usage": {
"credits_used": 120000
}
}
}Full Example: Generating and Retrieving the Video From the Server
We have a classic reproduction of the famous da Vinci painting. Let's ask the model to generate a video where the Mona Lisa puts on glasses.
Original: 1280x720
Low-res GIF preview:

Last updated
Was this helpful?