seedancecheapSTUDIOOPEN STUDIO ↗

FOR BUILDERS / V1

Create through
your own tools.

One private API for submitting 30-second videos, checking progress, and downloading finished files. Your key and jobs belong to your account.

API access is part of the studio. Create an account, add balance, then create an API key in your private workspace. Generation opens when live provider and payment checks are complete.

Getting started

Base URL: https://seedancecheap.com. Send your key in Authorization: Bearer sdc_.... Keep it on your server. A key is shown once when created.

All requests and responses use JSON except file downloads. There is no cross-origin browser access for API keys.

Create a video

POST /v1/videos/generations reserves the current tier price from your prepaid balance and creates a background job.

curl https://seedancecheap.com/v1/videos/generations \
  -H "Authorization: Bearer sdc_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A glass city at dawn, slow camera push...",
    "ratio": "16:9",
    "size": "1280x720",
    "request_id": "scene_001_v1"
  }'

request_id is required and unique per account. Save the request ID before submitting. If your connection drops, retry with the same ID and unchanged input; this returns the original job without a second charge. A changed prompt, ratio, or size needs a new ID.

RatioRequested size
16:91280×720 or 1920×1080
9:16720×1280 or 1080×1920
1:11024×1024
4:31440×1080
3:41080×1440

Use the exact size value with an x, such as 1920x1080. Omit it for the first size listed for that ratio. All seven sizes request Seedance 2.5 at 30 seconds and share the same tier price. The provider may return a different encoded size; report a material mismatch.

Check status

GET /v1/videos/{id} returns the job status. If the create response was lost, use GET /v1/videos/by-request/{request_id} to recover its ID. GET /v1/videos lists your most recent 50 jobs. Jobs keep running when your device disconnects.

{
  "id": "vid_...",
  "status": "ready",
  "price_cents": 230,
  "duration": 30,
  "expires_at": 1790676000,
  "download_url": "/v1/videos/vid_.../content"
}

Statuses include queued, processing, copying, ready, failed, uncertain, and expired. If a provider receipt is unavailable, the request stays uncertain and is refunded after the delivery deadline. We never silently submit a second provider task. Failed requests restore the reserved charge automatically.

Download the file

GET /v1/videos/{id}/content checks ownership and streams your MP4 from private storage. The link is usable only while signed in or with your API key, and only until 24 hours after delivery. Range requests are supported. Save the file before expires_at; the private copy is removed after 24 hours.

curl -L "https://seedancecheap.com/v1/videos/vid_YOUR_ID/content" \
  -H "Authorization: Bearer sdc_YOUR_KEY" \
  -o video.mp4

For a visibly unusable result, POST /v1/videos/{id}/report with JSON such as {"reason":"Major visual artifact makes this unusable"}. The job returns report_status as open, credited, or resolved. A credited report restores the original generation charge once.

Errors & limits

402 means insufficient balance. 429 means your active generation slots are full. 409 means a request ID was reused with different input. Confirmed failed generations restore the original charge to your balance automatically.

Parallel jobs: 1 initially, 2 after 50 paid, non-refunded generation requests, 3 after 100. The lowest price is $1.50 after 100 successful videos. Account-level capacity can also be affected by upstream availability.