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

# Create Video

> Use `POST /v1/video/create` to submit Jimeng asynchronous generation tasks through the unified video format.

# Create Video

The Jimeng unified video entry uses `POST /v1/video/create`, and the request body is JSON. Unlike [Jimeng video generation in OpenAI format](./generation), this API uses fields such as `images`, `aspect_ratio`, `size`, and `duration`.

* The route entry is `POST /v1/video/create`.
* Reference images are passed in as a list of URLs through the `images` array; for text-to-video, you can pass an empty array.
* A common model example is `jimeng-video-3.0`; use the model actually available in the current channel.
* After a successful submission, the task `id` and `status` are returned, and the result is polled later via [Query Task](./unified-query).

## Supported Models

* `jimeng-video-3.0`
* `jimeng-video-2.0`

## Method and Path

```http theme={null}
POST /v1/video/create
```

## Request Example

<CodeGroup>
  ```bash theme={null}
  curl -X POST https://octopusx.ai/v1/video/create \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "jimeng-video-3.0",
      "prompt": "cat fish",
      "aspect_ratio": "16:9",
      "size": "1080P",
      "images": []
    }'
  ```

  ```python theme={null}
  import requests

  resp = requests.post(
      "https://octopusx.ai/v1/video/create",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "model": "jimeng-video-3.0",
          "prompt": "cat fish",
          "aspect_ratio": "16:9",
          "size": "1080P",
          "images": [],
      },
      timeout=60,
  )
  print(resp.json())
  ```

  ```javascript theme={null}
  const response = await fetch("https://octopusx.ai/v1/video/create", {
    method: "POST",
    headers: {
      Authorization: "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "jimeng-video-3.0",
      prompt: "cat fish",
      aspect_ratio: "16:9",
      size: "1080P",
      images: [],
    }),
  });

  console.log(await response.json());
  ```
</CodeGroup>

## Response Example

<ResponseExample>
  ```json 200 theme={null}
  {
    "created_at": "2025-11-08T23:07:57.510141923+08:00",
    "status": "processing",
    "task_id": "48038932-0ff5-4251-8b4b-7a76c09fd114"
  }
  ```
</ResponseExample>

## Authentication

```http theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Body

<ParamField body="model" type="string" required>
  Model name, for example `jimeng-video-3.0`.
</ParamField>

<ParamField body="prompt" type="string" required>
  Prompt. The text description for video generation, supporting both Chinese and English.
</ParamField>

<ParamField body="images" type="array<string>" required>
  List of image URLs. Pass `[]` for text-to-video, 1 image for first-frame-to-video, or 2 images for first-and-last-frame-to-video. Supports image URLs, with image formats including png, jpeg, jpg, and webp.
</ParamField>

<ParamField body="aspect_ratio" type="string" required>
  Aspect ratio. Available values include `16:9`, `4:3`, `1:1`, `3:4`, `9:16`, and `21:9`.
</ParamField>

<ParamField body="size" type="string" required>
  Video size. Available values include `720P` and `1080P`.
</ParamField>

## Response

<ResponseField name="created_at" type="string">
  Creation time (ISO 8601 format).
</ResponseField>

<ResponseField name="status" type="string">
  Task status. Common values include `processing`, `failed`, and `completed`.
</ResponseField>

<ResponseField name="task_id" type="string">
  Task ID, passed as the `id` parameter in subsequent queries.
</ResponseField>

## Related APIs

* [Jimeng Video Overview](./overview)
* [Query Task](./unified-query)
* [Jimeng Video Generation (OpenAI Format)](./generation)
