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

Templates

  • Alors on Danse API
  • Crazy Frog AI API
  • Enzo Fernandez Celebration API
  • Hotel Lobby AI API
  • Neon Duo Dance API
  • Rap Video API
  • Rumpelstiltskin AI Dance API

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.

Explore
  • AI Model Collections
  • AI Tool Alternatives
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

Text to VideoImage to VideoReference to Video

Wan 3.0 · Reference to Video

Generate a video guided by images, videos, audio, a document or a webpage. Learn how to combine references, respect duration limits and estimate input-plus-output video charges.

Developer API pricing

Provider: SeeAPI

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

480p: 12 credits/sec (≈ $0.045/sec)

720p: 24 credits/sec (≈ $0.09/sec)

1080p: 47 credits/sec (≈ $0.18/sec)

Note: Billable video duration = total input reference video duration + output video duration. Without an input video, only the output duration is billed.

Request

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

Header Params

stringrequired

A unique key for one logical generation request. Reuse the same key and unchanged request body when retrying after a network interruption.

  • Use a new key when changing the prompt or any generation setting.
max length: 255
Example:
order-20260818-001

Body Params

application/json
stringrequired

Select Wan 3.0 standard video generation.

Allowed:wan-3-0
Default:
wan-3-0
Example:
wan-3-0
stringrequired

Select reference-to-video to guide creation with reference assets rather than first/last frames.

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

Optional public provider selection. Omit this field to use the default provider, or send seeapi.

Allowed:seeapi
Default:
seeapi
Example:
seeapi
objectrequired

Provide a prompt and at least one non-empty reference array: images, videos, audio, a document or a webpage.

  • Do not send first_frame_image or last_frame_image to this endpoint; use image-to-video for frame-guided generation.
  • All reference URL fields are arrays, even when they contain only one URL. Omit unused reference fields.
  • Document and webpage references are mutually exclusive.

Provider parameters

SeeAPIseeapiDefault Provider
array <uri>optional

Image URLs providing appearance, character, object or style references. Their array order determines their reference numbering.

  • Up to 10 images.
  • Each must be JPEG, PNG, WebP or BMP and at most 20 MB;
  • Width and height each 240–8000 pixels; aspect ratio between 1:8 and 8:1.
  • Use direct downloadable URLs and keep them accessible until processing finishes.
max items: 10
Example:
["https://client.example.com/reference_images.png"]
array <uri>optional

Video URLs providing motion, scene or editing references. All input video durations count toward the request limit and billing.

  • Up to 5 MP4 or MOV videos, each at most 100 MB and 1–15 seconds. Their combined duration must not exceed 15 seconds.
  • Width and height each 240–4096 pixels; aspect ratio between 1:8 and 8:1.
  • Combined input video duration plus duration_seconds must not exceed 30 seconds. Trim clips before submitting if necessary.
max items: 5
Example:
["https://client.example.com/reference_video.mp4"]
array <uri>optional

Audio URLs used as creative sound references. Input audio is distinct from the generate_audio output switch.

  • Up to 5 MP3 or WAV files, each at most 15 MB and 1–15 seconds; combined audio duration must not exceed 15 seconds.
  • Audio duration is checked separately from video duration and is not added to the billable input video seconds.
max items: 5
Example:
["https://client.example.com/reference_audio.mp3"]
array <uri>optional

A document URL supplying written or structured source material for the video. Send a one-element URL array, not a bare string or document contents.

  • Supported extensions: docx, doc, xlsx, xls, pptx, ppt, pdf, txt, key, pages, numbers and md. Maximum one document, up to 100 MB; paginated documents are limited to 50 pages.
  • reference_file_urls and reference_link_urls cannot be used together. Images, videos, and audio may still be included within their respective limits.
  • Use a direct downloadable file URL that does not require login; local paths and browser blob URLs are not usable API references.
max items: 1
Example:
["https://client.example.com/product-brief.pdf"]
array <uri>optional

A publicly accessible webpage URL used as source material. Send a one-element URL array.

  • Choose either a webpage or a document, never both.
  • The webpage must be accessible without login. Replace placeholder URLs with a page you control or are authorized to use.
  • For a document file URL, use reference_file_urls instead.
max items: 1
Example:
["https://www.seeapi.com/"]
stringrequired

Explain how each reference should influence the output: appearance, motion, scene, audio or facts from the document/page.

  • Use @image1, @video1 and @audio1 to identify the corresponding references by their order within each array.
  • Keep the instructions specific about what to preserve and what to change; do not rely on uploading assets alone to describe the intended result.
max length: 20000
Example:
Turn the product brief into a concise product introduction. Show the key features clearly, use a clean visual style and add gentle background music.
stringoptional

Output resolution determines the per-second API credit rate.

  • With reference videos, billable seconds = combined input video duration + output duration. Without videos, only output duration is billed.
Allowed:480p720p1080p
Default:
720p
stringoptional

Output frame shape. Use an explicit ratio for a fixed delivery format, or adaptive for automatic selection.

Allowed:adaptive16:94:31:13:49:16
Default:
adaptive
numberoptional

