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

# Crear una edición de video con xAI

> Usa POST /grok/v1/videos/edits para editar un video de origen con un prompt de texto, conservar el movimiento y obtener un request_id para consultar resultados asíncronos.

Usa este endpoint para editar un MP4 existente con una instrucción de texto. La salida se mantiene más cercana al ritmo y la composición del clip de origen que una solicitud de generación desde cero.

## Antes de enviar la solicitud

* Proporciona un `video.url` accesible
* Mantén el clip de origen corto; la propia guía de xAI limita las ediciones a unos 8.7 segundos
* Usa una instrucción precisa que describa un único cambio claro
* Guarda el `request_id` devuelto, porque las ediciones usan el mismo flujo de consulta que la generación

## Flujo de edición

<Steps>
  <Step title="Envía la solicitud de edición">
    Envía la URL del video de origen, el prompt de edición y `model: grok-imagine-video`.
  </Step>

  <Step title="Consulta el resultado final">
    Llama a [Get xAI video results](./get-video-generation-results) hasta que el trabajo haya finalizado.
  </Step>

  <Step title="Almacena el recurso editado">
    Descarga la salida terminada o mueve la URL devuelta a tu propio flujo de almacenamiento.
  </Step>
</Steps>

## Qué cambia en CometAPI

xAI documenta la edición de video con el mismo ciclo de vida asíncrono que la generación, solo que con un video de origen en lugar de una imagen de origen opcional. CometAPI mantiene ese comportamiento y el mismo endpoint de consulta, así que tu flujo de edición sigue siendo start -> poll -> download.


## OpenAPI

````yaml api/openapi/video/xai/post-video-edit.openapi.json POST /grok/v1/videos/edits
openapi: 3.1.0
info:
  title: Video Edit API
  version: 1.0.0
  description: >-
    Create an asynchronous xAI Grok video edit job from an existing source
    video.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /grok/v1/videos/edits:
    post:
      summary: Create an xAI video edit job
      description: >-
        Start a Grok video editing job from a source MP4 and a natural-language
        edit instruction. Poll the same query endpoint used by video generation.
      operationId: video_edit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - prompt
                - video
              properties:
                prompt:
                  type: string
                  description: Edit instruction describing the change you want.
                  example: Add snow to the scene.
                model:
                  type: string
                  description: xAI video model id.
                  default: grok-imagine-video
                  example: grok-imagine-video
                video:
                  type: object
                  required:
                    - url
                  properties:
                    url:
                      type: string
                      description: Reachable source MP4 URL.
                  description: >-
                    Source video to edit. xAI documents an input limit of about
                    8.7 seconds.
                output:
                  type: object
                  description: Optional output delivery configuration.
                user:
                  type: string
                  description: Optional end-user identifier.
              default:
                prompt: Add snow to the scene.
                model: grok-imagine-video
                video:
                  url: https://example.com/source.mp4
            examples:
              Edit request:
                summary: Edit request
                value:
                  prompt: Add snow to the scene.
                  video:
                    url: https://example.com/source.mp4
                  model: grok-imagine-video
      responses:
        '200':
          description: Request accepted.
          content:
            application/json:
              schema:
                type: object
                required:
                  - request_id
                properties:
                  request_id:
                    type: string
                    description: Deferred request id used for polling.
                example:
                  request_id: e55813f7-911f-cfa8-208c-9c8e693b4d38
              example:
                request_id: <request_id>
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl https://api.cometapi.com/grok/v1/videos/edits \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -H "Content-Type: application/json" \
              -d '{
                "model": "grok-imagine-video",
                "prompt": "Add snow to the scene.",
                "video": {"url": "https://your-video-host/source.mp4"}
              }'
        - lang: Python
          label: Default
          source: |
            import os
            import requests

            response = requests.post(
                "https://api.cometapi.com/grok/v1/videos/edits",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                json={
                    "model": "grok-imagine-video",
                    "prompt": "Add snow to the scene.",
                    "video": {"url": "https://your-video-host/source.mp4"},
                },
            )

            task = response.json()
            print(task["request_id"])  # poll GET /grok/v1/videos/{request_id}
        - lang: JavaScript
          label: Default
          source: >
            const response = await
            fetch("https://api.cometapi.com/grok/v1/videos/edits", {
                method: "POST",
                headers: {
                    Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
                    "Content-Type": "application/json",
                },
                body: JSON.stringify({
                    model: "grok-imagine-video",
                    prompt: "Add snow to the scene.",
                    video: { url: "https://your-video-host/source.mp4" },
                }),
            });


            const task = await response.json();

            console.log(task.request_id); // poll GET
            /grok/v1/videos/{request_id}
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Use your CometAPI key.

````