curl https://api.apipod.ai/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"content": [
{"type": "text", "text": "暖光下缓缓推近一碗冒热气的拉面,8 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 5
}'import os
import requests
payload = {
"model": "seedance-2.0",
"content": [
{"type": "text", "text": "暖光下缓缓推近一碗冒热气的拉面,8 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 5,
}
response = requests.post(
"https://api.apipod.ai/api/v3/contents/generations/tasks",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apipod.ai/api/v3/contents/generations/tasks"
payload := strings.NewReader("{\n \"model\": \"seedance-2.0\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"暖光下缓缓推近一碗冒热气的拉面,8 秒。\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}falseconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'seedance-2.0', content: [{type: 'text', text: '暖光下缓缓推近一碗冒热气的拉面,8 秒。'}]})
};
fetch('https://api.apipod.ai/api/v3/contents/generations/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "0f4c9f6e-1111-4c1d-8c2f-2b7b9a1c4d55",
"model": "seedance-2.0"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Seedance 2.0 (Ark-Compatible)
Create Seedance 2.0 video tasks through the Volcano Ark-compatible endpoint at /api/v3/contents/generations/tasks, with the scenario inferred from the content array.
curl https://api.apipod.ai/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"content": [
{"type": "text", "text": "暖光下缓缓推近一碗冒热气的拉面,8 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 5
}'import os
import requests
payload = {
"model": "seedance-2.0",
"content": [
{"type": "text", "text": "暖光下缓缓推近一碗冒热气的拉面,8 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 5,
}
response = requests.post(
"https://api.apipod.ai/api/v3/contents/generations/tasks",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apipod.ai/api/v3/contents/generations/tasks"
payload := strings.NewReader("{\n \"model\": \"seedance-2.0\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"暖光下缓缓推近一碗冒热气的拉面,8 秒。\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}falseconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model: 'seedance-2.0', content: [{type: 'text', text: '暖光下缓缓推近一碗冒热气的拉面,8 秒。'}]})
};
fetch('https://api.apipod.ai/api/v3/contents/generations/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "0f4c9f6e-1111-4c1d-8c2f-2b7b9a1c4d55",
"model": "seedance-2.0"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}https://api.apipod.ai/api/v3 and keep the request body identical to the Volcano official API. Poll tasks with the Ark-compatible query endpoint.Authorizations
Use your APIPod API key as a Bearer token in the Authorization header.
Body
Public APIPod model ID (all-in-one; the scenario is inferred from the content array).
"seedance-2.0"Input content list. Text is the prompt. Images without a role, or with role first_frame/last_frame (max 2), drive image-to-video; images with role reference_image, videos, and audios drive omni reference generation. Scenarios are mutually exclusive. Reference limits: 9 images / 3 videos / 3 audios.
Show child attributes
Show child attributes
Video resolution. Supported values depend on the model.
480p, 720p, 1080p, 4k Aspect ratio of the output video.
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Video duration in seconds, from 4 to 15, default 5.
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Whether to generate synchronized audio.
Tool configuration. Only web_search is recognized.
Show child attributes
Show child attributes
Was this page helpful?