Get Luma Modify Details
Query the status and results of a Luma modify video generation task.
Status Descriptions
- 0: GENERATING - Task is currently being processed
- 1: SUCCESS - Task completed successfully
- 2: CREATE_TASK_FAILED - Failed to create the task
- 3: GENERATE_FAILED - Task creation succeeded but generation failed
- 4: CALLBACK_FAILED - Generation succeeded but callback failed
Important Notes
- Generated videos are stored temporarily and may expire
- Check the response object for generated video URLs when status is SUCCESS
- Use polling with reasonable intervals (recommended: 30 seconds) to avoid rate limiting
Usage Examples
- Polling Implementation
- Single Status Check
Copy
async function pollTaskStatus(taskId, maxWaitTime = 900000) { // 15 minutes
const startTime = Date.now();
while (Date.now() - startTime < maxWaitTime) {
try {
const response = await fetch(`https://api.apikley.ru/api/v1/modify/record-info?taskId=${taskId}`, {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const result = await response.json();
const status = result.data;
console.log(`Task ${taskId} status: ${status.successFlag}`);
if (status.successFlag === 1) {
// Success
console.log('Video generation completed!');
console.log('Result URLs:', status.response.resultUrls);
return status;
} else if (status.successFlag === 2 || status.successFlag === 3) {
// Failed
throw new Error(`Generation failed: ${status.errorMessage || 'Unknown error'}`);
}
// Still processing, wait before next check
await new Promise(resolve => setTimeout(resolve, 30000)); // 30 seconds
} catch (error) {
console.error('Error checking status:', error);
break;
}
}
throw new Error('Polling timeout');
}
Copy
import requests
def get_task_details(task_id, api_key):
url = f"https://api.apikley.ru/api/v1/modify/record-info"
headers = {"Authorization": f"Bearer {api_key}"}
params = {"taskId": task_id}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
result = response.json()
if result['code'] != 200:
raise Exception(f"API Error: {result['msg']}")
data = result['data']
# Check task status
if data['successFlag'] == 0:
print("Task is still processing...")
elif data['successFlag'] == 1:
print("Task completed successfully!")
if 'response' in data and data['response']:
print(f"Result URLs: {data['response']['resultUrls']}")
print(f"Original URLs: {data['response']['originUrls']}")
elif data['successFlag'] == 2:
print("Failed to create task")
elif data['successFlag'] == 3:
print(f"Generation failed: {data.get('errorMessage', 'Unknown error')}")
elif data['successFlag'] == 4:
print("Generation succeeded but callback failed")
return data
# Usage
task_details = get_task_details('774d9a7dd608a0e49293903095e45a4c', 'YOUR_API_KEY')
Response Field Details
Current status of the video generation task:
| Value | Status | Description |
|---|---|---|
| 0 | GENERATING | Task is being processed |
| 1 | SUCCESS | Completed successfully |
| 2 | CREATE_TASK_FAILED | Failed to create task |
| 3 | GENERATE_FAILED | Generation failed |
| 4 | CALLBACK_FAILED | Callback delivery failed |
Original request parameters in JSON string format, useful for debugging and audit trails
Task creation timestamp (Unix milliseconds)
Task completion timestamp (Unix milliseconds), only present when task is finished
Error code when task fails (successFlag = 2 or 3)
Detailed error message when task fails
Rate limits and quotas are enforced by Apikley and may differ from upstream providers.
OpenAPI
luma-api/luma-api.json get /api/v1/modify/record-info
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/record-info:
get:
summary: Get Luma Modify Details
description: >-
Query the status and results of a Luma modify video generation task.
### Status Descriptions
- 0: GENERATING - Task is currently being processed
- 1: SUCCESS - Task completed successfully
- 2: CREATE_TASK_FAILED - Failed to create the task
- 3: GENERATE_FAILED - Task creation succeeded but generation failed
- 4: CALLBACK_FAILED - Generation succeeded but callback failed
### Important Notes
- Generated videos are stored temporarily and may expire
- Check the response object for generated video URLs when status is
SUCCESS
operationId: get-luma-modify-details
parameters:
- in: query
name: taskId
description: Unique identifier of the video generation task
required: true
schema:
type: string
example: 774d9a7dd608a0e49293903095e45a4c
responses:
'200':
description: Request successful
content:
application/json:
schema:
allOf:
- type: object
properties:
code:
type: integer
enum:
- 200
- 401
- 404
- 422
- 429
- 455
- 500
- 501
description: >-
Response status code
- **200**: Success - Request has been processed
successfully
- **401**: Unauthorized - Authentication credentials
are missing or invalid
- **404**: Not Found - The requested resource or
endpoint does not exist
- **422**: Validation Error - The request parameters
failed validation checks
- **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
msg:
type: string
description: Error message when code != 200
example: success
- type: object
properties:
data:
type: object
properties:
taskId:
type: string
description: Unique identifier of the video generation task
example: 774d9a7dd608a0e49293903095e45a4c
paramJson:
type: string
description: Request parameters in JSON format
example: >-
{"callBackUrl":"https://example.com/callback","prompt":"A
futuristic
cityscape","videoUrl":"https://example.com/video.mp4","waterMark":""}
completeTime:
type: integer
format: int64
description: >-
Task completion time (Unix timestamp in
milliseconds)
example: 1755078480000
response:
type: object
description: Final result (only present when task is completed)
properties:
taskId:
type: string
description: Task ID
example: 774d9a7dd608a0e49293903095e45a4c
originUrls:
type: array
items:
type: string
description: Original video URLs
example:
- >-
https://tempfile.aiquickdraw.com/kieai/file/veo3-video/1755074605154fqb0m8ge.mp4
resultUrls:
type: array
items:
type: string
description: Generated video URLs
example:
- >-
https://tempfile.aiquickdraw.com/l/f782018c-6be4-4990-96ba-7231cd5a39e7.mp4
successFlag:
type: integer
description: Generation status flag
enum:
- 0
- 1
- 2
- 3
- 4
example: 1
createTime:
type: integer
format: int64
description: >-
Task creation time (Unix timestamp in
milliseconds)
example: 1755078171000
errorCode:
type: integer
description: Error code if task failed
example: null
errorMessage:
type: string
description: Error message if task failed
example: null
example:
code: 200
msg: success
data:
taskId: 774d9a7dd608a0e49293903095e45a4c
paramJson: >-
{"callBackUrl":"https://example.com/callback","prompt":"A
futuristic
cityscape","videoUrl":"https://example.com/video.mp4","waterMark":""}
completeTime: 1755078480000
response:
taskId: 774d9a7dd608a0e49293903095e45a4c
originUrls:
- >-
https://tempfile.aiquickdraw.com/kieai/file/veo3-video/1755074605154fqb0m8ge.mp4
resultUrls:
- >-
https://tempfile.aiquickdraw.com/l/f782018c-6be4-4990-96ba-7231cd5a39e7.mp4
successFlag: 1
createTime: 1755078171000
errorCode: null
errorMessage: null
'500':
$ref: '#/components/responses/Error'
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