Skip to main content
POST
Creates one generation job. Credits are deducted at this endpoint, and the request is answered before the result is ready.
Need the list of models you can put in the model field? Get it from GET /api/v1/models. The valid parameters values also depend on the model.

Authorizations

string
required
API key formatted Bearer vg_.... You can also use the x-api-key header.

Request body

string
required
Model id from the catalog, for example seedance-2-5-flash. Spellings with dots and hyphens are treated the same. A model that exists but is currently disabled is answered 409.
string
A description of what you want created. Required except for motion control models, which may leave it empty because the server fills in a neutral instruction. Maximum 2,500 characters for motion models.The prompt passes through content filtering first; sensitive words, public figures, or indications of abuse are removed before the request is forwarded. Some models sold openly without filtering are recognizable by their id (spicy, nsfw) and are not filtered.
object
default:"{}"
Output settings. Only recognized keys are processed; other keys are ignored without an error.
array<object>
Input material: character images, products, or motion videos. Each object can be an asset from POST /api/v1/upload or a public URL.
string
Minimum 8 characters. The same key returns the existing job with 200 and idempotent: true, without a second credit deduction. Below 8 characters, your value is ignored and the server generates its own key. See Idempotency.

Responses

boolean
true on every successful response.
object
required
The job object.
object
Queue information at the moment the request was made.
boolean
Only present when the same key was already used and the original job is being returned.

What you need to know

Generation is asynchronous. 202 means the request was accepted and the queue entry is set up; you fetch the result later through the job id. The only 200 on this endpoint is an idempotent replay.
They are deducted before the job is saved. If the job fails, the cancellation fails to save, or the queue is full, the credits are refunded automatically with a refund reason recorded in the account history. You do not need to build your own refund mechanism.
Yes, as long as you use the same idempotencyKey with a length of at least 8 characters. Without it, every retry is a new job with a new charge.
Yes. A body sending watermark: false or n: 2 produces no error, but also no effect. Only model, prompt, parameters, references, and idempotencyKey are read.
Two concurrent processes (Unlimited accounts only), 50 successful videos per day, the server queue being full, or the site being under maintenance. All of them use 429 or 503.