Skip to main content
POST
Pick a generator in type, a shape in output, and send the generator’s inputs in customParams. The request stays open until the video is ready, which takes minutes, and answers with the stored file.
The answer has the same shape as Upload a file, with status already ready. Put its id and path in a post’s image array as they are: there is nothing to poll.

The generators

output is vertical (9:16) for Reels, Stories, TikTok and Shorts, or horizontal (16:9) for a feed post. An Image Text Slides video is 1080 × 1920 or 1920 × 1080.

How long it takes

A video takes a few minutes. Seedance gives up after about 30 minutes and answers 500. Set your HTTP client’s timeout above that. If the connection closes before the answer, the video is still made and saved: find it in the app’s media library.

Credits and the free trial

  • Each video uses one of your plan’s AI videos for the month. The count starts again on the day of the month your subscription started. How many each plan has is on Plans and limits.
  • A video that fails gives its credit back. A request refused with 400, 402 or 406 uses none.
  • During the free trial, seedance answers 406. image-text-slides works. See Free trial.
This endpoint has no hourly limit. Your monthly credits are the limit.

If it fails

Agents connected over MCP start the same video as a job and poll it, so nothing waits on an open connection: see generateVideoTool.

Authorizations

Authorization
string
header
required

Your API key from Connections > API Keys, or an OAuth access token (pos_...). Send it as it is, with no Bearer prefix.

Body

application/json
type
enum<string>
required

The generator. seedance makes an 8-second clip with sound, image-text-slides a narrated slideshow

Available options:
seedance,
image-text-slides
output
enum<string>
required

vertical (9:16) for Reels, Stories, TikTok and Shorts; horizontal (16:9) for a feed post

Available options:
vertical,
horizontal
customParams
seedance · object
required

The generator's inputs

Response

The video, saved in the media library

id
string

Unique file ID

name
string

Stored file name

originalName
string | null

The name the file was uploaded under

path
string

URL of the stored file. Send it with id as a post's media

thumbnail
string | null

Thumbnail URL, set for video

alt
string | null

Alt text, when one was set

status
enum<string>

A video (MP4 or MOV) is normalized in the background and starts as processing; poll GET /media/{id}/status until it is ready before you put it on a post. Images are ready at once.

Available options:
ready,
processing,
failed
Last modified on September 23, 2026