Seedance 2.0 API

בנה יצירת וידאו לתוך המוצר שלך עם יצירת משימות אסינכרונית, סקר סטטוס, Webhooks וחיוב מודע-אשראי.

כתובת URL בסיסית
https://api.seedance2.ai
בדף זה

מבוא

ה-API מאפשר לך להגיש משימות יצירת וידאו Seedance 2.0 באופן פרוגרמטי. היצירה היא אסינכרונית: צור משימה, קבל מזהה משימה באופן מיידי, ואז קבל את הסרטון המוגמר על ידי סקר נקודת קצה המשימה או על ידי קבלת webhook.

משימות אסינכרוניות

סקר עובד היטב לפיתוח ואינטגרציות פשוטות.

מוכן ל-Webhook

Webhooks מומלצים לפרודקשן מכיוון שהם נמנעים מסקר אגרסיבי ומודיעים לשירות שלך כאשר משימה מגיעה למצב סיום.

מודע-אשראי

הזיכויים שמורים בעת ההגשה. משימות מוצלחות מחוייבות מאותה שמירה; משימות שנכשלו או שפג תוקפן מזוכות באופן אוטומטי.

אימות

צור מפתח API בלוח המחוונים ושלח אותו כאסימון Bearer בכל בקשה. המפתח המלא מוצג רק פעם אחת בזמן היצירה.

Authorization: Bearer sk_live_xxxxxxxx
sk_live_

השתמש במפתחות sk_live_ לתעבורת פרודקשן.

sk_test_

השתמש במפתחות sk_test_ לבדיקות אינטגרציה בסביבת ארגז חול עם אותו חוזה API.

401

מפתחות חסרים, לא חוקיים או שבוטלו מחזירים invalid_api_key עם HTTP 401.

התחלה מהירה

הגש משימה קודם. לאחר שהמשימה התקבלה, בחר שיטת מסירת תוצאה אחת: סרוק את נקודת קצה המשימה, או קבל את התוצאה הסופית באמצעות webhook.

הגש משימה

צור משימת וידאו אסינכרונית וקבל מזהה משימה באופן מיידי.

curl https://api.seedance2.ai/v1/videos/generations \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "callback_url": "https://your-domain.com/api/seedance/webhook",
    "input": {
      "prompt": "a cat surfing on a neon wave, cinematic lighting",
      "generation_type": "text-to-video",
      "duration": 5,
      "aspect_ratio": "16:9",
      "resolution": "720p",
      "generate_audio": true,
      "watermark": false,
      "web_search": false,
      "return_last_frame": false,
      "seed": -1
    }
  }'
אפשרות תוצאה: סקר

אחזר את נקודת קצה סטטוס המשימה כאשר האינטגרציה שלך מעדיפה סקר מפורש.

curl https://api.seedance2.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer sk_live_xxx"
אפשרות תוצאה: Webhook

העבר callback_url בעת הגשת המשימה, ואז קבל שיחות חוזרות להשלמה או לכישלון ועדכן את רשומת המשימה שלך.

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrl = callbackData.data.results[0];
    // Save the video URL or update your own task record here.
  }

  if (callbackData.status === "failed") {
    const errorMessage = callbackData.data.failed_reason;
    // Mark your own task record as failed here.
  }

  return new Response(null, { status: 200 });
}

צור משימת וידאו

צור משימת וידאו עם POST /v1/videos/generations. גוף הבקשה כולל מודל ברמה העליונה, callback_url אופציונלי, ואובייקט קלט המכיל הגדרות הנחיה ויצירה.

POST
/v1/videos/generations
curl https://api.seedance2.ai/v1/videos/generations \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "callback_url": "https://your-domain.com/api/seedance/webhook",
    "input": {
      "prompt": "a cat surfing on a neon wave, cinematic lighting",
      "generation_type": "text-to-video",
      "duration": 5,
      "aspect_ratio": "16:9",
      "resolution": "720p",
      "generate_audio": true,
      "watermark": false,
      "web_search": false,
      "return_last_frame": false,
      "seed": -1
    }
  }'

מצבי יצירה

generation_type שולט באילו כניסות מדיה מתקבלות וכיצד המודל מפרש אותן.

