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 is paid from your workspace’s credits. A seedance video is priced per second by model and resolution, from 2 credits a second (mini, 480p) to 20 (standard, 1080p); the default, 5 seconds of mini at 720p, costs 20. An image-text-slides video costs 20. Every price is on Credits.
  • Subscriptions started before 23 October 2026 keep the credits and prices they started with, and their seedance default is 8 seconds of fast at 720p.
  • A video that fails gives its credits 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 credits balance is 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 key, 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 a 5-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 October 27, 2026