Animate a starting image into a video. Add an optional ending image, describe the motion in a prompt, and retrieve the completed video using the returned generation ID.
Developer API pricing
Provider: SeeAPI
USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.
360p / 720p / 1080p: 156 credits/gen (≈ $0.58/gen, 4s) | 208 credits/gen (≈ $0.78/gen, 6s) | 260 credits/gen (≈ $0.97/gen, 8s) | 311 credits/gen (≈ $1.17/gen, 10s)
4k: 363 credits/gen (≈ $1.36/gen, 4s) | 414 credits/gen (≈ $1.55/gen, 6s) | 467 credits/gen (≈ $1.75/gen, 8s) | 519 credits/gen (≈ $1.94/gen, 10s)
Manage the secret used to verify generation webhook signatures. Callback URLs are supplied when you create each generation.
Callback URL per generation.
/v1/generationsA new, stable key for each generation request. Reuse it only when retrying the same request body.
order-20260818-001The model ID shown in the selected model's API documentation.
gemini-omni-flash-1-1gemini-omni-flash-1-1gemini-omni-flash-1-1Image to Video. Use the Endpoint ID shown in this model's API documentation.
image-to-videoimage-to-videoimage-to-videoOptional public Provider ID. Omit it to use the Endpoint default Provider (seeapi).
seeapiseeapiseeapiParameters for this Image to Video request. Supply only fields listed for the selected provider.
Provider parameters
seeapiDefault ProviderPublic HTTPS URL of the image used as the starting frame.
https://client.example.com/boat-start.pngOptional public HTTPS URL of the ending frame. A first frame is required when this field is supplied.
Describe the scene, actions, camera movement, and visual style of the video.
The paper boat glides forward as ripples spread across the water. A slow tracking shot follows it in warm sunset light.Requested output duration in seconds.
468104Choose landscape or portrait framing for the generated video.
16:99:1616:9Choose the output resolution. The selected resolution affects the generation price.
360p720p1080p4k720pOptional integer seed to reuse when comparing requests with the same inputs.
74An absolute HTTPS URL that receives the terminal generation Webhook.
https://client.example.com/webhooks/seeapiTask ID for this asynchronous generation. Save this value and use it as task_id in GET /v1/generations/{task_id} to retrieve the status and final result.
task_xxxgemini-omni-flash-1-1image-to-videoseeapiseeapi: SeeAPIseeapiprocessingprocessingEstimated public credits. Values can include up to three decimal places.
156Consumed public credits, with up to three decimal places.
0Refunded public credits, with up to three decimal places.
02026-08-18T10:00:00Z2026-08-18T10:00:00ZWhether this response is an idempotent replay of an earlier request.
falseTask ID for this asynchronous generation. Save this value and use it as task_id in GET /v1/generations/{task_id} to retrieve the status and final result.
task_xxxgemini-omni-flash-1-1image-to-videoseeapiseeapi: SeeAPIseeapiprocessingprocessingEstimated public credits. Values can include up to three decimal places.
156Consumed public credits, with up to three decimal places.
0Refunded public credits, with up to three decimal places.
02026-08-18T10:00:00Z2026-08-18T10:00:00ZWhether this response is an idempotent replay of an earlier request.
falseInvalid JSON, parameters, Schema, or API Policy
Invalid API Key or authentication failed
Insufficient credits
The current request is not allowed
Model, Endpoint, or task not found
Idempotency conflict or the same request is still being created
Request body is too large
Too many requests
Service temporarily unavailable
const response = await fetch("https://api.seeapi.com/v1/generations", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Idempotency-Key": "order-20260818-001",
"Content-Type": "application/json"
},
body: JSON.stringify({
"model": "gemini-omni-flash-1-1",
"endpoint": "image-to-video",
"provider": "seeapi",
"input": {
"first_frame_image": "https://client.example.com/boat-start.png",
"prompt": "The paper boat glides forward as ripples spread across the water. A slow tracking shot follows it in warm sunset light.",
"duration_seconds": 4,
"aspect_ratio": "16:9",
"resolution": "720p",
"seed": 74
},
"callback_url": "https://client.example.com/webhooks/seeapi"
})
});
const result = await response.json();{
"generation": {
"id": "task_xxx",
"model": "gemini-omni-flash-1-1",
"endpoint": "image-to-video",
"provider": "seeapi",
"status": "processing",
"estimated_credits": 156,
"consumed_credits": 0,
"refunded_credits": 0,
"created_at": "2026-08-18T10:00:00Z",
"updated_at": "2026-08-18T10:00:00Z"
},
"idempotent": false
}