Submit video generation request

POST/v1/videos

Submit a normalized video generation request and create an asynchronous task. The API infers the generation workflow from frame_images and input_references roles. The response contains a video task id; poll that id with GET /v1/videos/{video_id} to check generation status and retrieve the final result.

To receive a webhook when the task reaches a terminal state, provide the optional callback_url field. See Webhook for delivery behavior, retries, and payload details.

Authentication

Authorization Bearer

API key as bearer token in Authorization header.

Request Body

modelstringrequired

Video model ID.

Example: "seedance-2.0"

promptstringrequired

Text description of the video to generate.

durationinteger

Generated video duration in seconds, when supported by the selected model.

resolutionenum<string>

Resolution enum when supported.

Available options: 360p 480p 540p 720p 1080p 1K 2K 4K

aspect_ratioenum<string>

Output aspect ratio when supported by the selected model.

Available options: adaptive 16:9 9:16 1:1 4:3 3:4 21:9 9:21

generate_audioboolean

Whether to generate audio alongside the video when supported.

seedinteger

Random seed when supported by the selected model.

watermarkboolean

Whether to include a watermark when supported.

return_last_frameboolean

Whether to return the generated video's last frame image when supported.

execution_expires_afterinteger

Provider execution expiration threshold in seconds when supported.

safety_identifierstring

Provider safety or audit identifier when supported.

callback_urlstring

HTTPS URL that receives a webhook when the video task reaches a terminal state.

metadataobject

Arbitrary key/value metadata stored with the task.

Response

idstring

Video task ID.

objectstring

Always video.

statusenum<string>

Task status.

Available options: queued in_progress completed failed

modelstring

Model used.

promptstring

Input prompt.

created_atinteger

Unix timestamp.

parametersobject

Normalized task parameters.

contentobject

Additional generated assets when returned by the provider.

content.last_frame_urlstring

Last-frame image URL when return_last_frame=true and the provider returns it.

Request

Shell
1curl -X POST https://api.token360.ai/v1/videos \
2  -H "Authorization: Bearer sk-your-api-key" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "model": "seedance-2.0",
6    "prompt": "A serene Japanese garden with cherry blossoms falling into a koi pond",
7    "resolution": "720p",
8    "duration": 8,
9    "aspect_ratio": "16:9",
10    "generate_audio": false,
11    "return_last_frame": false,
12    "execution_expires_after": 172800,
13    "safety_identifier": "user_123"
14  }'

Response

JSON
1{
2  "id": "your-video-id",
3  "object": "video",
4  "status": "queued",
5  "model": "seedance-2.0",
6  "prompt": "A serene Japanese garden with cherry blossoms falling into a koi pond",
7  "created_at": 1776351975,
8  "parameters": {
9    "resolution": "720p",
10    "duration": 8,
11    "aspect_ratio": "16:9",
12    "generate_audio": false,
13    "return_last_frame": false,
14    "execution_expires_after": 172800,
15    "safety_identifier": "user_123"
16  }
17}
Was this page helpful?