> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-dev.ltx.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-dev.ltx.io/_mcp/server.

# Quick Start

> Learn how to get started with the LTX API in minutes. This quick start guide walks you through setup, authentication, and your first video generation request.

## Get your API Key

Sign in to the Developer Console to create your API key.

Create API Key

## Make your first request

Video generation runs as a background job: you submit a request, check its status until it finishes, then download the video.

### 1. Submit a job

#### Request

```bash
curl -X POST https://api.ltx.io/v2/text-to-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A majestic eagle soaring through clouds at sunset",
    "model": "ltx-2-5-pro",
    "duration": 8,
    "resolution": "1920x1080"
  }'
```

The API responds with `202 Accepted` and a job ID:

```json
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "created_at": "2026-01-15T10:00:00.000Z"
}
```

### 2. Check the job status

Use the job ID to check the status:

#### Request

```bash
curl https://api.ltx.io/v2/text-to-video/YOUR_JOB_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
```

While the job runs, `status` is `pending` or `processing`. Wait at least 5 seconds between checks. When `status` is `completed`, the response includes the video URL:

```json
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "completed",
  "created_at": "2026-01-15T10:00:00.000Z",
  "completed_at": "2026-01-15T10:02:30.000Z",
  "result": {
    "video_url": "https://storage.googleapis.com/example/video.mp4"
  }
}
```

If `status` is `failed`, the `error` field explains why.

### 3. Download the video

#### Request

```bash
curl -L -o video.mp4 "VIDEO_URL"
```

Replace `VIDEO_URL` with `result.video_url` from the previous step. The URL expires, so download the video as soon as the job completes. Other endpoints may return different keys in `result`; see [Result format](/async-jobs#result-format).

> **Tip**
>
> For a complete script that submits, checks the status, and downloads in Python, TypeScript, or cURL, see [Async Jobs](/async-jobs#example).

## Image-to-Video

To animate a still image, submit to `/v2/image-to-video` and check the status at `/v2/image-to-video/YOUR_JOB_ID`. The other steps are the same.

#### Request

```bash
curl -X POST https://api.ltx.io/v2/image-to-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_uri": "YOUR_IMAGE_URI",
    "prompt": "Clouds drifting across the sky as the sun sets slowly",
    "model": "ltx-2-5-pro",
    "duration": 8,
    "resolution": "1920x1080"
  }'
```

> **Note**
>
> Replace `YOUR_IMAGE_URI` with a publicly reachable HTTPS URL to your image. You can also [upload the image](/api-documentation/api-reference/upload/create-upload) and pass the returned `ltx://` URI, or inline it as a base64 data URI — see [Input Formats](/input-formats).

## Next Steps

#### [Async Jobs](/async-jobs)

Job statuses, retention, and error handling

#### [Supported Models](/models)

Learn about available models and their capabilities

#### [API Reference](/api-documentation/api-reference)

Explore all endpoints and parameters