Seedance 2.0 API

สร้างการสร้างวิดีโอเข้าสู่ผลิตภัณฑ์ของคุณด้วยการสร้างงานแบบอะซิงค์, การสำรวจสถานะ, เว็บฮุค และการเรียกเก็บเงินตามเครดิต

URL พื้นฐาน
https://api.seedance2.ai
ในหน้านี้

บทนำ

API ช่วยให้คุณส่งงานสร้างวิดีโอ Seedance 2.0 แบบโปรแกรม การสร้างเป็นแบบอะซิงโครนัส: สร้างงาน, รับ ID งานทันที, จากนั้นรับวิดีโอที่เสร็จสมบูรณ์โดยการสำรวจสถานะที่เอ็นด์พอยต์ของงาน หรือโดยการรับเว็บฮุค

งานแบบอะซิงค์

การสำรวจสถานะทำงานได้ดีสำหรับการพัฒนาและการรวมระบบอย่างง่าย

พร้อมสำหรับเว็บฮุค

แนะนำเว็บฮุคสำหรับการใช้งานจริง เนื่องจากช่วยหลีกเลี่ยงการสำรวจสถานะที่มากเกินไป และแจ้งบริการของคุณเมื่องานถึงสถานะสุดท้าย

รับรู้เครดิต

เครดิตจะถูกจองเมื่อส่งงาน งานที่สำเร็จจะถูกหักค่าใช้จ่ายจากการจองนั้น งานที่ล้มเหลวหรือหมดเวลาจะได้รับเงินคืนโดยอัตโนมัติ

การยืนยันตัวตน

สร้างคีย์ API ในแดชบอร์ดและส่งเป็น Bearer token ในทุกคำขอ คีย์ทั้งหมดจะแสดงเพียงครั้งเดียวเมื่อสร้าง

Authorization: Bearer sk_live_xxxxxxxx
sk_live_

ใช้คีย์ sk_live_ สำหรับการใช้งานจริง

sk_test_

ใช้คีย์ sk_test_ สำหรับการทดสอบการรวมระบบแบบ Sandbox ด้วยสัญญา API เดียวกัน

401

คีย์ที่หายไป, ไม่ถูกต้อง หรือถูกเพิกถอนจะส่งคืน invalid_api_key พร้อมด้วย HTTP 401

เริ่มต้นใช้งานอย่างรวดเร็ว

ส่งงานก่อน หลังจากงานได้รับการยอมรับแล้ว ให้เลือกวิธีการส่งผลลัพธ์หนึ่งวิธี: สำรวจสถานะที่เอ็นด์พอยต์ของงาน หรือรับผลลัพธ์สุดท้ายผ่านเว็บฮุค

ส่งงาน

สร้างงานวิดีโอแบบอะซิงโครนัสและรับ ID งานทันที

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"
ตัวเลือกผลลัพธ์: เว็บฮุค

ส่ง 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 (ไม่บังคับ) และออบเจกต์อินพุตที่มี prompt และการตั้งค่าการสร้าง

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-videopromptduration, aspect_ratio, resolution, seedเฉพาะข้อความprompt เท่านั้น ไม่จำเป็นต้องใช้ image_urls, video_urls และ audio_urls
image-to-videoprompt + อาร์เรย์ image_urls (URL รูปภาพ 1-2 URL)duration, aspect_ratio, resolution, seedimage_urls ต้องเป็นอาร์เรย์ ระบุ URL รูปภาพ 1 URL สำหรับเฟรมแรก หรือ URL รูปภาพ 2 URL สำหรับเฟรมแรกและเฟรมสุดท้าย วิดีโอและเสียงจะถูกละเว้น
reference-to-videoprompt + รูปภาพหรือวิดีโออย่างน้อยหนึ่งรายการรูปภาพ, วิดีโอ และเสียงภายในขีดจำกัดวัสดุเสียงไม่สามารถใช้คนเดียวกับข้อความได้ เพิ่มรูปภาพหรือวิดีโออย่างน้อยหนึ่งรายการเมื่อมีเสียง
text-to-video

ใช้ text-to-video เมื่อ prompt เป็นอินพุตสร้างสรรค์เพียงอย่างเดียว

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

ใช้ image-to-video เมื่อ input.image_urls เป็นอาร์เรย์ที่มี URL รูปภาพ 1-2 URL: หนึ่ง URL กำหนดเฟรมแรก และสอง URL กำหนดเฟรมแรกและเฟรมสุดท้าย การอ้างอิงวิดีโอและเสียงจะถูกละเว้นในโหมดนี้

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 คำอธิบายด้านล่างอธิบายพฤติกรรมของแต่ละฟิลด์

ส่วนหัว (Headers)

ส่วนหัวจำเป็นคำอธิบายตัวอย่าง
Authorizationใช่Bearer API key ใช้ในการยืนยันตัวตนคำขอBearer sk_live_xxx
Content-Typeใช่คำขอเขียนทั้งหมดใช้ JSONapplication/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 รูปภาพที่สามารถเข้าถึงได้สาธารณะ สำหรับ image-to-video ให้ส่งรูปภาพ 1 รูปสำหรับเฟรมแรก หรือ 2 รูปสำหรับเฟรมแรกและเฟรมสุดท้าย สำหรับ reference-to-video ให้ส่งรูปภาพสูงสุด 9 รูปเป็นข้อมูลอ้างอิงภาพ

string[]มีเงื่อนไข[]Image-to-video: 1 หรือ 2 รูปภาพ Reference-to-video: สูงสุด 9 รูปภาพ (image-to-video) (reference-to-video)image-to-video / reference-to-video["https://.../a.jpg"]
input.video_urls

