Lightricks asyncVideoGeneration API

The asyncVideoGeneration API from Lightricks — 8 operation(s) for asyncvideogeneration.

Operations 8

POST /v2/text-to-video Generate video from text #
POST /v2/image-to-video Generate video from image #
POST /v2/audio-to-video Generate video from audio #
POST /v2/retake Retake video section #
POST /v2/extend Extend video duration #
POST /v2/video-to-video-hdr Upscale video to HDR #
POST /v2/video-to-video-reframe Reframe a video to a new resolution #
GET /v2/{endpoint}/{id} Get job status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lightricks-asyncvideogeneration-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lightricks-asyncvideogeneration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference Async Video Generation API
  version: 1.0.0
servers:
- url: https://api.ltx.video
  description: Production server
tags:
- name: asyncVideoGeneration
paths:
  /v2/text-to-video:
    post:
      operationId: submit-text-to-video
      summary: Generate video from text
      description: 'Generate a video from a text prompt. Describe the scene, camera motion, and mood — the model returns a video with matching audio.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/text-to-video/{id}` until the status is `completed`, then download from `result.video_url`.


        Billed per second of generated video. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TextToVideoRequest'
  /v2/image-to-video:
    post:
      operationId: submit-image-to-video
      summary: Generate video from image
      description: 'Animate a still image with realistic motion, depth, and audio. Provide a reference image plus a prompt describing the desired motion. The output preserves the visual identity of the source image.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/image-to-video/{id}` until the status is `completed`, then download from `result.video_url`.


        Billed per second of generated video. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageToVideoRequest'
  /v2/audio-to-video:
    post:
      operationId: submit-audio-to-video
      summary: Generate video from audio
      description: 'Generate a video driven by an audio track. Supply dialogue, music, or ambient sound and the model produces visuals synchronized to the audio. Optionally condition on a reference image for visual direction.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/audio-to-video/{id}` until the status is `completed`, then download from `result.video_url`.


        Billed per second of input audio. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AudioToVideoRequest'
  /v2/retake:
    post:
      operationId: submit-retake
      summary: Retake video section
      description: 'Re-generate a section of an existing video by replacing either its audio, its video, or both. Select a time range and mode to iterate on part of a generation without starting over — the rest of the video is preserved.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/retake/{id}` until the status is `completed`, then download from `result.video_url`.


        Billed per second of the input video. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditVideoRequest'
  /v2/extend:
    post:
      operationId: submit-extend
      summary: Extend video duration
      description: 'Extend a video by generating additional frames at the beginning or end. The model uses context frames from the input to produce a seamless continuation with consistent motion and audio.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/extend/{id}` until the status is `completed`, then download from `result.video_url`.


        Billed per second, based on the extended portion plus the context frames used from the input video. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtendVideoRequest'
  /v2/video-to-video-hdr:
    post:
      operationId: submit-video-to-video-hdr
      summary: Upscale video to HDR
      description: 'Convert an SDR video into HDR. On completion, the result contains `exr_frames_url` — a ZIP of per-frame EXR images suitable for color grading or HDR rendering pipelines.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/video-to-video-hdr/{id}` until the status is `completed`.


        Billed per second of input video, by input resolution tier. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoToVideoHdrRequest'
  /v2/video-to-video-reframe:
    post:
      operationId: submit-video-to-video-reframe
      summary: Reframe a video to a new resolution
      description: 'Reframe a video to a new resolution. The model fills in the missing areas with generated content that matches the original. On completion, the result contains `video_url`, the source video reframed to the requested resolution.


        Responds immediately with the job `id` and `created_at` timestamp. Poll `GET /v2/video-to-video-reframe/{id}` until the status is `completed`.


        Billed per second of input video, by output resolution. See Pricing.'
      tags:
      - asyncVideoGeneration
      parameters:
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Job submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobCreatedResponse'
        '400':
          description: The request is invalid or malformed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Content rejected by safety filters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoToVideoReframeRequest'
  /v2/{endpoint}/{id}:
    get:
      operationId: get-job-status
      summary: Get job status
      description: Poll the status of an async generation job. Status transitions through `pending` → `processing` → `completed` or `failed`. When completed, the `result` object contains output URLs (see each endpoint's documentation for the available keys). Poll every 5 seconds and stop when the status reaches `completed` or `failed`. Status and output URLs are available for 24 hours after the job reaches a terminal state. After expiry this endpoint returns `404`.
      tags:
      - asyncVideoGeneration
      parameters:
      - name: id
        in: path
        description: Job ID returned from the submit endpoint.
        required: true
        schema:
          type: string
      - name: endpoint
        in: path
        description: The endpoint type used when submitting the job (e.g., `text-to-video`, `image-to-video`, `audio-to-video`, `retake`, `extend`, `video-to-video-hdr`, `video-to-video-reframe`).
        required: true
        schema:
          $ref: '#/components/schemas/V2EndpointIdGetParametersEndpoint'
      - name: Authorization
        in: header
        description: API key authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Current job status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobStatusResponse'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: An unexpected error occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    V2JobResult:
      type: object
      additionalProperties:
        type: string
        format: uri
      description: 'Result object for a completed job. Contains output URLs — the available keys depend on the endpoint. Available for 24 hours after completion.

        '
      title: V2JobResult
    EditVideoRequestMode:
      type: string
      enum:
      - replace_audio
      - replace_video
      - replace_audio_and_video
      default: replace_audio_and_video
      description: 'Can be any of the following:

        - `replace_audio` - Replace only the audio track

        - `replace_video` - Replace only the video track

        - `replace_audio_and_video` - Replace both audio and video tracks


        The default value is `replace_audio_and_video` if not specified.

        '
      title: EditVideoRequestMode
    AudioToVideoRequest:
      type: object
      properties:
        audio_uri:
          type: string
          description: 'Audio file to be used as the soundtrack for the video. Duration must be between 2 and 20 seconds.

            See [Input Formats](/input-formats#audio-input) for supported formats and size limits.

            '
        image_uri:
          type: string
          description: Input image to be used as the first frame of the video. Required if prompt is not provided. See [Input Formats](/input-formats#image-input) for supported formats and size limits.
        prompt:
          type: string
          description: Text description of how the video should be generated. Required if image_uri is not provided. Can be empty string when image_uri is provided. If image_uri is provided, this describes how the image should be animated. If no image_uri is provided, this describes the video content.
        resolution:
          $ref: '#/components/schemas/AudioToVideoRequestResolution'
          description: 'The resolution of the generated video in WIDTHxHEIGHT format. When omitted, the resolution is automatically determined based on the input image orientation — portrait images produce 1080x1920 video, landscape images produce 1920x1080 video. If no image is provided, defaults to 1920x1080.

            '
        guidance_scale:
          type: number
          format: double
          description: Optional guidance scale (also known as CFG) for video generation. Higher values make the output more closely follow the prompt but may reduce quality. Defaults to 5 for text-to-video, or 9 when providing an image.
        model:
          $ref: '#/components/schemas/AudioToVideoRequestModel'
          description: 'Model to use for video generation.


            > **Deprecated:** `ltx-2-pro` is deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

            '
      required:
      - audio_uri
      title: AudioToVideoRequest
    ImageToVideoRequest:
      type: object
      properties:
        image_uri:
          type: string
          description: Image to be used as the first frame of the video. See [Input Formats](/input-formats#image-input) for supported formats and size limits.
        prompt:
          type: string
          description: Text description of how the image should be animated, can relate to the details in the image
        model:
          $ref: '#/components/schemas/ImageToVideoRequestModel'
          description: 'Model to use for generation. See [Supported Models](/models) for details.


            > **Deprecated:** `ltx-2-fast` and `ltx-2-pro` are deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

            '
        duration:
          type: integer
          description: Video duration in seconds. See [Supported Models](/models) for available durations per model.
        fps:
          type: integer
          default: 24
          description: Frame rate in frames per second. See [Supported Models](/models) for available FPS per model and resolution.
        resolution:
          type: string
          description: Output video resolution. See [Supported Models](/models) for available resolutions per model.
        generate_audio:
          type: boolean
          default: true
          description: Generate audio for the video. When true, the generated video will include AI-generated audio matching the scene. When false, only silent video is generated.
        last_frame_uri:
          type: string
          description: 'Image to be used as the last frame of the video. When provided, the video will interpolate between the first frame (image_uri) and this last frame. See [Input Formats](/input-formats#image-input) for supported formats and size limits.


            > Note: Only supported by `ltx-2-3` models (`ltx-2-3-fast`, `ltx-2-3-pro`).

            '
        camera_motion:
          $ref: '#/components/schemas/ImageToVideoRequestCameraMotion'
          description: Apply camera motion effects to the generated video.
      required:
      - image_uri
      - prompt
      - model
      - duration
      - resolution
      title: ImageToVideoRequest
    EditVideoRequest:
      type: object
      properties:
        video_uri:
          type: string
          description: 'Input video for editing. See [Input Formats](/input-formats#video-input) for supported formats and codecs.


            - Maximum resolution: 3840x2160 (4K)

            - Minimum frame count: 73 (around 3 seconds at 24fps)

            '
        prompt:
          type: string
          description: 'Describing what needs to happen in the generated video in a section

            defined by `start_time` and `duration`.

            '
        start_time:
          type: number
          format: double
          description: 'Start time in seconds, defines the section to be edited in the input video.


            The section defined by `start_time` and `duration` should be within the duration of the input video.

            If the section extends beyond the duration of the video, it will be clamped to the video duration.

            '
        duration:
          type: number
          format: double
          description: 'Duration in seconds, defines the duration of the section to be edited

            in the input video. Must be at least 2 seconds.


            The section defined by `start_time` and `duration` should be within the duration of the input video.

            If the section extends beyond the duration of the video, it will be clamped to the video duration.

            '
        mode:
          $ref: '#/components/schemas/EditVideoRequestMode'
          description: 'Can be any of the following:

            - `replace_audio` - Replace only the audio track

            - `replace_video` - Replace only the video track

            - `replace_audio_and_video` - Replace both audio and video tracks


            The default value is `replace_audio_and_video` if not specified.

            '
        resolution:
          $ref: '#/components/schemas/EditVideoRequestResolution'
          description: 'The resolution of the generated video in WIDTHxHEIGHT format. When omitted, the resolution is automatically determined based on the input video orientation — portrait videos produce 1080x1920 output, landscape videos produce 1920x1080 output.

            '
        model:
          $ref: '#/components/schemas/EditVideoRequestModel'
          description: 'Model to use for video generation.


            > **Deprecated:** `ltx-2-pro` is deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

            '
      required:
      - video_uri
      - start_time
      - duration
      title: EditVideoRequest
    V2JobCompletedStatus:
      type: string
      enum:
      - completed
      title: V2JobCompletedStatus
    TextToVideoRequest:
      type: object
      properties:
        prompt:
          type: string
          description: Text prompt describing the desired video content
        model:
          $ref: '#/components/schemas/TextToVideoRequestModel'
          description: 'Model to use for generation. See [Supported Models](/models) for details.


            > **Deprecated:** `ltx-2-fast` and `ltx-2-pro` are deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

            '
        duration:
          type: integer
          description: Video duration in seconds. See [Supported Models](/models) for available durations per model.
        fps:
          type: integer
          default: 24
          description: Frame rate in frames per second. See [Supported Models](/models) for available FPS per model and resolution.
        resolution:
          type: string
          description: Output video resolution. See [Supported Models](/models) for available resolutions per model.
        generate_audio:
          type: boolean
          default: true
          description: Generate audio for the video. When true, the generated video will include AI-generated audio matching the scene. When false, only silent video is generated.
        camera_motion:
          $ref: '#/components/schemas/TextToVideoRequestCameraMotion'
          description: Apply camera motion effects to the generated video.
      required:
      - prompt
      - model
      - duration
      - resolution
      title: TextToVideoRequest
    EditVideoRequestModel:
      type: string
      enum:
      - ltx-2-pro
      - ltx-2-3-pro
      default: ltx-2-3-pro
      description: 'Model to use for video generation.


        > **Deprecated:** `ltx-2-pro` is deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

        '
      title: EditVideoRequestModel
    EditVideoRequestResolution:
      type: string
      enum:
      - 1920x1080
      - 1080x1920
      description: 'The resolution of the generated video in WIDTHxHEIGHT format. When omitted, the resolution is automatically determined based on the input video orientation — portrait videos produce 1080x1920 output, landscape videos produce 1920x1080 output.

        '
      title: EditVideoRequestResolution
    V2JobProcessingStatus:
      type: string
      enum:
      - processing
      title: V2JobProcessingStatus
    VideoToVideoReframeRequest:
      type: object
      properties:
        video_uri:
          type: string
          description: 'Input video in HTTPS URL or base64 data URI format. See [Input Formats](/input-formats#video-input) for supported formats and codecs.


            Max 60 seconds and 1800 frames (e.g. 60s at 30fps, or 30s at 60fps).

            '
        model:
          $ref: '#/components/schemas/VideoToVideoReframeRequestModel'
          description: 'Model used for reframing.

            '
        resolution:
          $ref: '#/components/schemas/VideoToVideoReframeRequestResolution'
          description: 'Target output resolution. The source video is extended to fill this frame. Pass one of the values below; each maps to an aspect ratio:


            | Aspect ratio | Resolutions |

            | --- | --- |

            | 1:1 (square) | `720x720`, `1080x1080` |

            | 4:5 (portrait) | `720x900`, `1080x1350` |

            | 5:4 (landscape) | `900x720`, `1350x1080` |

            | 9:16 (portrait) | `720x1280`, `1080x1920` |

            | 16:9 (landscape) | `1280x720`, `1920x1080` |

            '
      required:
      - video_uri
      - model
      - resolution
      title: VideoToVideoReframeRequest
    ExtendVideoRequest:
      type: object
      properties:
        video_uri:
          type: string
          description: 'Input video for extending. See [Input Formats](/input-formats#video-input) for supported formats and codecs.


            - Supported aspect ratios: 16:9 and 9:16

            - Maximum resolution: 3840x2160 (4K)

            - Minimum frame count: 73 (around 3 seconds at 24fps)


            The output video preserves the input video''s resolution.

            '
        prompt:
          type: string
          description: 'Description of what should happen in the extended portion of the video.

            '
        duration:
          type: number
          format: double
          description: 'Duration in seconds to extend the video. Minimum 2 seconds, maximum 20 seconds (480 frames at 24fps).

            '
        mode:
          $ref: '#/components/schemas/ExtendVideoRequestMode'
          description: 'Where to extend the video:

            - `end` (default): Extends the video at the end.

            - `start`: Extends the video at the beginning.

            '
        model:
          $ref: '#/components/schemas/ExtendVideoRequestModel'
          description: 'Model to use for video generation.


            > **Deprecated:** `ltx-2-pro` is deprecated. See the [LTX-2 Deprecation Notice](/ltx-2-deprecation).

            '
        context:
          type: number
          format: double
          description: '**Advanced parameter:** Number of seconds from the input video to use as context for the extension (maximum 20 seconds).


            The model uses context frames from the input video to generate a more coherent extension.

            The sum of `context` + `duration` (converted to frames using the input video''s FPS) cannot exceed 505 frames (~21 seconds at 

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightricks/refs/heads/main/openapi/lightricks-asyncvideogeneration-api-openapi.yml