One key, one job model. The same video generation that renders our own episodes — multi-model, async, with failed jobs refunded automatically.
Billed in credits against your SeedAgent balance · Failed renders refunded automatically
Submit and get a job id back. Collect the result by webhook or by polling. Video generation only in this version — image, voice and music are not part of the API yet.
/v1/modelsThe catalogue your key may generate with: capabilities, hard constraints and the credit rate for each model. Read it instead of hard-coding limits.
/v1/videosText-to-video, image-to-video, first/last-frame interpolation and reference images. Returns a job id and the exact price, fixed at submission. Send an Idempotency-Key and a retry gets the original job back instead of a second one.
/v1/videos/{id}Four states — queued, processing, completed, failed. Scoped to the calling key, so one partner's keys never read another's jobs.
/v1/videosEvery job this key created, newest first — filter by status or by your own metadata, and page through with a cursor.
/v1/balanceThe spendable credit balance behind your key, so a batch can check before it starts instead of failing midway.
video.completedRegister a webhook_url and we POST the finished job, signed with your key's own secret and a replay-proof timestamp — and keep retrying for hours if your endpoint is down.
Models are added here once they are live in SeedAgent and priced for the API, and may be retired over time. For any given key, GET /v1/models is the authoritative list.
sa-video-proThe full Seedance 2.0 model, for cinematic, finished shots.
sa-video-fastA faster Seedance 2.0 at 480p and 720p, for drafts and high-volume batches.
seedance-2.0-miniThe compact Seedance 2.0 tier, for previews and high-volume drafts.
seedance-2.5The newest Seedance generation, for longer single shots.
kling-3.0Kling's current-generation video model.
kling-3.0-omniKling's multimodal model, built for shots driven by reference images.
wan-3.0The latest Wan generation.
wan-3.0-primeThe higher-fidelity tier of Wan 3.0.
Flat JSON in, a job id out. Duration, resolution, aspect ratio, inputs and prompt length are checked against GET /v1/models before anything is charged, so a mismatch is a 400, not a paid failure. What only the engine can judge — moderation, or an input image it can't use (below min_image_size, too large, an unsupported format, or a URL it can't fetch) — can still fail a job, and a failed job is refunded automatically.
curl -X POST https://seedagent.ai/api/v1/videos \
-H "Authorization: Bearer $SEEDAGENT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8812-shot-3" \
-d '{
"model": "sa-video-pro",
"prompt": "A lone figure on a rain-slicked rooftop at dusk.",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "1080p",
"webhook_url": "https://yourapp.com/hooks/seedagent"
}'Full reference — every field, every error code, and webhook signature verification — is in the API docs. Open the API docs →
A submission returns as soon as the engine has accepted the job; the video is collected later. What we guarantee about money and credentials is short enough to list in full.
Automatically, by the same pipeline that runs our own productions — not by a support ticket.
credits_charged is in the submit response, and the per-second rate is published per model.
A request that would overdraw is rejected up front. Nothing is queued and nothing is charged.
We store only a hash. On any suspicion, rotate the key in the API console and the old secret dies instantly, keeping the key id and its history — or revoke it, which can't be undone from the console.
API prices are set per model and per resolution and can differ from in-app prices; a model without a separate API price follows its in-app rate (for a model with separate text and image variants, the higher of the two). Charges come out of your SeedAgent credit balance.
No application and no waiting list: sign in with your SeedAgent account and create a key yourself. It works as soon as it is created, billed to that account's credit balance.
Sign in, open the API console and create a key. It is shown only once, so store it somewhere safe.
Buy credits by card on the API top-up page, in whole dollars within the limits shown there. They land on the balance every call with your key is billed against.
Send the key as a Bearer token to POST /v1/videos. The console lists every video with what it charged, and keeps a log of your video requests.
You don't need to talk to us to get started. But if you expect heavy traffic, need a higher rate limit, or want something the API doesn't do yet, tell us what you're building and we'll get back to you.