Publikt API

Skapa video och bilder med dina egna verktyg

Skapa en nyckel, anropa API:t med Bearer-autentisering och polla uppgiftsstatus tills ditt resultat är klart. Fungerar med Claude Code, Codex och valfri HTTP-klient.

Hantera nycklar

Snabbstart

Steg 1

Skapa en nyckel

Skapa en API-nyckel i din dashboard. Den visas en gång, så förvara den på en säker plats.

Steg 2

Anropa API

Skicka en POST-förfrågan med din Bearer-nyckel och en Idempotency-Key-header.

Steg 3

Avfråga resultatet

Polla statusändpunkten för uppgiften tills status är slutförd eller misslyckad, läs sedan utdata.

Autentisering

Varje begäran autentiseras med en Bearer API-nyckel i Authorization-headern.

http
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
Idempotency-Key: a-unique-id-per-request

Seedance 2 Video

Text, bild eller media till video.

1

Skicka in ett jobb

POST
/api/v1/video/seedance2

Parametrar

ParameterTypObligatoriskStandardTillåtna värden
mode

Generation mode.

stringValfritttext-to-video
text-to-videoimage-to-videomedia-to-video
quality_tier

Quality tier.

stringValfrittstandard
ministandardpro
channel

Rendering channel.

stringValfrittstandard
standardrealwild
prompt

Text prompt.

stringObligatoriskt
3–10000 chars
aspect_ratio

Aspect ratio.

stringValfritt16:9
1:121:94:33:416:99:16adaptive
duration

Clip duration.

stringValfritt5
4–15 (seconds)
resolution

Output resolution. 1080p-plus and 4k are available on pro only.

stringValfritt720p
720p1080p1080p-plus4k
image_url

Start frame — required for image-to-video.

string (URL)Valfritt
public https URL
end_image_url

Optional end frame.

string (URL)Valfritt
public https URL
media_urls

Required for media-to-video. Video URLs must support duration probing.

string[] (URL)Valfritt
≤ 12 public https image/video URLs
generate_audio

Generate an audio track.

booleanValfritttrue
truefalse
fixed_lens

Lock the camera lens.

booleanValfrittfalse
truefalse
seed

Not supported on the real channel or mini tier.

integerValfritt
-1 – 4294967295

Seedance prompt guide

Seedance prompts work best as concrete director instructions. Describe the subject, action, scene, camera motion, visual style, and constraints, then map every reference asset to the right API parameter.

  • Use image_url for the opening frame, end_image_url for the closing frame, and media_urls for character, motion, style, source-video, or extension references.
  • Describe asset roles in natural language inside prompt. Do not send raw asset ids, asset:// URLs, or in-app-only labels such as @图片1.
  • For edits say “strictly edit the supplied source video”; for extensions say “continue from the supplied previous clip.”
  • For complex scenes, use ordered shots plus a style and constraint package: stable faces, natural motion, no deformation, no watermark, no logo, and no subtitles unless intended.

Begäran

bash
curl -X POST https://seedance2ai.io/api/v1/video/seedance2 \
  -H "Authorization: Bearer $SEEDANCE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: demo-video-001" \
  -d '{
    "mode": "text-to-video",
    "quality_tier": "standard",
    "prompt": "A cinematic shot of a glass train crossing a snowy mountain bridge",
    "aspect_ratio": "16:9",
    "duration": "5",
    "resolution": "720p"
  }'

Svar202

json
{
  "id": "sd2_xxxxx",
  "status": "processing",
  "model": "seedance2",
  "quality_tier": "standard",
  "channel": "standard",
  "credits_used": 30
}
2

Kontrollera uppgiftsstatus

GET
/api/v1/tasks/{id}

Begäran

bash
curl https://seedance2ai.io/api/v1/tasks/sd2_xxxxx \
  -H "Authorization: Bearer $SEEDANCE_API_KEY"

Svar200

json
{
  "id": "sd2_xxxxx",
  "status": "completed",
  "model": "seedance2",
  "quality_tier": "standard",
  "channel": "standard",
  "credits_used": 30,
  "credits_refunded": 0,
  "output": {
    "video_url": "https://...",
    "last_frame_url": "https://...",
    "seed": 123
  },
  "error": null,
  "created_at": "2026-06-03T10:00:00.000Z",
  "updated_at": "2026-06-03T10:03:12.000Z"
}

status: processing · completed · failed

Felkoder

All errors share this shape:

json
{ "error": { "code": "invalid_request", "message": "Invalid request body" } }
KodHTTPBetydelse
unauthorized401Missing, invalid, or revoked API key.
invalid_request400Bad input or unsupported field.
insufficient_credits402Not enough credits on the balance.
rate_limited429Too many requests — limit is 30 requests per 60 seconds per account. Retry after the Retry-After response header (in seconds).
idempotency_conflict409Same Idempotency-Key reused with a different body, or still running.
service_busy503Temporary upstream or credit-concurrency issue. Retry.
not_found404Task does not exist or does not belong to this key owner.
internal_error500Unexpected server-side failure.

Använd med Claude Code

Klicka på Kopiera för att AI ska hämta hela API:t som ren Markdown, klistra in det i Claude Code eller Codex och låt den koppla ihop integrationen. Eller peka agenten direkt mot den råa text-ändpunkten.

Öppna llms.txt

Skill

Installera Seedance-skillen i Claude Code, Codex eller vilken agent som helst — den skriver filmiska prompts och renderar dem via API:et åt dig.

bash
# Download the one-file skill from Seedance 2 AI
mkdir -p ~/.claude/skills/seedance
curl -L https://seedance2ai.io/downloads/seedance-skill.md -o ~/.claude/skills/seedance/SKILL.md

Vanliga frågor

Vem kan använda API:et?

Alla med krediter. Det finns ingen planbegränsning — alla konton med krediter kan skapa en nyckel och anropa API:et.

Hur får jag credits?

Ladda på eller prenumerera på prissidan. Krediterna läggs till ditt saldo omedelbart.

Delas krediter mellan webbplatsen och API:et?

Ja — din personliga kreditbalans används både för din webbgenerering och dina API-anrop. I ett team använder API-anrop varje medlems egen personliga balans, inte den gemensamma team-potten.

Hur börjar jag?

Skapa en API-nyckel i din dashboard och anropa sedan endpoints med en Bearer-token (se Quickstart ovan).

Vad händer om ett anrop returnerar insufficient_credits?

Ditt saldo är tomt — fyll på via prissidan och försök igen.