---
title: "Generate video from text"
method: POST
path: "/v2/text-to-video"
tags: ["asyncVideoGeneration"]
---

# Generate video from text

`POST /v2/text-to-video`

Generate a video from a text prompt. Describe the scene, camera motion, and mood — the model returns a video with matching audio.

Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/text-to-video/{id}` until the status is `completed`, then download from `result.video_url`.

Billed per second of generated video. See [Pricing](/pricing).

## Headers

- `Authorization` string, required

## Request body

- TextToVideoRequest
  - `prompt` string, required — Text prompt describing the desired video content
  - `model` 'ltx-2-3-fast' | 'ltx-2-3-pro' | 'ltx-2-5-fast' | 'ltx-2-5-pro', required — Model to use for generation. See [Supported Models](/models) for details.
  - `duration` integer, nullable, required — Video duration in seconds. See [Supported Models](/models) for available durations per model. Pass `null` to let `ltx-2-5-fast` or `ltx-2-5-pro` choose the length from your prompt — see [Automatic duration](/models/ltx-2-5#automatic-duration).
  - `fps` integer — Frame rate in frames per second. See [Supported Models](/models) for available FPS per model and resolution.
  - `resolution` string, required — Output video resolution. See [Supported Models](/models) for available resolutions per model.
  - `generate_audio` boolean — Generate audio for the video. When true, the generated video will include AI-generated audio matching the scene. When false, only silent video is generated.
  - `camera_motion` 'dolly_in' | 'dolly_out' | 'dolly_left' | 'dolly_right' | 'jib_up' | 'jib_down' | 'static' | 'focus_shift' — Apply camera motion effects to the generated video.

## Response `202`

Job submitted successfully

- V2JobCreatedResponse — Response returned when a V2 async job is successfully submitted.
  - `id` string, required — Unique job identifier. Use this to poll for status.
  - `created_at` string, date-time, required — ISO 8601 timestamp of when the job was created.

## Other responses

- `400` — The request is invalid or malformed
- `401` — Authentication failed
- `402` — Insufficient credits
- `422` — Content rejected by safety filters
- `429` — Concurrency or queue limit exceeded
- `500` — An unexpected error occurred
- `503` — Service temporarily unavailable

---

[API](https://skmtc.dev/ltx/apis/api-reference.md) · [All operations](https://skmtc.dev/ltx/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ltx/api-reference/revisions/6ad7c87b252c/schema)