מצבמדיה נדרשתמדיה אופציונליתהערות
text-to-videoהנחיהמשך זמן, יחס רוחב-גובה, רזולוציה, seedהנחיית טקסט בלבד. image_urls, video_urls ו-audio_urls אינם נחוצים.
image-to-videoהנחיה + מערך image_urls (1-2 כתובות URL של תמונות)משך זמן, יחס רוחב-גובה, רזולוציה, seedimage_urls חייב להיות מערך. ספק כתובת URL אחת של תמונה עבור הפריימ הראשון, או 2 כתובות URL של תמונות עבור הפריימים הראשון והאחרון. וידאו ושמע מתעלמים.
reference-to-videoהנחיה + לפחות תמונה אחת או סרטון אחדתמונות, סרטונים ושמע בתוך מגבלות החומריםשמע לא יכול לשמש לבד עם טקסט. הוסף לפחות תמונה אחת או סרטון אחד כאשר סופק שמע.
text-to-video

השתמש בהמרת טקסט לווידאו כאשר ההנחיה היא הקלט היצירתי היחיד. (text-to-video)

curl https://api.seedance2.ai/v1/videos/generations \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "callback_url": "https://your-domain.com/api/seedance/webhook",
    "input": {
      "prompt": "a cinematic drone shot over a futuristic coastal city at sunrise",
      "generation_type": "text-to-video",
      "duration": 5,
      "aspect_ratio": "16:9",
      "resolution": "720p",
      "generate_audio": true,
      "watermark": false,
      "web_search": false,
      "return_last_frame": false,
      "seed": -1
    }
  }'
image-to-video

השתמש בהמרת תמונה לווידאו כאשר input.image_urls הוא מערך עם 1-2 כתובות URL של תמונות: כתובת URL אחת מגדירה את הפריימ הראשון, ושתי כתובות URL מגדירות את הפריימים הראשון והאחרון. הפניות לווידאו ואודיו מתעלמות במצב זה. (image-to-video)

curl https://api.seedance2.ai/v1/videos/generations \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "input": {
      "prompt": "the subject turns toward camera, soft studio motion",
      "generation_type": "image-to-video",
      "image_urls": ["https://your.cdn.com/first-frame.jpg"],
      "duration": 5,
      "resolution": "720p"
    }
  }'
reference-to-video

השתמש בהמרת הפניה לווידאו עבור כיוון עשיר יותר עם תמונות הפניה, סרטונים ושמע. שמע לא יכול לשמש לבד עם טקסט; כלול לפחות תמונה אחת או סרטון אחד כאשר סופק שמע. (reference-to-video)

מגבלות חומרים

  • עד 9 תמונות הפניה
  • עד 3 סרטוני הפניה, משך כולל <= 15 שניות
  • עד 3 קבצי שמע להפניה, משך כולל <= 15 שניות
  • מקסימום 12 חומרים בסך הכל בכל הסוגים

שילובים נתמכים של קלטים

טקסט + תמונה
טקסט + וידאו
טקסט + תמונה + וידאו
טקסט + תמונה + שמע
טקסט + וידאו + שמע
טקסט + תמונה + וידאו + שמע
curl https://api.seedance2.ai/v1/videos/generations \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0",
    "input": {
      "prompt": "use the product from image 1 and the camera motion from the reference video",
      "generation_type": "reference-to-video",
      "image_urls": ["https://your.cdn.com/product.jpg"],
      "video_urls": ["https://your.cdn.com/camera-motion.mp4"],
      "audio_urls": [],
      "duration": 8,
      "resolution": "1080p"
    }
  }'

פרמטרי בקשה

שמות הפרמטרים, ערכי enum, נתיבי נקודות קצה ודוגמאות הם חלק מחוזה ה-API. תיאורים למטה מסבירים כיצד כל שדה מתנהג.

כותרות

כותרתנדרשתיאורדוגמה
Authorizationכןמפתח API של Bearer המשמש לאימות הבקשה.Bearer sk_live_xxx
Content-Typeכןכל בקשות הכתיבה משתמשות ב-JSON.application/json

שדות ברמה העליונה

שדהסוגנדרשברירת מחדלטווח / Enumמצביםדוגמה
model

גרסת המודל המשמשת ליצירה.

stringכן-seedance-2-0 | seedance-2-0-fastהכלseedance-2-0
callback_url

נקודת קצה HTTPS שמקבלת קריאות חוזרות להשלמת משימות ולכישלון.

stringלא-כתובת URL של HTTPS, ללא רשתות פרטיותהכלhttps://your-domain.com/hook
input

הגדרות יצירה והפניות מדיה.

objectכן--הכל-

input.* שדות

שדהסוגנדרשברירת מחדלטווח / Enumמצביםדוגמה
input.prompt

הנחיית טקסט המתארת את הווידאו ליצירה.

stringכן-טקסט לא ריקהכלa cat surfing
input.generation_type

מצב יצירה. ברירת מחדל ל'טקסט לווידאו'. (text-to-video)

stringלאtext-to-videotext-to-video | image-to-video | reference-to-video-image-to-video
input.image_urls

