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.5",
"content": [
{"type": "text", "text": "黄昏霓虹屋顶上的电影感无人机镜头,10 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 4
}'import os
import requests
payload = {
"model": "seedance-2.5",
"content": [
{"type": "text", "text": "黄昏霓虹屋顶上的电影感无人机镜头,10 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 4,
}
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.5\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"黄昏霓虹屋顶上的电影感无人机镜头,10 秒。\"\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.5',
content: [{type: 'text', text: '黄昏霓虹屋顶上的电影感无人机镜头,10 秒。'}]
})
};
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.5"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Seedance 2.5 (Ark-Compatible)
Create Seedance 2.5 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.5",
"content": [
{"type": "text", "text": "黄昏霓虹屋顶上的电影感无人机镜头,10 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 4
}'import os
import requests
payload = {
"model": "seedance-2.5",
"content": [
{"type": "text", "text": "黄昏霓虹屋顶上的电影感无人机镜头,10 秒。"}
],
"resolution": "720p",
"ratio": "adaptive",
"duration": 4,
}
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.5\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": \"黄昏霓虹屋顶上的电影感无人机镜头,10 秒。\"\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.5',
content: [{type: 'text', text: '黄昏霓虹屋顶上的电影感无人机镜头,10 秒。'}]
})
};
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.5"
}{
"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.5"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: 30 images / 10 videos / 10 audios.
Show child attributes
Show child attributes
Video resolution. Supported values depend on the model.
480p, 720p, 1080p 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 30, default 4.
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 Whether to generate synchronized audio.
Was this page helpful?