Publiczne API

Generuj filmy i obrazy z własnych narzędzi

Utwórz klucz, wywołaj API z autoryzacją Bearer i odpytuj o status zadania, aż wynik będzie gotowy. Działa z Claude Code, Codex i dowolnym klientem HTTP.

Szybki start

Krok 1

Utwórz klucz

Wygeneruj klucz API w swoim panelu. Jest wyświetlany tylko raz, więc przechowaj go w bezpiecznym miejscu.

Krok 2

Wywołaj API

Wyślij żądanie POST z kluczem Bearer i nagłówkiem Idempotency-Key.

Krok 3

Głosowanie na wynik

Odpytywaj punkt końcowy stanu zadania, aż status zmieni się na „zakończony” lub „nieudany”, a następnie odczytaj wynik.

Uwierzytelnianie

Każde żądanie jest uwierzytelniane za pomocą klucza API typu Bearer w nagłówku Authorization.

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

Seedance 2 Video

Tekst, obraz lub multimedia na wideo.

1

Prześlij zadanie

POST
/api/v1/video/seedance2

Parametry

ParametrTypWymaganeDomyślneDozwolone wartości
mode

Generation mode.

stringOpcjonalnetext-to-video
text-to-videoimage-to-videomedia-to-video
quality_tier

Quality tier.

stringOpcjonalnestandard
ministandardpro
channel

Rendering channel.

stringOpcjonalnestandard
standardrealwild
prompt

Text prompt.

stringWymagane
3–10000 chars
aspect_ratio

Aspect ratio.

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

Clip duration.

stringOpcjonalne5
4–15 (seconds)
resolution

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

stringOpcjonalne720p
720p1080p1080p-plus4k
image_url

Start frame — required for image-to-video.

string (URL)Opcjonalne
public https URL
end_image_url

Optional end frame.

string (URL)Opcjonalne
public https URL
media_urls

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

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

Generate an audio track.

booleanOpcjonalnetrue
truefalse
fixed_lens

Lock the camera lens.

booleanOpcjonalnefalse
truefalse
seed

Not supported on the real channel or mini tier.

integerOpcjonalne
-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.

Żądanie

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"
  }'

Odpowiedź202

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

Sprawdź status zadania

GET
/api/v1/tasks/{id}

Żądanie

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

Odpowiedź200

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

Kody błędów

All errors share this shape:

json
{ "error": { "code": "invalid_request", "message": "Invalid request body" } }
KodHTTPZnaczenie
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.

Użyj z Claude Code

Kliknij Kopiuj dla AI, aby pobrać całe API w formie czystego Markdown, wklej je do Claude Code lub Codex i pozwól mu skonfigurować integrację. Możesz też skierować agenta bezpośrednio do surowego endpointu tekstowego.

Otwórz llms.txt

Skill

Zainstaluj umiejętność Seedance w Claude Code, Codex lub dowolnym agencie — tworzy kinowe prompty i renderuje je przez API za Ciebie.

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

FAQ

Kto może korzystać z API?

Każdy, kto ma kredyty. Nie ma ograniczenia planu — każde konto z kredytami może utworzyć klucz i wywołać API.

Jak zdobyć kredyty?

Doładuj lub subskrybuj na stronie z cenami. Kredyty są dodawane do salda natychmiast.

Czy kredyty są współdzielone między stroną internetową a API?

Tak — Twoje osobiste saldo kredytów zasila zarówno generowanie w przeglądarce, jak i wywołania API. W zespole wywołania API korzystają z osobistego salda każdego członka, a nie ze wspólnej puli zespołu.

Jak zacząć?

Utwórz klucz API w swoim panelu, a następnie wywołaj endpointy z tokenem Bearer (zobacz Quickstart powyżej).

Co jeśli wywołanie zwraca insufficient_credits?

Twoje saldo jest puste — doładuj na stronie cennika i spróbuj ponownie.