SEEAPISEEAPI
Developer CenterDocs
Get API Key
  • Getting Started
  • Authentication
  • List Model Prices
  • Create a Generation
  • Get Task Details
Image Models
Alibaba
Black Forest Labs
ByteDance
Google
Grok
OpenAI
SeeAPI
Video Models
Alibaba
ByteDance
Google
Grok
Kling
Lightricks
MiniMax
PixVerse
Runway
SeeAPI
Vidu
Music Models
Text Models

Policies

  • Data Handling & Privacy
  • Terms of Service
  • Privacy Policy
  • Commercial Use Policy
www.seeapi.com

One AI API for every leading model. Create images, videos, music, and multimodal AI assets online, or build with one unified API.

Developers
  • AI Models
  • API Pricing
  • AI Integrations
  • API Keys
  • Documentation
Support
  • Pricing
  • [email protected]
Legal
  • Privacy Policy
  • Refund Policy
  • Terms & Conditions

Copyright 2026 © SeeAPI. All rights reserved.

GROWCRAFT PTE. LTD.

·5 RAFFLES PLACE, #06-00, RAFFLES PLACE MRT STATION, SINGAPORE 048618

Image to VideoReference to Video

Vidu Q4 · Image to Video

Generate a video from one image with Vidu Q4. Add an optional motion prompt, then retrieve the completed video through task status queries or a webhook.

Developer API pricing

Provider: SeeAPI

USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.

540p: 9 credits/sec (≈ $0.034/sec)

720p: 18 credits/sec (≈ $0.067/sec)

1080p: 22 credits/sec (≈ $0.082/sec)

2k: 36 credits/sec (≈ $0.13/sec)

4k: 72 credits/sec (≈ $0.27/sec)

Request

POST/v1/generations
AuthorizationSend your API key in the Authorization header using the Bearer scheme.Authorization: Bearer ****************

Header Params

stringrequired

Use a unique key for a new generation. Reuse the same key and identical request body only when retrying that request.

max length: 255
Example:
vidu-q4-image-001

Body Params

application/json
stringrequired

Use vidu-q4 to select Vidu Q4.

Allowed:vidu-q4
Default:
vidu-q4
Example:
vidu-q4
stringrequired

Use image-to-video to animate a single image.

Allowed:image-to-video
Default:
image-to-video
Example:
image-to-video
stringoptional

Optional public Provider ID. Omit it to use the default Provider, seeapi.

Allowed:seeapi
Default:
seeapi
Example:
seeapi
objectrequired

Object containing the image and generation settings described below.

  • Each request creates one video. Batch generation is not supported for this Endpoint.

Provider parameters

SeeAPIseeapiDefault Provider
array <uri>required

An array containing one image URL. The image establishes the starting visual content. Accepted formats: JPEG, PNG, WebP; maximum 50 MB per file.

  • Provide exactly one input image.
min: 1max: 1min items: 1max items: 1
Example:
["https://client.example.com/input.png"]
stringoptional

Optional description of subject motion, camera movement, and the desired scene. Leave it out to generate from the image alone.

max length: 20000
Example:
A slow camera push-in as the subject turns toward the light, with natural ambient sound.
numberoptional

Requested output duration in seconds. Use a whole number; duration affects the generation's credit estimate.

min: 3max: 16
Default:
5
stringoptional

Output video resolution. Resolution affects the generation's credit estimate.

Allowed:540p720p1080p2k4k
Default:
720p
booleanoptional

Whether to generate audio with the video. Set false to turn off generated audio.

Default:
true
string <uri>optional

Optional absolute HTTPS URL for receiving the terminal generation webhook.

max length: 2048
Example:
https://client.example.com/webhooks/seeapi

Responses

202Generation accepted and processing
Bodyapplication/json
objectrequired

The generation record for this request.

stringrequired

Generation ID. Keep this value to query task status and retrieve the result.

Example:
task_xxx
stringrequired

Model used for this generation.

Example:
vidu-q4
stringrequired

Generation capability selected in the request.

Example:
image-to-video
stringrequired

Public Provider selected for this generation.

Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current task status. A processing response means the video is not ready yet.

