Seedance API
שלבו יצירת סרטונים בתוך המוצר שלכם באמצעות Seedance 2.5 או Seedance 2.0, משימות אסינכרוניות, וובחוקים וחיוב מבוסס קרדיטים.
https://api.seevio.aiבעמוד זה
מבוא
ה-API מאפשר לכם להגיש משימות יצירת וידאו עבור Seedance 2.5 ו-Seedance 2.0 באופן פרוגרמטי. Seedance 2.5 הוא המודל המומלץ והוא תומך בטקסט לווידאו, תמונה לווידאו (על בסיס הפריים הראשון או הפריים הראשון והאחרון), ומולטימודל (יצירת וידאו על בסיס קבצי מקור). תהליך היצירה הוא אסינכרוני: יוצרים משימה, מקבלים מזהה משימה (task ID) באופן מיידי, ואז מקבלים את הסרטון המוכן על ידי פולינג (תשאול) של נקודת הקצה של המשימה או באמצעות קבלת וובחוק.
משימות אסינכרוניות
פולינג מתאים בעיקר לשלבי פיתוח ולאינטגרציות פשוטות.
תמיכה בוובחוקים
שימוש בוובחוקים מומלץ לסביבות פרודקשן, שכן הוא חוסך פולינג אגרסיבי ומעדכן את השרת שלכם ברגע שהמשימה מגיעה למצב סופי.
ניהול קרדיטים חכם
הקרדיטים נשמרים בעת הגשת המשימה. משימות שהסתיימו בהצלחה מחוייבות מתוך הקרדיטים שנשמרו; משימות שנכשלו או שהזמן שלהן עבר (timeout) מקבלות זיכוי אוטומטי.
אימות וזיהוי
צרו מפתח API בלוח הבקרה ושלחו אותו כטוקן Bearer בכל בקשה. המפתח המלא יוצג פעם אחת בלבד בעת יצירתו.
Authorization: Bearer sk_live_xxxxxxxxהשתמשו במפתחות sk_live_ עבור תעבורת פרודקשן.
השתמשו במפתחות sk_test_ עבור בדיקות אינטגרציה בסביבת ארגז חול (sandbox) עם חוזה API זהה.
מפתחות חסרים, שגויים או מבוטלים יחזירו את השגיאה invalid_api_key עם קוד HTTP 401.
מדריך מהיר
תחילה, שלחו משימה. לאחר שהמשימה מתקבלת, בחרו בשיטה המועדפת לקבלת התוצאה: פולינג של נקודת הקצה של המשימה, או קבלת התוצאה הסופית באמצעות וובחוק.
צרו משימת וידאו אסינכרונית וקבלו מזהה משימה (task ID) באופן מיידי.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"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
}
}'פנו לנקודת הקצה של סטטוס המשימה כאשר האינטגרציה שלכם מעדיפה תשאול יזום ומפורש.
curl https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer sk_live_xxx"העבירו callback_url בעת שליחת המשימה כדי לקבל קריאות חוזרות (callbacks) על הצלחה או כישלון, ולעדכן את תיעוד המשימה אצלכם במערכת.
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 אופציונלי, ואובייקט input המכיל את הנחיית הטקסט (prompt) ואת הגדרות היצירה.
/v1/videos/generationscurl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"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
}
}'מצבי יצירה
הפרמטר generation_type קובע אילו קבצי מדיה יתקבלו כקלט וכיצד המודל יפרש אותם.
הגדירו את המודל ל-seedance-2-5 כדי להפיק פלט ברזולוציה של 480p או 720p ובאורך של 4 עד 30 שניות.
- טקסט לווידאו עם יחס גובה-רוחב אדפטיבי, 16:9, 9:16, 1:1, 4:3, 3:4 או 21:9
- תמונה לווידאו מתמונת פריים ראשון אחת או משתי תמונות (פריים ראשון ואחרון); יחס הגובה-רוחב חייב להיות אדפטיבי (adaptive)
- וידאו על בסיס קבצי מקור (Reference-to-video) עם עד 30 תמונות, 10 סרטונים ו-10 קבצי אודיו, ועד 50 קבצי מקור בסך הכל
- כל סרטון או קובץ אודיו המשמש כמקור חייב להיות באורך של 2-30 שניות; משך הזמן הכולל של קטעי הווידאו ומשך הזמן הכולל של קטעי האודיו חייב להיות 30 שניות או פחות עבור כל סוג
- נתמך קלט מקור של אודיו בלבד וכן הפרמטר return_last_frame; הפרמטר seed אינו נתמך במודל זה
| מצב | מדיה נדרשת | מדיה אופציונלית | הערות |
|---|---|---|---|
text-to-video | prompt | duration, aspect_ratio, resolution, seed | הנחיית טקסט בלבד. אין צורך ב-image_urls, video_urls או audio_urls. |
image-to-video | prompt + מערך image_urls (1-2 כתובות URL של תמונות) | duration, aspect_ratio, resolution, seed | הפרמטר image_urls חייב להיות מערך. ספקו כתובת URL אחת של תמונה עבור הפריים הראשון, או 2 כתובות עבור הפריים הראשון והאחרון. המערכת מתעלמת מווידאו ואודיו. |
reference-to-video | prompt + לפחות קובץ מקור אחד מסוג תמונה, וידאו או אודיו | תמונות, סרטונים וקובצי אודיו במסגרת המגבלות המותרות | Seedance 2.5 תומך בקבצי מקור של אודיו בלבד. ב-Seedance 2.0 יש להוסיף לפחות תמונה אחת או סרטון אחד כאשר מסופק קובץ אודיו. |
text-to-videoהשתמשו בטקסט לווידאו כאשר הנחיית הטקסט (prompt) היא הקלט היצירתי היחיד.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"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
}
}'image-to-videoהשתמשו בתמונה לווידאו כאשר input.image_urls הוא מערך עם 1-2 כתובות URL של תמונות: כתובת אחת מגדירה את הפריים הראשון, ושתי כתובות מגדירות את הפריים הראשון והאחרון. במצב זה המערכת מתעלמת מקבצי מקור של וידאו ואודיו.
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"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השתמשו בווידאו על בסיס קבצי מקור לקבלת הכוונה עשירה יותר באמצעות תמונות, סרטונים וקבצי אודיו המשמשים כמקור. Seedance 2.5 מאפשר שימוש באודיו כמקור יחיד; Seedance 2.0 דורש לפחות תמונה אחת או סרטון אחד כאשר מסופק קובץ אודיו.
מגבלות על קבצי מקור
- Seedance 2.5: עד 30 תמונות מקור
- Seedance 2.5: עד 10 סרטוני מקור, כל אחד באורך 2-30 שניות ומשך כולל של <= 30 שניות
- Seedance 2.5: עד 10 קבצי אודיו מקור, כל אחד באורך 2-30 שניות ומשך כולל של <= 30 שניות
- Seedance 2.5: מקסימום 50 קבצי מקור בסך הכל מכל הסוגים
- גרסאות Seedance 2.0 שומרות על המגבלות הקיימות שלהן: 9 תמונות, 3 סרטונים, 3 קבצי אודיו, ו-15 שניות לכל קבוצת וידאו/אודיו
שילובי קלטים נתמכים
curl https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-5",
"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": "720p"
}
}'פרמטרים של הבקשה
שמות הפרמטרים, ערכי ה-enum, נתיבי נקודות הקצה והדוגמאות הם חלק מחוזה ה-API. התיאורים להלן מסבירים את ההתנהגות של כל שדה.
כותרות (Headers)
| כותרת (Header) | חובה | תיאור | דוגמה |
|---|---|---|---|
Authorization | כן | מפתח API מסוג Bearer המשמש לאימות הבקשה. | Bearer sk_live_xxx |
Content-Type | כן | כל בקשות הכתיבה משתמשות בפורמט JSON. | application/json |
שדות ברמת העל
| שדה | סוג | חובה | ברירת מחדל | טווח / Enum | מצבים | דוגמה |
|---|---|---|---|---|---|---|
modelגרסת המודל המשמשת ליצירה. השתמשו ב-seedance-2-5 עבור Seedance 2.5, ב-seedance-2-0 עבור Seedance 2.0, ב-seedance-2-0-fast עבור Seedance 2.0 Fast, או ב-seedance-2-0-mini עבור Seedance 2.0 Mini. | string | כן | - | seedance-2-5 | seedance-2-0 | seedance-2-0-fast | seedance-2-0-mini | הכל | seedance-2-5 |
callback_urlנקודת קצה של HTTPS המקבלת קריאות חוזרות (callbacks) על השלמת המשימה או על כישלונה. | 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-video | text-to-video | image-to-video | reference-to-video | - | image-to-video |
input.image_urlsכתובות URL ציבוריות ונגישות של תמונות. עבור תמונה לווידאו, שלחו תמונה אחת עבור הפריים הראשון או 2 תמונות עבור הפריים הראשון והאחרון. עבור וידאו על בסיס קבצי מקור, Seedance 2.5 מקבל עד 30 תמונות ו-Seedance 2.0 מקבל עד 9. | string[] | מותנה | [] | תמונה לווידאו: 1 או 2 תמונות. וידאו על בסיס קבצי מקור: עד 30 עבור Seedance 2.5; עד 9 עבור Seedance 2.0. | image-to-video / reference-to-video | ["https://.../a.jpg"] |
input.video_urlsסרטוני מקור נגישים באופן ציבורי עבור מצב וידאו על בסיס קבצי מקור בלבד. Seedance 2.5 מקבל עד 10 סרטונים, כל אחד באורך 2-30 שניות עם זמן נגינה כולל של <= 30 שניות. Seedance 2.0 מקבל עד 3 סרטונים עם זמן נגינה כולל של <= 15 שניות. | string[] | לא | [] | Seedance 2.5: עד 10 סרטונים, כל אחד באורך 2-30 שניות, אורך משולב של <= 30 שניות. Seedance 2.0: עד 3 סרטונים, אורך משולב של <= 15 שניות. | reference-to-video | [] |
input.audio_urlsקבצי אודיו מקור נגישים באופן ציבורי עבור מצב וידאו על בסיס קבצי מקור בלבד. Seedance 2.5 מקבל עד 10 קבצי אודיו, כל אחד באורך 2-30 שניות עם זמן נגינה כולל של <= 30 שניות, ומאפשר שימוש באודיו כמקור יחיד. Seedance 2.0 מקבל עד 3 קבצי אודיו עם זמן נגינה כולל של <= 15 שניות. | string[] | לא | [] | Seedance 2.5: עד 10 קבצי אודיו, כל אחד באורך 2-30 שניות, אורך משולב של <= 30 שניות. Seedance 2.0: עד 3 קבצי אודיו, אורך משולב של <= 15 שניות. | reference-to-video | [] |
input.durationאורך סרטון הפלט בשניות. | int | לא | 5 | Seedance 2.5: 4-30 שניות. Seedance 2.0: 4-15 שניות. | הכל | 5 |
input.aspect_ratioיחס הגובה-רוחב של הפלט. הערך adaptive מאפשר לשירות לקבוע את היחס הטוב ביותר באופן אוטומטי. מצב תמונה לווידאו ב-Seedance 2.5 תומך ב-adaptive בלבד. | string | לא | adaptive | 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 21:9 | adaptive | הכל | 16:9 |
input.resolutionרמת הרזולוציה של הפלט. | string | לא | 720p | Seedance 2.5: 480p | 720p. Seedance 2.0: 480p | 720p | 1080p | 4k (בהתאם לגרסת המודל). | הכל | 720p |
input.generate_audioהאם המודל צריך להפיק אודיו כאשר הדבר נתמך. | boolean | לא | true | true | false | הכל | true |
input.watermarkהאם להוסיף סימן מים. | boolean | לא | false | true | false | הכל | false |
input.web_searchהאם לאפשר העשרת המידע באמצעות חיפוש ברשת (Web Search) כאשר הדבר נתמך. | boolean | לא | false | true | false | הכל | false |
input.return_last_frameהאם להחזיר את כתובת ה-URL של הפריים האחרון כאשר היא זמינה. | boolean | לא | false | true | false | הכל | false |
input.seedסיד (seed) דטרמיניסטי עבור גרסאות Seedance 2.0. מודל Seedance 2.5 אינו תומך בשדה זה; יש להשמיט אותו. | int | לא | -1 | -1 או 0-4294967295 | הכל | -1 |
עלות הקרדיטים משתנה בהתאם לרזולוציה, למשך הזמן, למודל והאם יצירת הווידאו על בסיס קבצי מקור כוללת סרטונים. ערך הקרדיטים המוחזר בתגובת היצירה הוא הסכום המדויק שנשמר עבור משימה זו.
צפייה בתמחור הקרדיטיםתגובה
זוהי תגובת ההצלחה המתקבלת מ-POST /v1/videos/generations. משמעותה היא שהמשימה התקבלה וקרדיטים נשמרו עבורה. השתמשו ב-taskId שהתקבל כדי לבצע פולינג ל-GET /v1/tasks/:id או כדי להתאים לקריאה החוזרת (callback) של סיום או כישלון המשימה.
תגובת הצלחה עבור POST /v1/videos/generations
{
"taskId": "3f2aK9mR...",
"credits": 100
}בדיקת סטטוס משימה
השתמשו ב-GET /v1/tasks/:id כדי לקבל את המצב הנוכחי של המשימה. אל תבצעו פולינג בתדירות גבוהה יותר מפעם ב-10 שניות. עבור מערכות פרודקשן, מומלץ להשתמש בוובחוקים.
curl https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer sk_live_xxx"תגובת משימה שהושלמה בהצלחה
{
"id": "3f2aK9mR...",
"status": "completed",
"created_at": 1781234567,
"model": "seedance-2-5",
"billing_status": "charged",
"credits": 100,
"failed_reason": null,
"data": {
"results": ["https://cdn.seevio.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-5",
"billing_status": "refunded",
"credits": 100,
"failed_reason": "provider_failed"
}| ערך | משמעות |
|---|---|
status=queued | התקבלה וממתינה לשליחה או לעיבוד. |
status=generating | ספק השירות מעבד את יצירת הסרטון. |
status=completed | הסרטון מוכן והשדה data.results מכיל את כתובת ה-URL שלו. |
status=failed | היצירה נכשלה או שהזמן שלה עבר (timeout). |
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 פעמים. ניסיונות חוזרים משתמשים באותו מזהה משימה (task id), לכן יש לבצע מניעת כפילויות (de-duplication) לפי מזהה זה. החזירו תגובת 200 ברגע ששמרתם בהצלחה את נתוני הקריאה החוזרת.
קריאה חוזרת (Callback) על השלמת משימה
{
"id": "3f2aK9mR...",
"status": "completed",
"created_at": 1781234567,
"model": "seedance-2-5",
"data": {
"results": ["https://cdn.seevio.ai/.../x.mp4"],
"video_expires_at": "2026-06-13T10:00:00Z",
"last_frame_url": null,
"processing_time": 48
}
}קריאה חוזרת (Callback) על כישלון משימה
{
"id": "3f2aK9mR...",
"status": "failed",
"created_at": 1781234567,
"model": "seedance-2-5",
"data": {
"failed_reason": "provider_failed",
"credits_refunded": 100
}
}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 ואסור לו להצביע על טווחי רשת פרטיים, מקומיים (loopback) או קישורי-כתובת מקומיים (link-local).
שגיאות
הבקשות 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": 100,
"available": 12
}
}| קוד שגיאה | HTTP | משמעות | ניסיון חוזר? |
|---|---|---|---|
invalid_request | 400 | פרמטרים חסרים או לא תקפים. | לא, תקנו את הבקשה ונסו שוב. |
invalid_api_key | 401 | מפתח ה-API חסר, אינו תקף או בוטל. | לא, השתמשו במפתח תקף. |
insufficient_credits | 402 | אין מספיק קרדיטים. המשימה לא תתקבל ולא תחוייב. | לאחר טעינת קרדיטים נוספים. |
forbidden | 403 | למפתח ה-API אין את ההרשאות הנדרשות (scope). | לא. |
not_found | 404 | המשימה אינה קיימת או שאינה שייכת לבעל מפתח ה-API. | לא. |
rate_limited | 429 | עברתם את קצב הבקשות המותר. | כן, פעלו לפי כותרת ה-Retry-After. |
internal_error | 500 | שגיאת שרת פנימית. | כן, נסו שוב מאוחר יותר. |
מגבלות קצב בקשות
מגבלות קצב הבקשות מוחלות לכל מפתח API באמצעות חלון זמן נע (sliding window). יצירת סרטונים מוגבלת כברירת מחדל ל-100 בקשות בדקה; שאילתות סטטוס משימה מאפשרות קצב גמיש יותר. תגובות HTTP 429 כוללות את הכותרת Retry-After.
יצירה
100/דקה
שאילתות סטטוס
גמיש ומקל יותר
כותרת 429
Retry-After
חיוב וקרדיטים
ה-API עובד בשיטה של שמירת קרדיטים בעת הגשה, חיוב בעת הצלחה, והחזר בעת כישלון. דפי השימוש בלוח הבקרה מציגים את היסטוריית הקרדיטים של ה-API, יומני משימות ונתוני שימוש מבוססי זמן.
שמורים
הקרדיטים נבדקים ונשמרים ברגע שהמשימה מתקבלת לטיפול.
מחויבים
משימות שהושלמו בהצלחה מחייבות את הקרדיטים שנשמרו מראש.
מוחזרים
משימות שנכשלו או שהזמן שלהן עבר מחזירות את הקרדיטים השמורים באופן אוטומטי.
ניתוח השימוש בלוח הבקרה
צפו ביומני ה-API, בצירי הזמן של המשימות, בהיסטוריית הקרדיטים ובמדדי שימוש לאורך זמן.