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

# Video API Overview

> Choose a video family and distinguish shared asynchronous endpoints from the Kling native workflow.

Choose a video family below for its request schema and examples. Most families use the shared asynchronous endpoints; Kling uses separate native endpoints and task queries, with a different response structure.

## Video Families

| Family | Parameter reference | Request structure |
| - | - | - |
| Seedance | [Seedance](/api-reference/endpoint/seedance) | `model`, `prompt`, `asset` plus `metadata` for every vendor generation field. |
| Doubao | [Doubao](/api-reference/endpoint/doubao) | `doubao-seedance-*` routes; top-level `model`/`prompt`/`asset`, provider fields in `metadata`. |
| Dreamina | [Dreamina](/api-reference/endpoint/dreamina) | `dreamina-seedance-*` routes; top-level `model`/`prompt`/`asset`, provider fields in `metadata`. |
| Google Veo | [Veo](/api-reference/endpoint/veo) | Top-level `model`/`prompt`; flat `metadata.durationSeconds`, `metadata.aspectRatio`, etc. |
| MiniMax H3 | [MiniMax H3](/api-reference/endpoint/minimax-h3) | Top-level `model`/`prompt`; H3 fields under `metadata.content`, `metadata.resolution`, `metadata.duration`, `metadata.ratio`. |
| Wan | [Wan](/api-reference/endpoint/wan) | Root model; native input and parameters nested inside metadata. |
| Kling | [Kling Native API](/api-reference/endpoint/kling) | Use /kling/...; model in the path, native settings/options/contents, no metadata. |
| OpenAI Sora 2 | [Sora 2](/model-api/openai/sora-2) | See its dedicated model page and download endpoint. |
| Gemini Omni | [Gemini Omni](/model-api/google/gemini-omni-1.1-flash) | See its dedicated model page; do not reuse Veo generation fields. |

## Endpoints and Authentication

| Action | Method and URL |
| - | - |
| Create task | `POST https://api.mixroute.ai/v1/video/generations` |
| Query task | `GET https://api.mixroute.ai/v1/video/generations/{task_id}` |
| Sora download | `GET https://api.mixroute.ai/v1/video/generations/download?id={task_id}` |

The shared endpoints above and workflow below do not apply to Kling. For Kling, store submission `data.id` and use [Query Kling Task](/api-reference/endpoint/kling-tasks) to read succeeded and outputs\[].url.

```http theme={null}
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

Use the exact `model` identifier from your account's [Model Marketplace](https://console.mixroute.ai/models) or [List Models](/api-reference/endpoint/list-models). A vendor release alone does not imply MixRoute access.

## Workflow

1. Select a family page and construct that model's request.
2. Submit it and retain the MixRoute `task_id` (some routes also return `id`).
3. Use [Query Video Task](/api-reference/endpoint/query-video-task) until success or a terminal failure. Submission success does not mean the video has finished.
4. Read the result URL returned for your route. Use [Download Video](/api-reference/endpoint/download-video) for Sora routes that require the separate download endpoint.

## Submission Response

Illustrative gateway response:

```json theme={null}
{
  "task_id": "TASK_ID",
  "id": "TASK_ID",
  "object": "video",
  "model": "dreamina-seedance-2-0-260128",
  "status": "queued"
}
```

<Note>
  Keep the submitted task ID rather than substituting an upstream operation name or file ID. A timeout after submission is not proof that no task was created; check the console before resubmitting to avoid duplicate paid tasks.
</Note>


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