One continuous locked-off shot that moves naturally from the first frame to the second. The copper observatory dome shutters separate slowly and evenly, revealing the dark telescope aperture and a narrow warm interior glow as dawn brightens slightly. Preserve the stone building, dome geometry, mountain silhouette, frost, camera position and composition. Motion should be mechanical, restrained and physically believable. No new objects, no people, no text, no logos, no brands, no products, no advertising, no watermark.
Veo 3.1 Image-to-Video API
veo3.1/image-to-videoGenerate an 8-second transition from exactly two ordered images. The first image defines the opening frame and the second defines the ending frame.
Input
Drag and drop files, paste from clipboard, or provide a URL.
Drag and drop files, paste from clipboard, or provide a URL.
Fixed by this endpoint
Output
IdleGenerated video appears here
Configure the input and run the task. Progress and the finished video will stay in this panel.
Examples
Quick Start
Authenticate, submit the exact model contract, then poll the returned task ID. The complete field reference remains in the API documentation.
Authenticate
Send your Vidgo API key as a Bearer token. Keep the key on the server and never expose it in browser code.
- Endpoint
- POST https://api.vidgo.ai/api/generate/submit
- Authentication
- Authorization: Bearer VIDGO_API_KEY
Submit the generation task
Use the exact model ID veo3.1/image-to-video. The submit endpoint returns an asynchronous task ID.
curl --request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "veo3.1/image-to-video",
"input": {
"prompt": "A single continuous shot of a paper boat drifting through a rain-lit city canal at dusk.",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"image_urls": [
"https://example.com/start-frame.jpg",
"https://example.com/end-frame.jpg"
]
}
}'{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "not_started"
}
}Poll for the result
Request task status with task_id until the task reaches finished or failed.
GET https://api.vidgo.ai/api/generate/status/{task_id}not_started → running → finished | failed
Related Models
Frequently Asked Questions
Which model ID does Veo 3.1 Image-to-Video use?
Use veo3.1/image-to-video. The Playground keeps this value locked so requests cannot drift into another Veo workflow.
Which duration is supported?
The current Vidgo endpoint accepts a fixed integer duration of 8 seconds.
Which resolutions and aspect ratios are available?
Use 720p, 1080p, or 4k resolution with 16:9 or 9:16 aspect ratio.
How many images must I submit?
Submit exactly two public HTTP(S) image URLs. Their order is start frame first, end frame second.
How do I receive the finished video?
The submit call returns task_id. Poll the status endpoint and read the result when status becomes finished; stop on failed.