วิดีโออ้างอิงที่สามารถเข้าถึงได้สาธารณะสำหรับ reference-to-video เท่านั้น คุณสามารถส่งไฟล์วิดีโอได้สูงสุด 3 ไฟล์ และเวลาเล่นรวมกันต้องไม่เกิน 15 วินาที

string[]ไม่[]สูงสุด 3 วิดีโอ ความยาววิดีโอรวมต้องไม่เกิน 15 วินาทีreference-to-video[]
input.audio_urls

ไฟล์เสียงอ้างอิงที่สามารถเข้าถึงได้สาธารณะสำหรับ reference-to-video เท่านั้น คุณสามารถส่งไฟล์เสียงได้สูงสุด 3 ไฟล์ และเวลาเล่นรวมกันต้องไม่เกิน 15 วินาที

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 | adaptiveทั้งหมด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

Seed แบบกำหนดค่าได้ ใช้ -1 สำหรับ seed แบบสุ่ม

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 เพื่อเรียกคืนสถานะงานปัจจุบัน สำรวจสถานะไม่เกิน 1 ครั้งทุก 10 วินาที สำหรับระบบการผลิต ควรใช้เว็บฮุค

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 จะว่างเปล่า ดาวน์โหลดและจัดเก็บไฟล์ก่อนที่ช่วงเวลาที่ถูกต้องจะสิ้นสุดลง

เว็บฮุค

เมื่อมี callback_url, Seedance จะเรียกเอ็นด์พอยต์ของคุณเมื่องานเสร็จสมบูรณ์หรือล้มเหลว และส่งข้อมูล JSON ที่อธิบายผลลัพธ์สุดท้าย หากเอ็นด์พอยต์ของคุณส่งคืนการตอบสนองที่ไม่ใช่ 2xx หรือไม่ตอบสนองภายใน 15 วินาที การส่งจะถูกลองใหม่สูงสุด 5 ครั้ง การลองใหม่จะใช้ id งานเดียวกัน ดังนั้นให้ de-dupe ด้วย id ส่งคืนการตอบสนอง 200 ทันทีที่คุณบันทึกข้อมูล callback ได้อย่างปลอดภัย

การแจ้งเตือนการเสร็จสมบูรณ์ของงาน

{
  "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, de-dupe ด้วย id, อัปเดตบันทึกงานของคุณเองและตอบสนองอย่างรวดเร็ว

callback_url ต้องเป็น HTTPS และต้องไม่ชี้ไปยังเครือข่ายส่วนตัว, loopback หรือลิงก์-ท้องถิ่น

ข้อผิดพลาด

POST /v1/videos/generations และ GET /v1/tasks/:id จะส่งคืนรูปแบบข้อผิดพลาดนี้เมื่อคำขอ API เองล้มเหลว เช่น พารามิเตอร์ไม่ถูกต้อง, API key ไม่ถูกต้อง, เครดิตไม่เพียงพอ, เกินขีดจำกัดอัตรา หรือไม่พบงาน ข้อผิดพลาดบางอย่างมีฟิลด์เพิ่มเติม เช่น required, available หรือ retry_after ขึ้นอยู่กับสถานการณ์

{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this task.",
    "required": 60,
    "available": 12
  }
}
รหัสHTTPความหมายลองใหม่หรือไม่?
invalid_request400พารามิเตอร์หายไปหรือไม่ถูกต้องไม่, แก้ไขคำขอ
invalid_api_key401API key หายไป, ไม่ถูกต้อง หรือถูกเพิกถอนไม่, ใช้คีย์ที่ถูกต้อง
insufficient_credits402เครดิตไม่เพียงพอ งานไม่ได้รับการยอมรับหรือเรียกเก็บเงินหลังจากเติมเงิน
forbidden403API key ไม่มีขอบเขตที่จำเป็นไม่
not_found404ไม่มีงานนี้อยู่หรือไม่ใช่ของเจ้าของคีย์ไม่
rate_limited429อัตราคำขอเกินกำหนดใช่, ทำตาม Retry-After
internal_error500ข้อผิดพลาดของเซิร์ฟเวอร์ใช่, ลองใหม่ภายหลัง

ขีดจำกัดอัตรา (Rate limits)

มีการกำหนดขีดจำกัดอัตราต่อ API key โดยใช้หน้าต่างแบบเลื่อน การสร้างค่าเริ่มต้นคือ 60 คำขอต่อนาที; การสอบถามสถานะมีความยืดหยุ่นมากขึ้น การตอบกลับ HTTP 429 มี Retry-After

การสร้าง

60/min

การสอบถามสถานะ

ยืดหยุ่นมากขึ้น

ส่วนหัว 429

Retry-After

การเรียกเก็บเงินและเครดิต

API ใช้การจองเมื่อส่ง, การเรียกเก็บเงินเมื่อสำเร็จ และการคืนเงินเมื่อล้มเหลว หน้าการใช้งานแดชบอร์ดแสดงประวัติเครดิต API, บันทึกงาน และสถิติการใช้งานตามเวลา

จอง

มีการตรวจสอบและจองเครดิตเมื่องานได้รับการยอมรับ

เรียกเก็บเงิน

งานที่เสร็จสมบูรณ์จะชำระยอดที่จองไว้

คืนเงิน

งานที่ล้มเหลวหรือหมดเวลาจะคืนเครดิตที่จองไว้โดยอัตโนมัติ

ตรวจสอบการใช้งานในแดชบอร์ด

ดูบันทึก API, ไทม์ไลน์งาน, ประวัติเครดิต และเมตริกการใช้งานตามเวลา

บันทึก API