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

> Use `POST /v1/videos/extensions` to extend a segment of a specified Grok video task.

# Video Extensions

The OpenAI format shares the `POST /v1/videos/extensions` path with Unified Video. For an explanation of the Unified Video flow, see [Video Extensions (Unified Video)](./unified-extensions).

Use `POST /v1/videos/extensions` to extend a specified segment of an existing video task; pass the original task ID in `video.url` in the Body.

* The route entry is `POST /v1/videos/extensions`.
* Required fields: `model`, `prompt`, `video`, `start_time`.
* Set `video.url` to the original video task ID, for example `grok:f673ba58-b053-4d8d-8938-c0b429de4d7f`.

## Method and Path

```http theme={null}
POST /v1/videos/extensions
```

## Request Example

<CodeGroup>
  ```bash theme={null}
  curl -X POST https://octopusx.ai/v1/videos/extensions \
    -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",
      "duration": 6,
      "start_time": 4,
      "video": {
        "url": "grok:f673ba58-b053-4d8d-8938-c0b429de4d7f"
      }
    }'
  ```

  ```python theme={null}
  import requests

  resp = requests.post(
      "https://octopusx.ai/v1/videos/extensions",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
          "Accept": "application/json",
      },
      json={
          "model": "grok-video-3",
          "prompt": "play with another white cat",
          "duration": 6,
          "start_time": 4,
          "video": {"url": "grok:f673ba58-b053-4d8d-8938-c0b429de4d7f"},
      },
      timeout=60,
  )
  print(resp.json())
  ```

  ```javascript theme={null}
  const response = await fetch("https://octopusx.ai/v1/videos/extensions", {
    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",
      duration: 6,
      start_time: 4,
      video: { url: "grok:f673ba58-b053-4d8d-8938-c0b429de4d7f" },
    }),
  });

  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>
  Prompt for the extension segment.
</ParamField>

<ParamField body="video" type="object" required>
  Reference to the original video. Currently requires the `url` field.
</ParamField>

<ParamField body="video.url" type="string" required>
  Original video task ID (not a playable HTTP link), for example `grok:f673ba58-b053-4d8d-8938-c0b429de4d7f`.
</ParamField>

<ParamField body="start_time" type="integer" required>
  Segment start time (seconds); extend from this timestamp in the original video.
</ParamField>

<ParamField body="duration" type="integer">
  Target duration after extension (seconds). Default is `10`; supports `6`, `10`, and `15`.
</ParamField>

## Response

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

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

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

## Difference Between Extend and Extensions

| Item             | Video Extend                                 | Video Extensions                                                   |
| ---------------- | -------------------------------------------- | ------------------------------------------------------------------ |
| Path             | `POST /v1/videos/{video_id}/extend`          | `POST /v1/videos/extensions`                                       |
| Original task ID | Path parameter `video_id`                    | Body `video.url`                                                   |
| Typical scenario | Extend based on the path-bound original task | Independent entry point, suitable for batch or orchestration calls |

## Related APIs

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