Endpoints
Method Endpoint Description POST /api/v1/generateTask/ltx-2-19bCreate generation task GET /api/v1/statusTask/ltx-2-19bQuery task status
Authentication
All requests require an API Key in the header:
Authorization: Bearer YOUR_API_KEY
Request Body
{
"request_type" : "async" ,
"callback_url" : "https://..." ,
"provider" : "auto" ,
"input" : {
"mode" : "text-to-video" ,
"prompt" : "..." ,
"resolution" : "1080p" ,
"duration" : 10 ,
"aspect_ratio" : "16:9" ,
"image_urls" : [ "..." ],
"seed" : 12345 ,
"loras" : [
{ "path" : "..." , "scale" : 1.2 }
]
}
}
Parameters
async (polling) or callback (webhook)
Callback URL, required when request_type=callback (conditional)
Routing strategy: auto, value, or official
Model input parameters mode
string
default: "text-to-video"
required
text-to-video, image-to-video, text-to-video-LoRA, or image-to-video-LoRA
Text description, 1-5000 characters
resolution
string
default: "720p"
required
Video resolution: 480p, 720p, or 1080p
duration
integer
default: "10"
required
Video duration in seconds: 5-20
Reference image, 1 only (required for -image-to-video modes) (conditional)
16:9 or 9:16 (for -text-to-video modes only)
Random seed, 1-2147483647, for reproducibility
LoRA models array (for *-LoRA modes only), max 3
Mode Options:
text-to-video — Generate video from text
image-to-video — Generate video from image
text-to-video-LoRA — Text-to-video with LoRA
image-to-video-LoRA — Image-to-video with LoRA
Example
Text-to-Video
curl -X POST "https://api.apixo.ai/api/v1/generateTask/ltx-2-19b" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"request_type": "async",
"input": {
"mode": "text-to-video",
"prompt": "a futuristic city with flying cars at sunset",
"resolution": "1080p",
"duration": 10,
"aspect_ratio": "16:9",
"seed": 54248617
}
}'
Image-to-Video with LoRA
curl -X POST "https://api.apixo.ai/api/v1/generateTask/ltx-2-19b" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"request_type": "callback",
"callback_url": "https://your-server.com/callback",
"provider": "official",
"input": {
"mode": "image-to-video-LoRA",
"prompt": "make it cinematic with slow pan and dramatic lighting",
"resolution": "720p",
"duration": 8,
"image_urls": ["https://example.com/ref.jpg"],
"loras": [
{
"path": "https://huggingface.co/username/model.safetensors?download=true",
"scale": 1.2
}
]
}
}'
Text-to-Video with Multiple LoRAs
curl -X POST "https://api.apixo.ai/api/v1/generateTask/ltx-2-19b" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"request_type": "async",
"input": {
"mode": "text-to-video-LoRA",
"prompt": "anime style magical girl transformation sequence",
"resolution": "720p",
"duration": 12,
"aspect_ratio": "9:16",
"loras": [
{"path": "https://huggingface.co/user1/anime_style.safetensors?download=true", "scale": 1.5},
{"path": "https://huggingface.co/user2/magic_effects.safetensors?download=true", "scale": 0.8}
]
}
}'
Response
POST /api/v1/generateTask/ltx-2-19b
Returns taskId on success for subsequent status queries.
Success:
{
"code" : 200 ,
"message" : "success" ,
"data" : {
"taskId" : "task_12345678"
}
}
Error:
{
"code" : 400 ,
"message" : "Insufficient credits" ,
"data" : null
}
GET /api/v1/statusTask/ltx-2-19b
Query task execution status and results via taskId.
curl -X GET "https://api.apixo.ai/api/v1/statusTask/ltx-2-19b?taskId=task_12345678" \
-H "Authorization: Bearer YOUR_API_KEY"
Success:
{
"code" : 200 ,
"message" : "success" ,
"data" : {
"taskId" : "task_12345678" ,
"state" : "success" ,
"resultJson" : "{ \" resultUrls \" :[ \" https://r2.apixo.ai/video.mp4 \" ]}" ,
"createTime" : 1767965610929 ,
"completeTime" : 1767965652317 ,
"costTime" : 41388
}
}
Failed:
{
"code" : 200 ,
"message" : "success" ,
"data" : {
"taskId" : "task_12345678" ,
"state" : "failed" ,
"failCode" : "CONTENT_VIOLATION" ,
"failMsg" : "Content does not meet safety guidelines"
}
}
Status Response Fields
Current task state: pending, processing, success, or failed.
JSON string containing resultUrls array. Only present on success. Parse with JSON.parse().
Error code. Only present when state is failed. See Error Codes .
Human-readable error message. Only present when state is failed.
Task creation timestamp (Unix milliseconds).
Task completion timestamp (Unix milliseconds).
Processing duration in milliseconds.
Error Codes
Code Description 400 Invalid parameters or request error 401 Invalid or missing API Key 429 Rate limit exceeded
Fail Code Description CONTENT_VIOLATIONContent violates safety guidelines INVALID_IMAGE_URLCannot access provided image URL INVALID_LORA_URLCannot download LoRA model
Rate Limits
Limit Value Requests 10000 / minute Concurrent tasks 1000
Exceeding limits returns 429 error. Wait and retry.
Tips
Generation time :
480p: ~40-60 seconds
720p: ~60-90 seconds
1080p: ~90-120 seconds
LoRA mode adds 10-20 seconds for loading
Submit task, wait 60 seconds, then poll every 5 seconds
Callback mode : Video generation takes time, strongly recommend using callback mode.
Video expiration : Result URLs are valid for 15 days. Download promptly.
Content moderation : Prompts must comply with content safety guidelines.
LoRA fine-tuning :
Load custom LoRA models for specific styles or characters
LoRA URL must be publicly downloadable (HuggingFace, Civitai, etc.)
URL should include ?download=true or similar download parameters
Max 3 LoRA models simultaneously
scale parameter controls LoRA influence, recommended: 0.5-2.0
Resolution selection :
480p: Fast generation, for previews
720p: Balanced quality and speed
1080p: Highest quality, for final output
Duration : Supports flexible 5-20 second duration, billed per second.
Seed reproduction : Same seed + prompt + parameters reproduces identical results.
Image formats : image_urls supports JPG, PNG, WebP, max 10MB per image.
LoRA compatibility : Use video-trained LoRAs; image LoRAs may not work well.
Video generation takes longer than images — use callback mode for production workloads. Result URLs expire after 15 days; download important outputs promptly.