Skip to main content
POST
cURL
Animate a still image into a video using motion synthesis. Returns a request_id for status polling.
Prerequisite: Consult the Model Selection endpoint to identify a valid model slug and check specific limits.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Accept
enum<string>
default:application/json
required
Available options:
application/json

Body

multipart/form-data

Image to video generation parameters

prompt
string
required

The main prompt for video generation

Example:

"A beautiful sunset over mountains"

first_frame_image
file
required

Image for the first frame of video. Supported formats: JPG, JPEG, PNG, GIF, BMP, WebP. Maximum file size: 10 MB.

width
integer
required

Width of the generated video in pixels

Example:

512

height
integer
required

Height of the generated video in pixels

Example:

512

guidance
number
required

Guidance scale for the generation

Example:

7.5

steps
integer
required

Number of inference steps. The accepted range is model-specific - read info.limits.min_steps / info.limits.max_steps for your model from the Model Selection endpoint before sending the request; a value outside that range is rejected with 422. For the example model Ltxv_13B_0_9_8_Distilled_FP8 the only accepted value is 1.

Required range: x >= 1
Example:

1

frames
integer
required

Number of video frames to generate. The accepted range is model-specific - read info.limits.min_frames / info.limits.max_frames for your model from the Model Selection endpoint before sending the request; a value outside that range is rejected with 422. For the example model Ltxv_13B_0_9_8_Distilled_FP8 the allowed range is 30-120 (default 120).

Required range: x >= 1
Example:

120

fps
integer
required

FPS of generated video. The accepted range is model-specific - read info.limits.min_fps / info.limits.max_fps for your model from the Model Selection endpoint before sending the request; a value outside that range is rejected with 422. For the example model Ltxv_13B_0_9_8_Distilled_FP8 the only accepted value is 30.

Required range: x >= 1
Example:

30

seed
integer
required

Random seed for generation

Example:

42

model
string
required

The model to use for video generation. Available models can be retrieved via the GET /api/v2/models endpoint.

Example:

"Ltxv_13B_0_9_8_Distilled_FP8"

negative_prompt
string | null

Elements to avoid in the generated video

Example:

"blur, darkness, noise"

last_frame_image
file | null

Image for the last frame of video (optional). Supported formats: JPG, JPEG, PNG, GIF, BMP, WebP. Maximum file size: 10 MB.

enhance_prompt
boolean | null
default:false

When true, the prompt is boosted by the inline prompt booster before generation (async pre-step). Requires a prompt-booster guide configured for the model; the boost fee is billed on the job. Rejected with 422 if no guide exists for the model or the account balance cannot cover the boost fee.

webhook_url
string<uri> | null

Optional HTTPS URL to receive webhook notifications for job status changes (processing, completed, failed). Must be HTTPS. Max 2048 characters. See Webhook Documentation for payload structure and authentication details.

Maximum string length: 2048
Example:

"https://your-server.com/webhooks/deapi"

webhook_secret
string | null

Optional per-request HMAC secret (min. 32 chars) used to sign the webhook callback. Overrides the account-default secret for this job only. If omitted, the account-default secret signs the callback; if no secret exists at all, the callback is still delivered but UNSIGNED (empty X-DeAPI-Signature header). Requires webhook_url to also be set.

Required string length: 32 - 255
Example:

"a1b2c3d4e5f60708091a2b3c4d5e6f7081920a1b2c3d4e5f60708091a2b3c4d5"

Response

ID of the inference request.

data
object

Information from success endpoint