Christmas Dance Trend API
Turn two photos into a 14-second Christmas duo dance video. Each person follows the built-in choreography and keeps the original music, with 480p, 720p, 1080p or 4K output.
Developer API pricing
Provider: SeeAPI
USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.
480p: 307 credits/gen (≈ $1.15/gen)
720p: 668 credits/gen (≈ $2.50/gen)
1080p: 1,655 credits/gen (≈ $6.20/gen)
4k: 3,417 credits/gen (≈ $12.80/gen)
API examples
These examples were generated through real calls to the SeeAPI API. Choose a case to explore the inputs and actual generated results.
Examples 1
Input
reference_images

Output 1
Result 1
These examples are saved API results. Actual generated results may vary.
Request
/v1/templates/christmas-dance-trend/generationsHeader Params
Use a unique key for each new generation. Retry the same request with the same key and unchanged request body.
- Example:
template-order-001
Body Params
application/jsonPublic provider identifier. Always send "seeapi".
- Other provider values are rejected.
seeapi- Default:
seeapi- Example:
seeapi
objectrequiredTemplate inputs.
- Use only the fields listed here.
Template inputs.
- Use only the fields listed here.
Performer references. Send an array of exactly two HTTPS image URLs, each containing one person.
- The first image is assigned to the performer who starts on the left; the second image is assigned to the performer who starts on the right.
- Each person keeps the face, hairstyle and visible outfit from their photo while following the built-in choreography.
- Use JPEG, JPG, PNG, WebP, BMP, TIFF or GIF. Each image must be smaller than 30 MB.
- Width and height must each be greater than 300 px and less than 6,000 px.
- The width-to-height ratio of each image must be greater than 0.4 and less than 2.5.
- The image URL must be publicly accessible without login or authentication and link directly to the image file, not a webpage.
- Example:
["https://example.com/person-left.jpg","https://example.com/person-right.jpg"]
Output video resolution. Defaults to 720p.
- Allowed values are 480p, 720p, 1080p and 4k. Resolution affects the template estimate.
- The output video is always 14 seconds long, matching the built-in dance reference.
480p720p1080p4k- Default:
720p- Example:
720p
Output video aspect ratio. Defaults to 9:16 when omitted.
- Choose an explicit ratio when you need a landscape, portrait or square layout.
16:99:161:14:33:421:9adaptive- Default:
9:16- Example:
9:16
Generation seed, from 0 to 999999. Defaults to 0.
- Using the same seed does not guarantee an identical generated performance.
- Default:
0- Example:
0
Optional absolute HTTPS URL for generation.succeeded and generation.failed webhooks.
Responses
202Generation accepted. Poll GET /v1/generations/{task_id} for results; acceptance is not completion.
objectrequired
- Example:
task_example
Public template ID.
- Example:
christmas-dance-trend
seeapi- Example:
seeapi
Normalized customer input only.
- Example:
{"reference_images":["https://customer.example.com/input-1.jpg","https://customer.example.com/input-2.jpg"],"resolution":"720p","aspect_ratio":"9:16","seed":0}
processingRequest-specific template estimate in customer credits; obtain an estimate with Quote Template. The example value is illustrative, not this template's price.
- Example:
10
- Example:
0
- Example:
0
- Example:
2026-01-01T00:00:00.000Z
- Example:
2026-01-01T00:00:00.000Z
false- Example:
false
200Idempotent replay with the task's current status, recorded credits, and available result or public error. The task may already be completed.
objectrequired
Public template ID.
- Example:
christmas-dance-trend
seeapi- Example:
seeapi
Normalized customer input only.
processingsucceededfailedcanceledrefundedexpiredEstimate recorded on the original task in customer credits.
objectoptional
array <object>required
imagevideotrue- Example:
true
Invalid request or public template input
Invalid API key
Insufficient credits
API key scope or access denied
Template or task not found or unavailable
Template configuration changed, idempotency conflict, or request still being created
Request body too large
Rate limit exceeded
Service temporarily unavailable
Query Task Status
After submitting a task, use the unified query endpoint to check progress and retrieve results:
Keep generation.id from the creation response. Use it as task_id when querying the generation, or receive terminal events at your HTTPS callback_url.
Note
- HTTP 202 confirms acceptance only. Wait for the terminal task status before showing a completed video.
- On success, read the output URLs from generation.result.assets. On failure, inspect the public error_code and error_message.
- Retries of an unchanged creation request should reuse the original Idempotency-Key. An idempotent replay can return 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.