Requested output duration in whole seconds. The available output length also depends on the total input video duration.

  • Use an integer from 2 to 30.
  • Output duration must be no greater than 30 minus the combined input video duration. For 15 seconds of input video, output can be at most 15 seconds.
  • Images, audio, documents and webpages do not consume the input-video portion of this 30-second limit.
min: 2max: 30
Default:
5
booleanoptional

Whether to generate audio along with the video.

  • Set false when generated audio is not wanted. Reference audio remains a separate creative input.
  • This switch does not change the configured per-second credit rate.
Default:
true
numberoptional

Optional random seed for controlled comparisons between requests.

  • Keep the same seed and other settings when comparing prompts; a seed does not guarantee identical output.
min: 0max: 2147483647
string <uri>optional

Optional HTTPS endpoint for the terminal generation notification.

  • Verify webhook signatures before trusting notifications. Poll the task if you do not supply a callback URL.
max length: 2048
Example:
https://client.example.com/webhooks/seeapi

Responses

202The generation has been accepted and is processing asynchronously. Save its ID and use the task query endpoint to obtain the final result.
Bodyapplication/json
objectrequired
stringrequired

Generation identifier used for subsequent task queries and support requests.

Example:
task_xxx
stringrequired
Example:
wan-3-0
stringrequired
Example:
reference-to-video
stringrequired
Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current state at acceptance. A processing response is not a completed video.

Allowed:processing
Example:
processing
numberrequired

Estimated public API credits. With video references, the estimate includes input video seconds as well as output seconds.

Example:
120
numberrequired

Credits recorded as consumed; read the latest task state for final accounting.

Example:
0
numberrequired

Credits recorded as refunded. Do not infer a refund solely from a client-side timeout.

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

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

Example:
false
200A replay of an existing generation request using the same idempotency key.
Bodyapplication/json
  • Inspect the returned generation instead of creating another request with a new key.
objectrequired
stringrequired

Generation identifier used for subsequent task queries and support requests.

Example:
task_xxx
stringrequired
Example:
wan-3-0
stringrequired
Example:
reference-to-video
stringrequired
Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current state at acceptance. A processing response is not a completed video.

Allowed:processing
Example:
processing
numberrequired

Estimated public API credits. With video references, the estimate includes input video seconds as well as output seconds.

Example:
120
numberrequired

Credits recorded as consumed; read the latest task state for final accounting.

Example:
0
numberrequired

Credits recorded as refunded. Do not infer a refund solely from a client-side timeout.

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

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

Example:
false
400

Check that at least one reference is present, URL fields are arrays, document/page inputs are not combined, and individual plus total duration limits are satisfied.

401

Supply a valid Bearer API key in the Authorization header.

402

The account does not have sufficient credits for the request.

403

Check that the API key and account have access to this model and endpoint.

404

Check the model, endpoint or task identifier.

409

The idempotency key conflicts with another request, or creation is still in progress. Retry only with the same intended body.

413

Reduce the JSON request size. Pass remote URLs rather than embedding document or media contents.

429

Back off before retrying; retain the original idempotency key for the same request.

503

The service is temporarily unavailable. Retry with backoff and the same idempotency key.

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

Keep the returned generation.id and query the task until it reaches a terminal state. Acceptance is not completion; do not submit a new generation simply because the video is still processing.

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": "order-20260818-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "wan-3-0",
  "endpoint": "reference-to-video",
  "provider": "seeapi",
  "input": {
    "reference_images": [
      "https://client.example.com/reference_images.png"
    ],
    "reference_video_urls": [
      "https://client.example.com/reference_video.mp4"
    ],
    "reference_audio_urls": [
      "https://client.example.com/reference_audio.mp3"
    ],
    "reference_file_urls": [
      "https://client.example.com/product-brief.pdf"
    ],
    "reference_link_urls": [
      "https://www.seeapi.com/"
    ],
    "prompt": "Turn the product brief into a concise product introduction. Show the key features clearly, use a clean visual style and add gentle background music.",
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "duration_seconds": 5,
    "generate_audio": true
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_xxx",
    "model": "wan-3-0",
    "endpoint": "reference-to-video",
    "provider": "seeapi",
    "status": "processing",
    "estimated_credits": 120,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  },
  "idempotent": false
}
PreviousWan 3.0 · Image to VideoNextWan 2.7 · Text to Video
Request
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": "wan-3-0",
  "endpoint": "reference-to-video",
  "provider": "seeapi",
  "input": {
    "reference_images": [
      "https://client.example.com/reference_images.png"
    ],
    "reference_video_urls": [
      "https://client.example.com/reference_video.mp4"
    ],
    "reference_audio_urls": [
      "https://client.example.com/reference_audio.mp3"
    ],
    "reference_file_urls": [
      "https://client.example.com/product-brief.pdf"
    ],
    "reference_link_urls": [
      "https://www.seeapi.com/"
    ],
    "prompt": "Turn the product brief into a concise product introduction. Show the key features clearly, use a clean visual style and add gentle background music.",
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "duration_seconds": 5,
    "generate_audio": true
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

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