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

Neon Duo Dance API

Turn two individual portraits into a dance duet with coordinated choreography and moving camera shots. Each portrait defines one dancer’s appearance; choose the output resolution to suit your app.

Developer API pricing

Provider: SeeAPI

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

480p: 310 credits/gen (≈ $1.16/gen)

720p: 670 credits/gen (≈ $2.51/gen)

1080p: 1,660 credits/gen (≈ $6.22/gen)

4k: 3,430 credits/gen (≈ $12.85/gen)

API examples

These examples were generated through real calls to the SeeAPI API. In each case, the two portraits, request parameters, and output video come from the same successful task. Select a case to compare the inputs and generated result.

Example 3

Two individual portraits used for a 480p dance duet. Task ID: task_8a4c257f67da4d43b76f0e1054b32ba5.

Input

First dancer portraitreference_images
Appearance reference for the first dancer

Opening solo dancer; left in the first two-person shot.

Second dancer portraitreference_images_2
Appearance reference for the second dancer

Right dancer in the first two-person shot.

Output 1

Generated dance duet

Actual video generated from the two portraits shown above.

Request JSON
{
  "provider": "seeapi",
  "input": {
    "resolution": "480p",
    "reference_images": [
      "https://static.seeapi.com/files/2fggdixmz7nk.jpg"
    ],
    "reference_images_2": [
      "https://static.seeapi.com/files/dajom8k61qsc.jpg"
    ]
  }
}

These examples are saved API results. Actual generated results may vary.

Request

POST/v1/templates/neon-duo-dance/generations
AuthorizationSend your API key in the Authorization header using the Bearer scheme.Authorization: Bearer ****************

Header Params

stringrequired

Identifies one generation request.

  • Use a new key for each new generation.
  • Retry the same request with the original key and unchanged request body.
Example:
template-order-001

Body Params

application/json
stringrequired

The public provider identifier.

  • Always send "seeapi".
Allowed:seeapi
Default:
seeapi
Example:
seeapi
objectrequired

The portrait references and output settings for the dance duet.

  • Use only the public input fields listed below.
  • Replace sample URLs with accessible HTTPS links to your own images.
array <url>required

Appearance reference for the first dancer.

  • Supply one portrait URL for the opening solo dancer, who appears on the left in the first two-person shot.
  • Use a clear photo containing one person, with the face, hairstyle, and desired clothing visible.
  • The URL must link directly to an image accessible without login, credentials, or URL fragments.
  • Accepted formats: JPEG, PNG, WebP, BMP, TIFF, and GIF.
  • Each image must be smaller than 30 MB.
  • Width and height must each be 301–5,999 pixels.
  • The width-to-height ratio must be greater than 0.4 and less than 2.5.
min items: 2max items: 2
Example:
["https://customer.example.com/input-1.jpg","https://customer.example.com/input-2.jpg"]
stringoptional

The requested output video resolution.

  • Resolution affects the template price.
  • Use the exact lowercase value "4k" when requesting 4K output.
Allowed:480p720p1080p4k
Default:
720p
Example:
720p
string <uri>optional

The URL that receives terminal generation events.

  • Supply an absolute HTTPS URL to receive generation.succeeded or generation.failed.
  • Verify webhook signatures before trusting event data.
  • If omitted, query the task using generation.id.

Responses

202Generation accepted. Save generation.id and poll GET /v1/generations/{task_id}; HTTP 202 does not mean the video is complete.
Bodyapplication/json
objectrequired
stringrequired

The generation ID to use as task_id when querying status and retrieving the finished video.

Example:
task_example
stringrequired

Public template ID.

Example:
neon-duo-dance
stringrequired
Allowed:seeapi
Example:
seeapi
objectrequired

Normalized customer input only.

Example:
{"reference_images":["https://customer.example.com/input-1.jpg","https://customer.example.com/input-2.jpg"],"resolution":"720p"}
stringrequired
Allowed:processing
numberrequired

Request-specific template estimate in customer credits; obtain an estimate with Quote Template. The example value is illustrative, not this template's price.

Example:
10
numberrequired
Example:
0
numberrequired
Example:
0
string <date-time>required
Example:
2026-01-01T00:00:00.000Z
string <date-time>required
Example:
2026-01-01T00:00:00.000Z
booleanrequired
Allowed:false
Example:
false
200Idempotent replay of the same request. Returns the existing task and its current status, including a result or public error when available.
Bodyapplication/json
objectrequired
stringrequired

The generation ID to use as task_id when querying status and retrieving the finished video.

stringrequired

Public template ID.

Example:
neon-duo-dance
stringrequired
Allowed:seeapi
Example:
seeapi
objectrequired

Normalized customer input only.

stringrequired
Allowed:processingsucceededfailedcanceledrefundedexpired
numberrequired

Estimate recorded on the original task in customer credits.

numberrequired
numberrequired
objectoptional
array <object>required
stringrequired
stringrequired
Allowed:imagevideo
string <uri>required
stringrequired
integerrequired
stringoptional
stringoptional
string <date-time>required
string <date-time>required
string <date-time>optional
booleanrequired
Allowed:true
Example:
true
400

Invalid request or public template input

401

Invalid API key

402

Insufficient credits

403

API key scope or access denied

404

Template or task not found or unavailable

409

Template configuration changed, idempotency conflict, or request still being created

413

Request body too large

429

Rate limit exceeded

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

Save generation.id from the creation response. Query GET /v1/generations/{task_id} to track progress and retrieve the final video, or receive terminal events at your HTTPS callback_url.

Note

  • On success, retrieve the video URL from generation.result.assets. On failure, inspect the public error_code and error_message.
  • HTTP 202 confirms acceptance only. Wait for the terminal task status before displaying a completed video.
  • An unchanged request retried with its original Idempotency-Key may return HTTP 200 and an already-completed task.

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/templates/neon-duo-dance/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "template-order-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "provider": "seeapi",
  "input": {
    "reference_images": [
      "https://customer.example.com/input-1.jpg",
      "https://customer.example.com/input-2.jpg"
    ],
    "resolution": "720p"
  }
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_example",
    "template_id": "neon-duo-dance",
    "provider": "seeapi",
    "input": {
      "reference_images": [
        "https://customer.example.com/input-1.jpg",
        "https://customer.example.com/input-2.jpg"
      ],
      "resolution": "720p"
    },
    "status": "processing",
    "estimated_credits": 10,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  },
  "idempotent": false
}
PreviousHotel Lobby AI APINextRap Video API
Request
const response = await fetch("https://api.seeapi.com/v1/templates/neon-duo-dance/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "template-order-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "provider": "seeapi",
  "input": {
    "reference_images": [
      "https://customer.example.com/input-1.jpg",
      "https://customer.example.com/input-2.jpg"
    ],
    "resolution": "720p"
  }
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_example",
    "template_id": "neon-duo-dance",
    "provider": "seeapi",
    "input": {
      "reference_images": [
        "https://customer.example.com/input-1.jpg",
        "https://customer.example.com/input-2.jpg"
      ],
      "resolution": "720p"
    },
    "status": "processing",
    "estimated_credits": 10,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  },
  "idempotent": false
}