> ## 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.

# Video Remix

> Use `POST /v1/video/remix` to submit remix requests for existing Grok tasks through the unified video format.

# Video Remix

The Grok unified video remix endpoint is `POST /v1/video/remix`. Unlike [OpenAI-format Video Remix](./remix), the original task ID is passed in the Body via `task_id` instead of a path parameter.

* The route endpoint is `POST /v1/video/remix`.
* Required fields: `model`, `prompt`, `size`, `aspect_ratio`, `task_id`.
* After submission succeeds, poll the newly returned `id` using [Query Task](./unified-query).

## Method and Path

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

## Request Example

<CodeGroup>
  ```bash theme={null}
  curl -X POST https://octopusx.ai/v1/video/remix \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{
      "model": "grok-video-3",
      "prompt": "play with another white cat",
      "aspect_ratio": "3:2",
      "size": "1080P",
      "task_id": "grok:48a67431-0708-46d1-9ab9-83cb84700153"
    }'
  ```

  ```python theme={null}
  import requests

  resp = requests.post(
      "https://octopusx.ai/v1/video/remix",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
          "Accept": "application/json",
      },
      json={
          "model": "grok-video-3",
          "prompt": "play with another white cat",
          "aspect_ratio": "3:2",
          "size": "1080P",
          "task_id": "grok:48a67431-0708-46d1-9ab9-83cb84700153",
      },
      timeout=60,
  )
  print(resp.json())
  ```

  ```javascript theme={null}
  const response = await fetch("https://octopusx.ai/v1/video/remix", {
    method: "POST",
    headers: {
      Authorization: "Bearer YOUR_API_KEY",
      "Content-Type": "application/json",
      Accept: "application/json",
    },
    body: JSON.stringify({
      model: "grok-video-3",
      prompt: "play with another white cat",
      aspect_ratio: "3:2",
      size: "1080P",
      task_id: "grok:48a67431-0708-46d1-9ab9-83cb84700153",
    }),
  });

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

## Response Example

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "grok:48a67431-0708-46d1-9ab9-83cb84700153",
    "status": "processing",
    "status_update_time": 1762685256
  }
  ```
</ResponseExample>

## Authentication

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

## Body

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

<ParamField body="prompt" type="string" required>
  Remix prompt.
</ParamField>

<ParamField body="size" type="string" required>
  Resolution specification, pass `720P` or `1080P`.
</ParamField>

<ParamField body="aspect_ratio" type="string" required>
  Video ratio, optional values: `2:3`, `3:2`, `1:1`.
</ParamField>

<ParamField body="task_id" type="string" required>
  Original video task ID, matching the `id` returned by [Create Video](./unified-generation) or [Query Task](./unified-query).
</ParamField>

<ParamField body="parent_post_id" type="string">
  Upstream post ID. Appears in some Apifox examples; not a required schema field. Pass it if needed.
</ParamField>

## Response

<ResponseField name="id" type="string">
  New remix task ID.
</ResponseField>

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

<ResponseField name="status_update_time" type="integer">
  Most recent status update time (Unix timestamp).
</ResponseField>

## Related APIs

* [Grok Video Overview](./overview)
* [Create Video](./unified-generation)
* [Video Extend (Unified Video)](./unified-extend)
* [Video Extensions (Unified Video)](./unified-extensions)
* [Query Task](./unified-query)
* [Video Remix (OpenAI Format)](./remix)