כתובות URL של תמונות נגישות לציבור. עבור תמונה לווידאו, שלח תמונה אחת עבור הפריימ הראשון או 2 תמונות עבור הפריימים הראשון והאחרון. עבור הפניה לווידאו, שלח עד 9 תמונות כהפניות ויזואליות. (image-to-video) (reference-to-video)

string[]מותנה[]תמונה לווידאו: 1 או 2 תמונות. הפניה לווידאו: עד 9 תמונות. (image-to-video) (reference-to-video)image-to-video / reference-to-video["https://.../a.jpg"]
input.video_urls

סרטוני הפניה נגישים לציבור עבור הפניה לווידאו בלבד. ניתן לשלוח עד 3 קבצי וידאו, וזמן ההשמעה המשולב שלהם חייב להיות 15 שניות או פחות. (reference-to-video)

string[]לא[]עד 3 סרטונים. אורך הווידאו המשולב חייב להיות 15 שניות או פחות.reference-to-video[]
input.audio_urls

קבצי שמע להפניה נגישים לציבור עבור הפניה לווידאו בלבד. ניתן לשלוח עד 3 קבצי שמע, וזמן ההשמעה המשולב שלהם חייב להיות 15 שניות או פחות. (reference-to-video)

string[]לא[]עד 3 קבצי שמע. אורך השמע המשולב חייב להיות 15 שניות או פחות.reference-to-video[]
input.duration

אורך וידאו פלט בשניות.

intלא54-15 שניותהכל5
input.aspect_ratio

יחס רוחב-גובה של פלט. adaptive מאפשר לשירות להסיק את היחס הטוב ביותר.

stringלאadaptive16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 21:9 | אדפטיביהכל16:9
input.resolution

שכבת רזולוציית פלט.

stringלא720p480p | 720p | 1080pהכל720p
input.generate_audio

האם המודל צריך לייצר שמע כאשר הוא נתמך.

booleanלאtruetrue | falseהכלtrue
input.watermark

האם להוסיף סימן מים.

booleanלאfalsetrue | falseהכלfalse
input.web_search

האם לאפשר הגברת חיפוש באינטרנט כאשר היא נתמכת.

booleanלאfalsetrue | falseהכלfalse
input.return_last_frame

האם להחזיר את כתובת ה-URL של הפריימ האחרון כאשר זמין.

booleanלאfalsetrue | falseהכלfalse
input.seed

זרע דטרמיניסטי. השתמש ב-1- עבור זרע אקראי.

intלא-1-1 או 0-4294967295הכל-1

הזיכויים משתנים לפי רזולוציה, משך, מודל, והאם הפניה לווידאו כוללת הפניות וידאו. ערך הזיכויים המוחזר מתגובת היצירה הוא הסכום שמור בפועל עבור משימה זו. (reference-to-video)

הצג תמחור אשראי

תגובה

זוהי תגובת ההצלחה מ-POST /v1/videos/generations. זה אומר שהמשימה התקבלה והזיכויים נשמרו. השתמש ב-taskId שהוחזר כדי לבצע סקר GET /v1/tasks/:id או כדי להתאים קריאה חוזרת להשלמה או לכישלון.

תגובת הצלחה של POST /v1/videos/generations

{
  "taskId": "3f2aK9mR...",
  "credits": 60
}

קבל סטטוס משימה

השתמש ב-GET /v1/tasks/:id כדי לאחזר את מצב המשימה הנוכחי. אל תבצע סקר יותר מפעם אחת כל 10 שניות. עבור מערכות פרודקשן, העדף webhooks.

curl https://api.seedance2.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer sk_live_xxx"

תגובת משימה שהושלמה