Allowed:processing
Example:
processing
numberrequired

Estimated public credits. Values can include up to three decimal places.

Example:
90
numberrequired

Consumed public credits, with up to three decimal places.

Example:
0
numberrequired

Refunded public credits, with up to three decimal places.

Example:
0
string <date-time>required

Time when the generation was created.

Example:
2026-08-18T10:00:00Z
string <date-time>required

Time when the generation record was last updated.

Example:
2026-08-18T10:00:00Z
booleanrequired

Whether this response is an idempotent replay of an earlier request.

Example:
false
200Idempotent replay of an existing generation request
Bodyapplication/json
objectrequired

The generation record for this request.

stringrequired

Generation ID. Keep this value to query task status and retrieve the result.

Example:
task_xxx
stringrequired

Model used for this generation.

Example:
vidu-q4
stringrequired

Generation capability selected in the request.

Example:
image-to-video
stringrequired

Public Provider selected for this generation.

Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current task status. A processing response means the video is not ready yet.

Allowed:processing
Example:
processing
numberrequired

Estimated public credits. Values can include up to three decimal places.

Example:
90
numberrequired

Consumed public credits, with up to three decimal places.

Example:
0
numberrequired

Refunded public credits, with up to three decimal places.

Example:
0
string <date-time>required

Time when the generation was created.

Example:
2026-08-18T10:00:00Z
string <date-time>required

Time when the generation record was last updated.

Example:
2026-08-18T10:00:00Z
booleanrequired

Whether this response is an idempotent replay of an earlier request.

Example:
false
400

Invalid JSON, parameters, Schema, or API Policy

401

Invalid API Key or authentication failed

402

Insufficient credits

403

The current request is not allowed

404

Model, Endpoint, or task not found

409

Idempotency conflict or the same request is still being created

413

Request body is too large

429

Too many requests

503

Service temporarily unavailable

Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

Get Task DetailsLearn how to query task status and retrieve generation results

Generation is asynchronous. Keep generation.id, then query task status or receive the terminal webhook before using the video result.

Note

  • Use an image URL that can be accessed without login or custom request headers. Sample URLs in this document are placeholders; replace them with your own accessible assets.
  • After a successful task, retrieve the video from the result asset URLs in Get Task Details. If the task fails, inspect its status and error before submitting another generation; a failed status query alone does not mean generation failed.

Related Resources

Market Overview

Explore all available models

Credits & Billing

View credit balance, plans, and billing activity

Usage

Review API usage and credit consumption

Callbacks

Manage the secret used to verify generation webhook signatures. Callback URLs are supplied when you create each generation.

Webhook flow

Callback URL per generation.

Webhook signing key
Code Examples
Request
const response = await fetch("https://api.seeapi.com/v1/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "vidu-q4-image-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "vidu-q4",
  "endpoint": "image-to-video",
  "provider": "seeapi",
  "input": {
    "input_images": [
      "https://client.example.com/input.png"
    ],
    "prompt": "A slow camera push-in as the subject turns toward the light, with natural ambient sound.",
    "duration_seconds": 5,
    "resolution": "720p",
    "generate_audio": true
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_xxx",
    "model": "vidu-q4",
    "endpoint": "image-to-video",
    "provider": "seeapi",
    "status": "processing",
    "estimated_credits": 90,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  },
  "idempotent": false
}
PreviousVideo NSFW Filter · Video ModerationNextVidu Q4 · Reference to Video
Request
const response = await fetch("https://api.seeapi.com/v1/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "vidu-q4-image-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "vidu-q4",
  "endpoint": "image-to-video",
  "provider": "seeapi",
  "input": {
    "input_images": [
      "https://client.example.com/input.png"
    ],
    "prompt": "A slow camera push-in as the subject turns toward the light, with natural ambient sound.",
    "duration_seconds": 5,
    "resolution": "720p",
    "generate_audio": true
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_xxx",
    "model": "vidu-q4",
    "endpoint": "image-to-video",
    "provider": "seeapi",
    "status": "processing",
    "estimated_credits": 90,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  },
  "idempotent": false
}