Skip to main content
POST
Create video generation task
This endpoint speaks the Volcano Ark (火山方舟) video task dialect. Code written against ark.cn-beijing.volces.com works as-is: point the base URL at https://api.apipod.ai/api/v3, swap in an APIPod API key, and keep the request body unchanged. Authentication uses the same Authorization: Bearer <key> header as Ark.

One model name, every scenario

Unlike the Ark console, you do not pick separate endpoint IDs per capability. All-in-one model IDs such as seedance-2.5 and seedance-2.0-fast cover every scenario: the task type is inferred from the content array — text only is text-to-video, 1–2 frame images are image-to-video, and reference images, videos, or audios are omni reference generation. The three scenarios are mutually exclusive; mixing frame images with reference media is rejected with a 400 error. Un-roled images are frames, so more than two un-roled images are treated as reference images.

Model names

The model field accepts all of the following, case-insensitively:

Parameters

Resolution, ratio, duration, seed, generate_audio, camera_fixed, watermark, return_last_frame, and tools: [{"type": "web_search"}] are passed through to the model. Supported values depend on the model; unsupported combinations fail validation exactly like the native /v1/videos/generations endpoint. A few Ark parameters are accepted but ignored because the platform does not map them: service_tier, priority, execution_expires_after, safety_identifier, output_format, draft, and omni_reference_task_type. The frames parameter is rejected with a 400 error — use duration instead.

Callbacks

Set callback_url to receive a POST when the task reaches a terminal state. The callback body is a task object identical in shape to the query endpoint response, so the same parsing code handles both. See Webhooks for delivery and retry behavior of the native callback format used by other endpoints. After creating a task, poll Query video task (Ark-compatible) with the returned id.

Authorizations

Authorization
string
header
required

Use your APIPod API key as a Bearer token in the Authorization header.

Body

application/json
model
string
required

Model name. Accepts APIPod public names (seedance-2.5, seedance-2.0, seedance-2.0-fast, seedance-2.0-mini, and lite variants), Volcano native names with a trailing version (doubao-seedance-2-5-260128), and names that already carry a scenario suffix (seedance-2.5-i2v).

Example:

"seedance-2.5"

content
object[]
required

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 and cannot be mixed.

Example:
resolution
enum<string>

Video resolution. Supported values depend on the model.

Available options:
480p,
720p,
1080p,
4k
ratio
enum<string>

Aspect ratio of the output video.

Available options:
16:9,
4:3,
1:1,
3:4,
9:16,
21:9,
adaptive
duration
integer

Video duration in seconds. Use -1 for smart selection where the model supports it.

seed
integer

Random seed. Supported by a subset of models.

generate_audio
boolean

Whether to generate synchronized audio. Supported by a subset of models.

camera_fixed
boolean

Whether to fix the camera. Supported by a subset of models.

watermark
boolean

Whether to render an AI-generated watermark. Supported by a subset of models.

return_last_frame
boolean

Whether to also return the last frame as an image.

callback_url
string

Webhook URL. On terminal states APIPod POSTs a task object identical in shape to the query endpoint response.

tools
object[]

Tool configuration. Only web_search is recognized, for models that support it.

Response

Task created

id
string
required

Asynchronous task ID. Poll the query endpoint with this value.

model
string
required

Public model family name used for this task.