Skip to main content

Generate Luma Modify Video

Create a new Luma modify video generation task.

Important Notes

  • Generated videos will be processed asynchronously
  • Use the returned taskId to track generation progress
  • Callback URL is recommended for production use to receive automatic notifications when generation completes
  • Original video URL must be publicly accessible
  • Watermark parameter is optional for branding purposes

Video Requirements

Supported Formats: MP4, MOV, AVI
Maximum File Size: 500MB
Maximum Duration: 10 seconds
Accessibility: Video URL must be publicly accessible

Processing Time

Video modification is a compute-intensive process that typically takes:
  • Simple modifications: 2-5 minutes
  • Complex transformations: 5-15 minutes
  • High-resolution videos: 10-20 minutes
Use the callback mechanism or polling to track progress rather than waiting synchronously.
Rate limits and quotas are enforced by Apikley and may differ from upstream providers.

OpenAPI

luma-api/luma-api.json post /api/v1/modify/generate
openapi: 3.0.0
info:
  title: Luma API
  description: Apikley Luma API Documentation - Video Generation and Modification API
  version: 1.0.0
  contact:
    name: Technical Support
    email: [email protected]
servers:
  - url: https://api.apikley.ru
    description: API Server
security:
  - BearerAuth: []
paths:
  /api/v1/modify/generate:
    post:
      summary: Generate Luma Modify Video
      description: >-
        Create a new Luma modify video generation task.


        ### Important Notes

        - Generated videos will be processed asynchronously

        - Use the returned taskId to track generation progress

        - Callback URL is recommended for production use to receive automatic
        notifications when generation completes

        - Original video URL must be publicly accessible

        - Watermark parameter is optional for branding purposes
      operationId: generate-luma-modify-video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  description: >-
                    Text prompt describing the desired video modifications.
                    Required field that specifies how the input video should be
                    modified.


                    - Should be detailed and specific about the desired changes

                    - Describe the visual elements you want to add or modify

                    - IMPORTANT: Only English language is supported
                  example: >-
                    A futuristic cityscape at night with towering glass spires
                    reaching into a starry sky. Neon lights in blue and purple
                    illuminate the buildings while flying vehicles glide
                    silently between the structures.
                videoUrl:
                  type: string
                  format: uri
                  description: |-
                    URL of the input video for modification. Required field.

                    - Must be a valid video URL
                    - Video must be accessible to the API server
                    - Supported formats: MP4, MOV, AVI
                    - Maximum file size: 500MB
                    - Maximum duration: 10 seconds
                  example: https://example.com/input-video.mp4
                callBackUrl:
                  type: string
                  format: uri
                  description: >-
                    The URL to receive video generation task completion updates.
                    Optional but recommended for production use.


                    - System will POST task status and results to this URL when
                    video generation completes

                    - Callback includes generated video URLs and task
                    information

                    - Your callback endpoint should accept POST requests with
                    JSON payload containing video results

                    - For detailed callback format and implementation guide, see
                    [Luma Modify Video
                    Callbacks](https://docs.apikley.ru/luma-api/generate-luma-modify-video-callbacks)

                    - Alternatively, use the Get Luma Modify Details endpoint to
                    poll task status
                  example: https://your-callback-url.com/luma-callback
                watermark:
                  type: string
                  description: |-
                    Watermark identifier to add to the generated video.

                    - Optional parameter
                    - If provided, a watermark will be added to the output video
                    - Can be used for branding or identification purposes
                  example: your-watermark-id
              required:
                - prompt
                - videoUrl
              example:
                prompt: >-
                  A futuristic cityscape at night with towering glass spires
                  reaching into a starry sky
                videoUrl: https://example.com/input-video.mp4
                callBackUrl: https://your-callback-url.com/luma-callback
                watermark: your-watermark-id
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      code:
                        type: integer
                        enum:
                          - 200
                          - 401
                          - 402
                          - 404
                          - 422
                          - 429
                          - 455
                          - 500
                          - 501
                          - 505
                        description: >-
                          Response status code


                          - **200**: Success - Request has been processed
                          successfully

                          - **401**: Unauthorized - Authentication credentials
                          are missing or invalid

                          - **402**: Insufficient Credits - Account does not
                          have enough credits to perform the operation

                          - **404**: Not Found - The requested resource or
                          endpoint does not exist

                          - **422**: Validation Error - The request parameters
                          failed validation checks
                           The request parameters are incorrect, please check the parameters.
                          - **429**: Rate Limited - Request limit has been
                          exceeded for this resource

                          - **455**: Service Unavailable - System is currently
                          undergoing maintenance

                          - **500**: Server Error - An unexpected error occurred
                          while processing the request

                          - **501**: Generation Failed - Video generation task
                          failed

                          - **505**: Feature Disabled - The requested feature is
                          currently disabled
                      msg:
                        type: string
                        description: Error message when code != 200
                        example: success
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          taskId:
                            type: string
                            description: >-
                              Task ID, can be used with Get Luma Modify Details
                              endpoint to query task status
                            example: 774d9a7dd608a0e49293903095e45a4c
              example:
                code: 200
                msg: success
                data:
                  taskId: 774d9a7dd608a0e49293903095e45a4c
        '500':
          $ref: '#/components/responses/Error'
      callbacks:
        onVideoGenerated:
          '{$request.body#/callBackUrl}':
            post:
              summary: Video Generation Callback
              description: >-
                When the video generation task is completed, the system will
                send the result to your provided callback URL via POST request
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        code:
                          type: integer
                          description: >-
                            Status code


                            - **200**: Success - Video generation completed
                            successfully

                            - **500**: Failed - Video generation task failed
                          enum:
                            - 200
                            - 500
                        msg:
                          type: string
                          description: Status message
                          example: Modify record generated successfully.
                        data:
                          type: object
                          properties:
                            taskId:
                              type: string
                              description: Task ID
                              example: 774d9a7dd608a0e49293903095e45a4c
                            promptJson:
                              type: string
                              description: Original request parameters in JSON format
                              example: >-
                                {"callBackUrl":"https://example.com/callback","prompt":"A
                                futuristic
                                cityscape","videoUrl":"https://example.com/video.mp4","waterMark":""}
                            resultUrls:
                              type: array
                              items:
                                type: string
                              description: Generated video URLs (only present on success)
                              example:
                                - >-
                                  https://tempfile.aiquickdraw.com/l/f782018c-6be4-4990-96ba-7231cd5a39e7.mp4
                    example:
                      code: 200
                      msg: Modify record generated successfully.
                      data:
                        taskId: 774d9a7dd608a0e49293903095e45a4c
                        promptJson: >-
                          {"callBackUrl":"https://example.com/callback","prompt":"A
                          futuristic
                          cityscape","videoUrl":"https://example.com/video.mp4","waterMark":""}
                        resultUrls:
                          - >-
                            https://tempfile.aiquickdraw.com/l/f782018c-6be4-4990-96ba-7231cd5a39e7.mp4
              responses:
                '200':
                  description: Callback received successfully
components:
  responses:
    Error:
      description: Server Error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All APIs require authentication via Bearer Token.


        Get API Key:

        1. Visit [API Key Management Page](https://app.apikley.ru/keys) to get your
        API Key


        Usage:

        Add to request header:

        Authorization: Bearer APIKLEY_API_KEY


        Note:

        - Keep your API Key secure and do not share it with others

        - If you suspect your API Key has been compromised, reset it immediately
        in the management page


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.apikley.ru/llms.txt