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

# Hent xAI-videoresultater

> Bruk GET /grok/v1/videos/{request_id} til å hente status for xAI-videogenerering og hente den endelige video-URL-en når behandlingen er fullført.

Bruk dette endepunktet etter at du allerede har en `request_id`. Det forteller deg om xAI-jobben fortsatt kjører og returnerer de endelige videometadataene når de er klare.

## Kontroller disse feltene først

* `request_id` når oppgaven er godtatt, men resultatet ennå ikke er klart
* `status` for tilstanden til xAI-jobben; fortsett å hente status mens den er `pending`, og stopp ved `done`, `failed` eller `expired`
* `progress` for fullføringsprosent når den returneres
* `video.url` når renderingen er fullført

## Løkke for statushenting

<Steps>
  <Step title="Opprett eller rediger videoen først">
    Start med [Opprett en xAI-video](./video-generation) eller [Opprett en redigering av en xAI-video](./video-edit), og kopier deretter den returnerte `request_id`.
  </Step>

  <Step title="Hent status til oppgaven når en endelig tilstand">
    Hvis svaret bare gjentar `request_id`, venter du noen sekunder og henter status på nytt. Fortsett mens `status` er `pending`; stopp ved `done`, `failed` eller `expired`.
  </Step>

  <Step title="Lagre den fullførte filen">
    Last ned eller kopier den endelige `video.url` raskt, fordi xAI dokumenterer genererte URL-er som midlertidige.
  </Step>
</Steps>


## OpenAPI

````yaml api/openapi/video/xai/get-get-video-generation-results.openapi.json GET /grok/v1/videos/{request_id}
openapi: 3.1.0
info:
  title: Get Video Generation Results API
  version: 1.0.0
  description: >-
    Query an xAI Grok video job created through CometAPI and read the final
    temporary video URL when the job is complete.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /grok/v1/videos/{request_id}:
    get:
      summary: Query a Grok video job
      description: >-
        Use the `request_id` from a generation or edit request to query the
        top-level task status. The final video URL is temporary.
      operationId: get_video_generation_results
      parameters:
        - name: request_id
          in: path
          required: true
          description: The deferred request ID returned by the create or edit endpoint.
          schema:
            type: string
      responses:
        '200':
          description: The current Grok video task state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_id:
                    type: string
                    description: >-
                      Returned when the request is accepted but result metadata
                      is not ready yet.
                  model:
                    type: string
                    description: The Grok video model ID.
                  video:
                    type: object
                    description: >-
                      Generated video metadata. Present when the job has
                      completed.
                    properties:
                      url:
                        type: string
                        description: Temporary URL for the generated MP4.
                      duration:
                        type: integer
                        description: Video duration in seconds.
                      respect_moderation:
                        type: boolean
                        description: Moderation flag returned with the video.
                  status:
                    type: string
                    description: The job state. `done` means the video metadata is ready.
                    enum:
                      - pending
                      - done
                      - failed
                      - expired
                  progress:
                    type: integer
                    description: Completion percentage when returned.
                  usage:
                    type: object
                    description: >-
                      Additional usage metadata returned when the job is
                      complete. Its contents can vary by model.
                    additionalProperties: true
                  error:
                    description: Error details when the job fails.
                    nullable: true
                    oneOf:
                      - type: string
                      - type: object
              examples:
                accepted:
                  summary: Task accepted, keep polling
                  value:
                    request_id: <request_id>
                pending:
                  summary: Task is still running
                  value:
                    status: pending
                    progress: 35
                done:
                  summary: Task finished successfully
                  value:
                    model: grok-imagine-video-1.5
                    video:
                      url: https://example.com/xai-video.mp4
                      duration: 1
                      respect_moderation: true
                    status: done
                    progress: 100
              example:
                model: grok-imagine-video-1.5
                video:
                  url: https://example.com/xai-video.mp4
                  duration: 1
                  respect_moderation: true
                status: done
                progress: 100
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl "https://api.cometapi.com/grok/v1/videos/<request_id>" \
              -H "Authorization: Bearer $COMETAPI_KEY"
        - lang: Python
          label: Default
          source: |
            import os
            import requests

            request_id = "<request_id>"

            response = requests.get(
                f"https://api.cometapi.com/grok/v1/videos/{request_id}",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
            )

            print(response.json())
        - lang: JavaScript
          label: Default
          source: >
            const requestId = "<request_id>";


            const response = await
            fetch(`https://api.cometapi.com/grok/v1/videos/${requestId}`, {
                headers: { Authorization: `Bearer ${process.env.COMETAPI_KEY}` },
            });


            console.log(await response.json());
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: Use your CometAPI API key as the bearer value.

````