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

# Retrieve a video enhancement task

> Retrieve using the same API key that created the job. Poll no more often
than once every 10 seconds. Repeat queries never charge twice.
After outputs.expiresAt, the task remains succeeded but outputs.videos is
empty. Querying does not regenerate, renew, or permanently store the video.




## OpenAPI

````yaml /openapi/gengen-v1.yaml get /video/enhancements/{id}
openapi: 3.1.0
info:
  title: GENGEN API
  version: 1.0.0
  description: |
    The public GENGEN v1 API. New integrations should use normalized camelCase
    request fields and read generated media from the standard `outputs` object.
servers:
  - url: https://gengen.farm/api/gengen/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Video enhancement
    description: Enhance existing videos with BytePlus AI MediaKit.
  - name: Video generation tasks
    description: Create, inspect, list, and cancel asynchronous video generation tasks.
  - name: Text generation
    description: Create OpenAI-compatible chat completions, including streamed responses.
  - name: Image generation
    description: Generate images synchronously with normalized GENGEN request fields.
  - name: Video understanding
    description: Analyze video content through the BytePlus Responses API surface.
  - name: Files
    description: Authorize direct uploads for image, video, and audio inputs.
paths:
  /video/enhancements/{id}:
    get:
      tags:
        - Video enhancement
      summary: Retrieve a video enhancement task
      description: >
        Retrieve using the same API key that created the job. Poll no more often

        than once every 10 seconds. Repeat queries never charge twice.

        After outputs.expiresAt, the task remains succeeded but outputs.videos
        is

        empty. Querying does not regenerate, renew, or permanently store the
        video.
      operationId: getVideoEnhancement
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            example: byteplus-enhance:12345678-1234-4234-8234-123456789abc
      responses:
        '200':
          description: Current task state. Failed tasks include failureReason.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoEnhancementTask'
        '400':
          description: Invalid task ID.
        '401':
          description: Invalid API key.
        '402':
          description: >-
            Insufficient balance for final settlement. Top up and retry the same
            task before output expiry.
        '404':
          description: Task was not found for this API key.
components:
  schemas:
    VideoEnhancementTask:
      type: object
      additionalProperties: false
      required:
        - id
        - model
        - status
        - outputs
      properties:
        id:
          type: string
          example: byteplus-enhance:12345678-1234-4234-8234-123456789abc
        model:
          type: string
          enum:
            - byteplus-video-enhancement
        status:
          type: string
          enum:
            - pending
            - running
            - succeeded
            - failed
        outputs:
          type: object
          additionalProperties: false
          required:
            - videos
            - images
          properties:
            videos:
              type: array
              description: Temporary output URL; empty before success or after expiry.
              items:
                type: string
                format: uri
            images:
              type: array
              maxItems: 0
              items:
                type: string
            expiresAt:
              type: string
              format: date-time
              description: >-
                ISO 8601 UTC output expiration, normally 24 hours after
                completion.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        failureReason:
          type: string
          description: Safe explanation when status is failed.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: GENGEN API key
      description: A workspace API key beginning with `gengen_live_`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.