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

# Video Upscaler

> FlashVSR video super-resolution: upscale an existing clip to 720p, 1080p, 2K or 4K.

**Pricing:** billed per second of the **source video**, by target resolution — 720p 0.5 / 1080p 1 / 2K 2 / 4K 4 tokens per second.

⚠️ There is no `duration` parameter. The source video is measured server-side and the whole clip is upscaled; the measured length (rounded up to whole seconds) is what you are charged for. Clips longer than 60 seconds are rejected rather than silently truncated.

Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the result.



## OpenAPI

````yaml api-reference/video-generations/openapi-video-upscaler.json POST /api/v1/videos/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Video Upscaler
  description: Video Upscaler
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/videos/generations:
    post:
      tags:
        - VideoGenerations
      summary: Video Upscaler
      description: >-
        FlashVSR video super-resolution: upscale an existing clip to 720p,
        1080p, 2K or 4K.


        **Pricing:** billed per second of the **source video**, by target
        resolution — 720p 0.5 / 1080p 1 / 2K 2 / 4K 4 tokens per second.


        ⚠️ There is no `duration` parameter. The source video is measured
        server-side and the whole clip is upscaled; the measured length (rounded
        up to whole seconds) is what you are charged for. Clips longer than 60
        seconds are rejected rather than silently truncated.


        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the result.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - video-upscaler
                  description: Model name. Must be `video-upscaler`.
                video_url:
                  type: string
                  format: uri
                  description: >-
                    Source video URL. Max 60 seconds and 100MB; av1 is not
                    supported. The whole clip is upscaled — its measured
                    duration is the billing basis.
                resolution:
                  type: string
                  enum:
                    - 720p
                    - 1080p
                    - 2k
                    - 4k
                  description: Target resolution. Defaults to `1080p`.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - video_url
            example:
              model: video-upscaler
              video_url: https://your-cdn.com/clip.mp4
              resolution: 2k
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                    required:
                      - img_uuid
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                '2':
                  summary: Invalid duration
                  value:
                    code: -1
                    msg: duration (30s) exceeds the reference video length (12s).
                '3':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                required:
                  - code
                  - msg
          headers: {}
      deprecated: false
      security: []

````