{
  "id": "3f2aK9mR...",
  "status": "completed",
  "created_at": 1781234567,
  "model": "seedance-2-0",
  "billing_status": "charged",
  "credits": 60,
  "failed_reason": null,
  "data": {
    "results": ["https://cdn.seedance2.ai/.../x.mp4"],
    "video_expires_at": "2026-06-13T10:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

תגובת משימה שנכשלה

{
  "id": "3f2aK9mR...",
  "status": "failed",
  "created_at": 1781234567,
  "model": "seedance-2-0",
  "billing_status": "refunded",
  "credits": 60,
  "failed_reason": "provider_failed"
}
ערךמשמעות
status=queuedהתקבלה וממתינה להגשה או לעיבוד.
status=generatingהספק מעבד את היצירה.
status=completedהווידאו הושלם ו-data.results מכיל את כתובת ה-URL של התוצאה.
status=failedהיצירה נכשלה או חרג זמנה.
billing_status=reservedזיכויים שמורים בזמן שהמשימה מתבצעת.
billing_status=chargedהמשימה הצליחה והשמירה סודרה.
billing_status=refundedהמשימה נכשלה או חרג זמנה והזיכויים הוחזרו.
billing_status=refund_failedעסקת ההחזר נכשלה וזקוקה לטיפול ידני.

לאחר video_expires_at, data.results ריק. הורד ואחסן את הקובץ לפני סיום חלון התוקף.

Webhooks

כאשר callback_url קיים, Seedance קוראת לנקודת הקצה שלך כאשר המשימה הושלמה או נכשלה, ושולחת נתוני JSON המתארים את התוצאה הסופית. אם נקודת הקצה שלך מחזירה תגובה שאינה 2xx או אינה מגיבה תוך 15 שניות, המסירה תיעשה שוב עד 5 פעמים. נסיונות חוזרים משתמשים באותו מזהה משימה, אז בטל כפילויות לפי מזהה. החזר תגובת 200 בהקדם האפשרי לאחר שרשמת את נתוני הקריאה החוזרת בבטחה.

קריאה חוזרת להשלמת משימה

{
  "id": "3f2aK9mR...",
  "status": "completed",
  "created_at": 1781234567,
  "model": "seedance-2-0",
  "data": {
    "results": ["https://cdn.seedance2.ai/.../x.mp4"],
    "video_expires_at": "2026-06-13T10:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

קריאה חוזרת לכישלון משימה

{
  "id": "3f2aK9mR...",
  "status": "failed",
  "created_at": 1781234567,
  "model": "seedance-2-0",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 60
  }
}
export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrl = callbackData.data.results[0];
    // Save the video URL or update your own task record here.
  }

  if (callbackData.status === "failed") {
    const errorMessage = callbackData.data.failed_reason;
    // Mark your own task record as failed here.
  }

  return new Response(null, { status: 200 });
}

אמת את צורת נתוני הקריאה החוזרת, בטל כפילויות לפי מזהה, עדכן את רשומת המשימה שלך, והגב במהירות.

callback_url חייב להיות HTTPS ואסור לו להצביע על טווחי רשת פרטיים, לולאה חוזרת או מקומיים של קישור.

שגיאות

POST /v1/videos/generations ו-GET /v1/tasks/:id מחזירים צורת שגיאה זו כאשר בקשת ה-API עצמה נכשלת, כגון פרמטרים לא חוקיים, מפתח API לא חוקי, זיכויים לא מספיקים, הגבלת קצב או משימה שלא נמצאה. חלק מהשגיאות כוללות שדות נוספים כגון required, available או retry_after בהתאם למצב.

{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this task.",
    "required": 60,
    "available": 12
  }
}
קודHTTPמשמעותלנסות שוב?
invalid_request400פרמטרים חסרים או לא חוקיים.לא, תקן את הבקשה.
invalid_api_key401מפתח API חסר, לא חוקי או שבוטל.לא, השתמש במפתח חוקי.
insufficient_credits402אין מספיק זיכויים. המשימה לא התקבלה או חויבה.אחרי טעינה מחדש.
forbidden403למפתח ה-API חסרה ההרשאה הנדרשת.לא.
not_found404המשימה אינה קיימת או אינה שייכת לבעל המפתח.לא.
rate_limited429קצב הבקשות חרגו.כן, עקוב אחר Retry-After.
internal_error500שגיאת שרת.כן, נסה שוב מאוחר יותר.

מגבלות קצב

מגבלות קצב מיושמות לכל מפתח API עם חלון הזזה. יצירה מוגדרת כברירת מחדל ל-60 בקשות לדקה; שאילתות סטטוס יותר מקלות. תגובות HTTP 429 כוללות Retry-After.

יצירה

60/min

שאילתות סטטוס

מקל יותר

כותרת 429

Retry-After

חיוב וזיכויים

ה-API משתמש בשמירה בהגשה, חיוב בהצלחה והחזר כספי בכישלון. דפי השימוש בלוח המחוונים מציגים היסטוריית זיכויים של ה-API, יומני משימות וסטטיסטיקות שימוש מבוססות זמן.

שמור

הזיכויים נבדקים ונשמרים כאשר המשימה מתקבלת.

חויב

משימות שהושלמו מסדירות את ההזמנה הקיימת.

זוכה

משימות שנכשלו או חרגו מזמנן מחזירות את הזיכויים השמורים באופן אוטומטי.

בדוק שימוש בלוח המחוונים

הצג יומני API, צירי זמן של משימות, היסטוריית זיכויים ומדדי שימוש מבוססי זמן.

יומני API