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
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
Copy
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