Same key, same payload
The API can return the same job instead of creating duplicate work.
Use one REST API for image and video generation, async job tracking, result retrieval, and usage checks.
https://api.seedance2unlimited.space
All examples on this page use the public customer API domain and `/v1` endpoints.
Send your customer API key in the `Authorization` header. Generate requests also need `Content-Type: application/json`.
Authorization: Bearer ak_live_your_key
Content-Type: application/json
Call generation endpoints from your backend or trusted automation. Treat `ak_live_...` values as secrets.
Every new image or video generation request must include a unique `Idempotency-Key`. This makes retries safer when a network or client timeout happens.
The API can return the same job instead of creating duplicate work.
The API rejects the request with an idempotency conflict.
Idempotency-Key: image-order-001
Creates an async image job with GPT Image 2. Image output is returned later through the job result endpoint.
POST /v1/images/generate
| Field | Type | Notes |
|---|---|---|
prompt |
string | Required generation prompt. |
quality |
string | Example values: LOW, MEDIUM. |
size |
string | Example value: 1:1_SMALL. |
referenceImage |
string | Optional reference image URL when supported by the mode. |
curl -X POST "https://api.seedance2unlimited.space/v1/images/generate" \
-H "Authorization: Bearer ak_live_your_key" \
-H "Idempotency-Key: image-order-001" \
-H "Content-Type: application/json" \
-d '{
"prompt": "cinematic product photo on a clean studio background",
"quality": "LOW",
"size": "1:1_SMALL"
}'
{
"ok": true,
"jobId": "job_...",
"status": "processing",
"type": "image",
"model": "gpt-image-2",
"chargedCredits": 20,
"idempotentReplay": false
}
Creates an async Seedance 2.0 Fast video job. Use job status and result endpoints to track completion.
POST /v1/videos/generate
| Field | Type | Notes |
|---|---|---|
prompt |
string | Required video prompt. |
size |
string | Example values: 16:9_SMALL, 1:1_SMALL, 9:16_SMALL. |
duration |
number | Example value: 15. |
motionHasAudio |
boolean | Optional audio setting when supported. |
referenceImage |
string | Optional reference image URL when supported by the mode. |
curl -X POST "https://api.seedance2unlimited.space/v1/videos/generate" \
-H "Authorization: Bearer ak_live_your_key" \
-H "Idempotency-Key: video-order-001" \
-H "Content-Type: application/json" \
-d '{
"prompt": "cinematic drone shot over a futuristic city",
"size": "16:9_SMALL",
"duration": 15,
"motionHasAudio": true
}'
Check whether an async image or video job is queued, processing, complete, or failed.
GET /v1/jobs/:jobId
curl "https://api.seedance2unlimited.space/v1/jobs/job_xxx" \
-H "Authorization: Bearer ak_live_your_key"
Fetch the generated image or video result after the job completes. If the result is not ready, the endpoint can return `202`.
GET /v1/jobs/:jobId/result
curl "https://api.seedance2unlimited.space/v1/jobs/job_xxx/result" \
-H "Authorization: Bearer ak_live_your_key"
Inspect your current credit balance, reserved credits, available credits, plan, and limits.
GET /v1/usage
curl "https://api.seedance2unlimited.space/v1/usage" \
-H "Authorization: Bearer ak_live_your_key"
Errors are returned with HTTP status codes and machine-readable error identifiers. Customer-facing errors do not expose internal provider details.
The API key is missing, inactive, or invalid.
Available credits are not enough for the requested generation.
The idempotency key was reused with a different payload.
The request exceeded the current rate limit for the plan.
Too many generation jobs are active at the same time.
The service is temporarily unable to accept or run the job.