> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modelslab.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Text to Video

> This endpoint generates a video from a text prompt using the LTX 2.3 model.

> [!WARNING]
>
> Make sure you add your [s3 details](https://docs.modelslab.com/enterprise-api/general/update-s3-details.mdx) for the `ltx_2_3` server, so you can receive the video generated in your bucket.
> Videos generated without s3 details being added will be deleted after **24 hours**.

The prompt is the only thing this endpoint has to work from, so it is required. Frame size comes
from `resolution`, which is an **aspect ratio** (`1:1`, `16:9` or `9:16`) rather than a pixel value.

## Request

Make a `POST` request to below endpoint and pass the required parameters as a request body.

```curl curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
--request POST 'https://modelslab.com/api/v1/enterprise/ltx_2_3/text2video' \
```

## Body

```json json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "key": "enterprise_api_key",
  "prompt": "a lone astronaut walking across a red dune at sunset, cinematic wide shot",
  "resolution": "16:9",
  "duration": 5,
  "num_frames": 81,
  "num_inference_steps": 4,
  "output_type": "mp4",
  "seed": null,
  "watermark": "no",
  "instant_response": false,
  "temp": false,
  "base64": false,
  "webhook": null,
  "track_id": null
}
```

## Body Attributes

**key** `string` *required*

Your API Key used for request authorization.

**prompt** `string` *required*

Text prompt with a description of the things you want in the video to be generated. The prompt is the only thing this endpoint has to work from, so it is required.

**resolution** `string` (default: 16:9)

Aspect ratio of the generated video, **not** a pixel size. **options**: `1:1`, `16:9` or `9:16`. Any other value is refused.

**duration** `number` (default: 5)

Length of the generated video in seconds. Minimum is `5`, maximum is `12`.

**num\_frames** `number` (default: 81)

The number of frames in the generated video. Maximum is `81`, which is also the default.

**num\_inference\_steps** `number` (default: 4)

Number of denoising steps. LTX 2.3 is distilled to generate in **4** steps, so raising this costs time without adding much detail. Minimum is `1`, maximum is `50`.

**output\_type** `string` (default: mp4)

Format of the generated video. **options**: `mp4` or `gif`.

**model\_id** `string`

Optional model identifier forwarded to your server. Your LTX 2.3 container serves one model, so this can be left out.

**seed** `number`

Seed is used to reproduce results. The same seed will give you the same video again. Pass *null* for a random number.

**watermark** `string` (default: no)

Whether to watermark the generated video. **options**: `yes` or `no`.

**instant\_response** `boolean` (default: false)

Queue response instantly before processing finishes instead of waiting a minimum amount of time. **default**: `false`, **options**: `true` or `false`.

**temp** `boolean` (default: false)

If true, stores the video in temporary storage which is cleaned every 24 hours. **default**: `false`, **options**: `true` or `false`.

**base64** `boolean` (default: false)

Set to `true` when you are sending or expecting base64 rather than URLs. **default**: `false`, **options**: `true` or `false`.

**webhook** `string`

Set a URL to get a POST API call once the video generation is complete.

**track\_id** `string`

This ID is returned in the response to the webhook API call. This will be used to identify the webhook request.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.