AIVidLab Developer Portal

API documentation, key management, and live monitoring

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer avl_your_api_key_here
API keys start with avl_ and can be managed via the /v1/keys endpoint.

Endpoints

MethodPathDescription
POST/v1/video/generateSubmit video generation
GET/v1/video/{task_id}Get video generation status
POST/v1/image/generateSubmit image generation
GET/v1/image/{task_id}Get image generation status
POST/v1/music/generateSubmit music/audio generation
GET/v1/music/{task_id}Get music generation status
POST/v1/tts/generateSubmit text-to-speech generation
GET/v1/modelsList available models & pricing
GET/v1/models/statusModel health & success rates (24H)
GET/v1/models/status/timelineModel uptime timeline (144 × 10min segments)
GET/v1/balanceCheck token balance
GET/v1/keysList API keys
POST/v1/keysCreate API key (body: {"label": "my-app"})
DELETE/v1/keys/{key}Revoke API key
POST/v1/uploadUpload image file (multipart, returns public URL — expires 72h)
GET/v1/webhooksList registered webhooks
POST/v1/webhooksRegister webhook URL
DELETE/v1/webhooks/{webhook_id}Remove webhook
GET/v1/developer/generationsList generations via your API key(s)

Models

🤖
AI Agent Integration
Full machine-readable API docs with all models, pricing tables, and curl examples
📄 Open llm.txt →
Use GET /v1/models for real-time model list. GET /v1/models/status for 24H health. Minimum prompt length: 5 characters.

🎬 Video Models

Vidu Q3 Turbo

Model ID: vidu-q3-turbo · Modes: t2v, i2v, start_end

Resolution: t2v 360p/540p/720p/1080p · i2v +2k · start_end 540p/720p/1080p · Duration: 1–16s

Required by mode: t2v: prompt + aspect_ratio + optional style (general|anime); i2v: image_url; start_end: image_url + last_image_url + optional movement_amplitude (auto|small|medium|large).

Pricing sample: i2v 360p 1s = 7 tok · t2v 540p 5s = 15 tok · t2v 720p 5s = 28 tok · i2v 2k 8s = 65 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "vidu-q3-turbo",
    "mode": "t2v",
    "prompt": "A product spinning on a white table with soft studio light",
    "duration": 5,
    "resolution": "540p",
    "aspect_ratio": "9:16",
    "style": "general",
    "sound": true
  }'

Pixverse V6

Model ID: pixverse-v6 · Modes: t2v, i2v, transition, extend

Resolution: 360p / 540p / 720p / 1080p · Duration: 1–15s · Audio: sound bool (default true, affects price)

Required by mode: t2v: prompt + aspect_ratio; i2v: image_url; transition: image_url + last_image_url + optional multi_clip; extend: video_url.

Pricing sample (audio ON): 360p 1s = 5 tok · 720p 5s = 15 tok · 1080p 5s = 26 tok · 720p 5s audio OFF = 13 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse-v6",
    "mode": "t2v",
    "prompt": "A product spinning on a white table with soft studio light",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "sound": true
  }'

MiniMax H3

Model ID: minimax-h3 · Modes: t2v, i2v, multimodal

Limits: 768p/2k · 5–15 whole seconds · prompt required (max 20,480 chars) · ratios 16:9, 9:16, 1:1, 4:3, 3:4; multimodal also adaptive.

References: i2v uses image_url plus optional last_image_url. Multimodal accepts image_urls max 9, video_urls max 3, and audio_urls max 3; at least one reference is required. If videos are supplied, include input_duration as their total duration for billing. Public directly downloadable URLs only (max 2,048 chars).

Customer pricing examples: 768p/5s t2v 21 tok · 2k/5s 31 tok · 2k/10s 57 tok · 2k/5s multimodal with 6 images 33 tok. Use GET /v1/models for current public prices.

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3","mode":"t2v","prompt":"A cinematic tracking shot through a night market","duration":8,"resolution":"2k","aspect_ratio":"16:9"}'
curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3","mode":"i2v","prompt":"Turn toward the sunset","image_url":"https://example.com/first.jpg","last_image_url":"https://example.com/last.jpg","duration":7,"resolution":"768p"}'
curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" -H "Content-Type: application/json" \
  -d '{"model":"minimax-h3","mode":"multimodal","prompt":"Keep image 1 consistent, follow video 1 motion, cut to audio 1","image_urls":["https://example.com/product.jpg"],"video_urls":["https://example.com/motion.mp4"],"audio_urls":["https://example.com/beat.mp3"],"duration":10,"resolution":"2k","aspect_ratio":"adaptive"}'
Async: response includes task_id and cost_tokens. Poll authenticated GET /v1/video/{task_id} about every 5s until completed, failed, or refunded (maximum recommended: 10 minutes). Download completed result_url promptly; failures release/refund tokens. Invalid fields/limits return 400 before charging.

Wan 2.7

Model ID: wan-2.7 · Modes: t2v, i2v, spicy_i2v, reference_to_video, video_extend, video_edit

Resolution: exactly 720P or 1080P (uppercase P) · Aspect: 16:9, 9:16, 1:1, 4:3, 3:4

Duration: t2v/i2v/spicy/extend 2-15s; reference 2-10s; edit 0 or 2-10s (not 1), no longer than its 2-10s input_duration.

Required by mode: t2v: prompt; i2v/spicy: image_url; reference: prompt plus video_urls or image_urls; extend: video_url; edit: prompt, video_url, image_urls, input_duration.

Limits: prompts 5,000 chars; URLs 2,048 chars; reference submits max 5 videos + 5 images; edit submits max 3 images; seed 0-4,294,967,295.

Strict pricing: standard rates are USD0.07/s (720P) and USD0.12/s (1080P); spicy rates are USD0.13/s and USD0.20/s. Video edit provider cost is literally rate × (min(input, 5) + output), with output equal to input when duration is 0. Retail = provider cost × 4.2 + RM0.50, rounded to cents, then rounded up to whole tokens. Invalid casing/mode/duration/media returns 400 before charging.
curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan-2.7",
    "mode": "t2v",
    "prompt": "A cinematic tracking shot through a rainy night market",
    "duration": 8,
    "resolution": "1080P",
    "aspect_ratio": "16:9"
  }'

Async: submit returns task_id, status, and exact cost_tokens. Poll GET /v1/video/{task_id} every ~5s: submitting → submitted → processing → completed, or failed/refunded. Completed jobs include result_url; failures release/refund tokens.

Grok Video

Model ID: grok-video · Mode: t2v · Resolution: 720p · Aspect: 16:9, 9:16

Pricing: 10s = 7 tok (RM0.70) · 20s = 12 tok (RM1.20) · 30s = 17 tok (RM1.70)

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-video",
    "prompt": "A cat playing piano in a jazz bar",
    "duration": 10,
    "aspect_ratio": "16:9"
  }'

Omni Flash 1.1 🆕 NEW

Model ID: omni-1.1-flash · Mode: t2v, i2v, r2v, video_edit · Resolution: 360p, 720p, 1080p, 4k · Duration: any integer 3–10s · Aspect: 16:9, 9:16

Pricing (per output second, 8s shown): 360p = 15 tok (RM1.50) · 720p = 46 tok (RM4.60) · 1080p = 68 tok (RM6.80) · 4K = 129 tok (RM12.90). Cheapest cell 360p/3s = 8 tok (RM0.80). video_edit bills the INPUT clip length.

Modes: t2v prompt only · i2v 1–2 image_urls (2 = first + last frame interpolation) · r2v up to 10 image_urls + up to 3 video_urls (each ≤3s, for motion/camera reference) · video_edit 1 video_url ≤10s / ≤100 MB (duration and aspect are derived from the source clip — do not send them). Mode is auto-detected from the refs you send if omitted. Prompt: 5–2048 chars, required.

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer $AIVID...KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-1.1-flash",
    "mode": "i2v",
    "prompt": "Product hero shot, slow push in, soft studio light",
    "image_urls": ["https://your-cdn/first.jpg", "https://your-cdn/last.jpg"],
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'

Poll GET /v1/video/{task_id} as usual. Live 24H health under the name Omni Flash 1.1 in GET /v1/models/status. If the engine is off, GET /v1/models returns "available": false and submits answer 503 before any token is reserved.

Omni Flash Murah 🔥 HOTunstable

Model ID: omni-flash-murah · Mode: t2v, sfv, i2v, r2v · Aspect: 16:9, 9:16 · Resolution: 720p (default) or 1080p — same price · Duration: engine decides

Pricing: FLAT 4 tok (RM0.40) per generate — same price for every mode, duration and resolution. Cheapest video engine on the platform.

⚠️ unstable: shared upstream capacity. A submit can be rejected or a job can fail under load — tokens are auto-refunded in full when that happens. Do not use for time-critical production runs; retry or fall back to omni-flash.

Modes: t2v prompt only (no media) · sfv exactly 1 image_url · i2v 1–3 image_urls · r2v 1 video_url + optional 1 image. Mode is auto-detected from the refs you send if omitted.

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer $AIVIDLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-flash-murah",
    "mode": "i2v",
    "prompt": "Product hero shot, slow push in, soft studio light",
    "image_urls": ["https://your-cdn/ref1.jpg"],
    "aspect_ratio": "9:16",
    "resolution": "1080p"
  }'

Poll GET /v1/video/{task_id} as usual. Live 24H health: GET /v1/models/status and GET /v1/models/status/timeline report it under the name Omni Flash Murah. If the engine is off, GET /v1/models returns "available": false and submits answer 503.

Omni Flash

Model ID: omni-flash · Mode: t2v, i2v · Resolution: 720p, 1080p, 4k · Duration: 6/8/10s · Aspect: 16:9, 9:16, 1:1

Pricing: 720p/1080p = 16 tok (RM1.60) · 4K = 30 tok (RM3.00) — same for all durations

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-flash",
    "prompt": "Cinematic shot of a sunset over mountains",
    "duration": 10,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Veo 3.1 Stable

Model ID: veo-3.1-stable · Mode: t2v, i2v · Resolution: 720p, 1080p · Duration: 4/6/8s · Aspect: 16:9, 9:16, 1:1

Pricing: 720p: 4s=12, 6s=16, 8s=20 tok · 1080p: 4s=17, 6s=23, 8s=29 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-stable",
    "prompt": "A beautiful sunset over the ocean, cinematic drone shot",
    "duration": 6,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'

Veo 3.1 Pro

Model ID: veo-3.1-pro · Mode: t2v, i2v · Resolution: 720p, 1080p, 4k · Duration: auto · Aspect: 16:9, 9:16, 1:1

Pricing: 720p = 9 tok (RM0.90) · 1080p = 11 tok (RM1.10) · 4k = 14 tok (RM1.40)

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-pro",
    "prompt": "Cinematic product showcase with dynamic camera movement",
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'

Veo 3.1 Fast ⚡

Model ID: veo-3.1-fast · Mode: t2v, i2v · Resolution: 720p, 1080p, 4k (same price) · Duration: auto · Aspect: 16:9, 9:16, 1:1

Pricing: 12 tok flat (RM1.20) — all resolutions, fastest Veo model

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "prompt": "Quick product video with dynamic zoom effects",
    "resolution": "4k",
    "aspect_ratio": "16:9"
  }'

Seedance 2.5 Global Terbaru🔥

Model ID: seedance-25 · Mode: t2v, i2v, multimodal · Resolution: 480p–4k · Duration: -1 (smart) atau 4–30s · Audio included · Multimodal up to 30 images + 10 videos + 10 audios

Pricing: 480p/5s = 39 tok · 720p/5s = 79 tok · 720p/10s = 151 tok · 1080p/5s = 91 tok · 4k/30s = 572 tok

Note: i2v supports adaptive aspect ratio only. Auto mode detection: 1–2 images → i2v (first/last frame) · video/audio refs or >2 images → multimodal · none → t2v.

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-25",
    "prompt": "A young woman in a burgundy coat walking through a dusk alley, natural light, cinematic",
    "duration": 10,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'
Multimodal example (image + video + audio refs)
curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-25",
    "prompt": "@Image 1 as the opening frame, match @Video 1 camera drift, score from @Audio 1",
    "image_urls": ["https://example.com/ref.jpg"],
    "video_urls": ["https://example.com/motion.mp4"],
    "audio_urls": ["https://example.com/score.mp3"],
    "duration": 15,
    "resolution": "1080p"
  }'

Seedance 2.0 Fast

Model ID: seedance-2-fast · Mode: t2v, i2v, multimodal · Resolution: 480p–4k · Duration: 5/10/15s · Audio included

Pricing: 720p/5s = 40 tok · 720p/10s = 73 tok · 1080p/5s = 48 tok · 4k/10s = 114 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-fast",
    "prompt": "A dancer performing contemporary dance in a studio",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Seedance 2.0 Standard

Model ID: seedance-2-standard · Mode: t2v, i2v, multimodal · Resolution: 480p–native4k · Duration: 5/10/15s · Audio included

Pricing: 720p/5s = 48 tok · 1080p/10s = 110 tok · native1080p/5s = 137 tok · native4k/10s = 457 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-standard",
    "prompt": "Aerial drone shot of a tropical island at golden hour",
    "duration": 10,
    "resolution": "native1080p",
    "aspect_ratio": "16:9"
  }'

Seedance 2.0 Mini

Model ID: seedance-mini · Mode: t2v, i2v, multimodal · Resolution: 720p/1080p · Duration: 5/10/15s · Audio included · Multimodal up to 9 images + 3 videos

Pricing: t2v 720p/5s = 26 tok · t2v 1080p/5s = 35 tok · multi 720p/5s = 30 tok · multi 1080p/10s = 65 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-mini",
    "prompt": "A product showcase with soft studio lighting and smooth camera glide",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16"
  }'

Wan 2.7

Model ID: wan-2.7 · Mode: t2v, i2v, spicy_i2v, reference_to_video, video_extend, video_edit · Resolution: 720P, 1080P · Duration: 2–15s · Aspect: 16:9, 9:16, 1:1, 4:3, 3:4

Pricing: 720P/5s = 20 tok · 720P/10s = 37 tok · 1080P/5s = 30 tok · 1080P/10s = 56 tok · Spicy 720p/5s = 32 tok · Spicy 1080p/5s = 46 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan-2.7",
    "mode": "t2v",
    "prompt": "Product showcase spinning on white background",
    "duration": 5,
    "resolution": "720P",
    "aspect_ratio": "16:9"
  }'
More modes (i2v, spicy, ref, extend, edit)
// Image-to-Video
{ "model": "wan-2.7", "mode": "i2v", "image_url": "https://...", "duration": 5, "resolution": "1080P" }

// Spicy I2V (higher quality)
{ "model": "wan-2.7", "mode": "spicy_i2v", "image_url": "https://...", "duration": 5, "resolution": "720P" }

// Reference-to-Video (multi images + videos)
{ "model": "wan-2.7", "mode": "reference_to_video", "prompt": "...", "image_urls": ["url1","url2"], "video_urls": ["url3"], "duration": 5, "resolution": "720P", "aspect_ratio": "16:9" }

// Video Extend
{ "model": "wan-2.7", "mode": "video_extend", "video_url": "https://...", "duration": 5, "resolution": "1080P" }

// Video Edit (swap characters)
{ "model": "wan-2.7", "mode": "video_edit", "prompt": "Replace character with person in image", "video_url": "https://...", "image_urls": ["https://face.jpg"], "duration": 0, "resolution": "720P", "aspect_ratio": "16:9", "input_duration": 5 }

Wan 3.0 / Wan 3.0 Prime NEW

Model ID: wan-3.0 (Standard) · wan-3.0-prime (Prime) · Mode: i2v, r2v · Resolution: 480P, 720P, 1080P · Duration: 0 (auto) or 2–30s · Aspect: adaptive, 16:9, 9:16, 1:1, 4:3, 3:4

Pricing (per-sec, auto=5s): Std 480P=4 · 720P=6 · 1080P=9 tok/s · Prime 480P=5 · 720P=8 · 1080P=14 tok/s. r2v bills output + min(input,5)s.

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan-3.0",
    "mode": "i2v",
    "prompt": "Camera slowly pushes in, product turns to reveal label",
    "image_url": "https://.../product.jpg",
    "duration": 5,
    "resolution": "720P",
    "aspect_ratio": "adaptive"
  }'
More: last-frame transition, r2v, Prime
// I2V first→last transition
{ "model": "wan-3.0", "mode": "i2v", "image_url": "https://first.jpg", "last_image_url": "https://last.jpg", "duration": 5, "resolution": "1080P" }

// Reference-to-Video (multi image/video refs; addressed as Image 1, Video 1 in prompt)
{ "model": "wan-3.0", "mode": "r2v", "prompt": "Image 1 product held by person from Video 1", "image_urls": ["https://p.jpg"], "video_urls": ["https://ref.mp4"], "duration": 10, "resolution": "720P", "input_duration": 5 }

// Prime tier (higher fidelity)
{ "model": "wan-3.0-prime", "mode": "i2v", "image_url": "https://...", "duration": 0, "resolution": "1080P", "aspect_ratio": "adaptive" }

Sora 2

Model ID: sora-2 · Mode: t2v · Resolution: 1080p · Duration: 4/8/12/16/20s · Aspect: 16:9, 9:16, 1:1

Pricing: 4s=28 · 8s=46 · 12s=65 · 16s=84 · 20s=103 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A cinematic tracking shot through a futuristic city at night",
    "duration": 8,
    "aspect_ratio": "16:9"
  }'

HappyHorse 1.0

Model ID: happyhorse-1.0 · Mode: t2v, i2v · Resolution: 720p, 1080p · Duration: 3–15s · Aspect: 16:9, 9:16, 1:1, 4:3, 3:4

Pricing: 720p: 3s=22, 5s=34, 10s=64, 15s=94 tok · 1080p: 3s=26, 5s=40, 10s=76, 15s=112 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.0",
    "prompt": "A playful kitten chasing butterflies in a garden",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

HappyHorse 1.1

Model ID: happyhorse-1.1 · Mode: t2v, i2v · Resolution: 720p, 1080p · Duration: 3–15s · Aspect: 16:9, 9:16, 1:1, 4:3, 3:4

Pricing: Same as 1.0 — quality upgrade, no price change. 720p: 3s=22, 5s=34, 10s=64, 15s=94 tok · 1080p: 3s=26, 5s=40, 10s=76, 15s=112 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.1",
    "prompt": "Cinematic slow-motion of a horse galloping through mist at sunrise",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'

Kling V3.0 Standard

Model ID: kling-std · Mode: t2v, i2v, ref2v, video_edit, motion · Resolution: 1080p · Duration: 3–15s · Sound sync

Pricing: t2v 5s=19 tok · 10s=38 tok · video_edit=50 tok · motion V3 3s=23 / 10s=56 / 30s=150 tok · V2.6 add-on: model kling-motion-v26-std

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-std",
    "mode": "t2v",
    "prompt": "A samurai drawing his katana in the rain",
    "duration": 5,
    "aspect_ratio": "16:9",
    "sound": true
  }'

Kling V3.0 Pro

Model ID: kling-pro · Mode: t2v, i2v, ref2v, video_edit, motion · Resolution: 1080p · Duration: 3–15s · Sound sync

Pricing: t2v 5s=24 tok · 10s=48 tok · video_edit=31 tok · motion V3 3s=28 / 10s=73 / 30s=202 tok · V2.6 add-on: model kling-motion-v26-pro

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-pro",
    "mode": "i2v",
    "prompt": "The woman walks forward, hair flowing in wind",
    "image_url": "https://your-image-url.jpg",
    "duration": 5,
    "sound": true
  }'

Kling V3.0 4K Ultra HD

Model ID: kling-4k · Mode: t2v, i2v, ref2v · Resolution: 4K · Duration: 3–15s

Pricing: 3s=53 tok · 5s=85 tok · 10s=163 tok · 15s=241 tok

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-4k",
    "mode": "t2v",
    "prompt": "Ultra-detailed aerial shot of a luxury resort at sunset",
    "duration": 10,
    "aspect_ratio": "16:9"
  }'

🖼️ Image Models

GPT Image 2

Model ID: gpt-image-2 · Aspect: 1:1, 16:9, 9:16

Pricing: 4 tok per image (RM0.40)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A modern minimalist logo for a tech startup",
    "aspect_ratio": "1:1"
  }'

GPT Image 1.5

Model ID: gpt-image-1-5 · Aspect: 1:1, 16:9, 9:16 · Sharp text rendering

Pricing: 4 tok per image (RM0.40)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-1-5",
    "prompt": "A bold typographic poster that says SALE NOW",
    "aspect_ratio": "16:9"
  }'

Nano Banana

Model ID: nano-banana · Aspect: 1:1, 16:9, 9:16 · Cheapest image model

Pricing: 2 tok per image (RM0.20)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana",
    "prompt": "A cute cartoon cat sitting on a couch",
    "aspect_ratio": "1:1"
  }'

Nano Banana 2

Model ID: nano-banana-2 · Aspect: 1:1, 16:9, 9:16 · Improved quality

Pricing: 4 tok per image (RM0.40)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-2",
    "prompt": "Professional headshot, studio lighting",
    "aspect_ratio": "1:1"
  }'

Nano Banana Pro

Model ID: nano-banana-pro · Aspect: 1:1, 16:9, 9:16 · Best quality

Pricing: 6 tok per image (RM0.60)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "prompt": "Hyperrealistic food photography, gourmet burger with dramatic lighting",
    "aspect_ratio": "16:9"
  }'

Grok

Model ID: grok · Aspect: 1:1, 16:9, 9:16 · Fast & budget

Pricing: 2 tok per image (RM0.20)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok",
    "prompt": "A neon-lit cyberpunk street at night, rain reflections",
    "aspect_ratio": "9:16"
  }'

Grok Stable

Model ID: grok-stable · Aspect: 1:1, 16:9, 9:16 · Official, stable

Pricing: 2 tok per image (RM0.20)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-stable",
    "prompt": "Professional product shot of a perfume bottle, soft studio light",
    "aspect_ratio": "1:1"
  }'

Grok Quality

Model ID: grok-quality · Aspect: 1:1, 16:9, 9:16 · High quality (1k/2k)

Pricing: 5 tok per image (RM0.50)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-quality",
    "prompt": "Cinematic portrait, dramatic rim lighting, ultra detailed",
    "aspect_ratio": "16:9"
  }'

Seedream 4.5

Model ID: seedream-v45 · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4 · Edit up to 10 refs

Pricing: 3 tok per image (RM0.30)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v45",
    "prompt": "Cinematic wuxia movie poster, dramatic night rain, ultra detailed",
    "aspect_ratio": "9:16"
  }'

Seedream 5 Lite

Model ID: seedream-v5lite · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4 · Edit up to 10 refs

Pricing: 3 tok per image (RM0.30)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5lite",
    "prompt": "Modern flat illustration weather forecast chart, clean vector style",
    "aspect_ratio": "16:9"
  }'

Seedream 5 Pro

Model ID: seedream-v5pro · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4 · Edit up to 10 refs

Pricing: 5 tok per image (RM0.50)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-v5pro",
    "prompt": "High-end skincare e-commerce hero shot, glass serum bottle, soft studio lighting, ultra detailed",
    "aspect_ratio": "9:16"
  }'

Dola Seedream 5.0 Pro

Model ID: seedream-50pro · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4 · Edit up to 10 refs

Pricing: 7 tok per image (RM0.70)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedream-50pro",
    "prompt": "Luxury perfume bottle on marble, soft golden light, commercial product photography",
    "aspect_ratio": "1:1"
  }'

Jimeng 4.6

Model ID: jimeng46 · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4 · Edit up to 6 refs

Pricing: 3 tok per image (RM0.30)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jimeng46",
    "prompt": "Professional Japanese anime illustration, full-body portrait, premium quality",
    "aspect_ratio": "9:16"
  }'

Flux Klein

Model ID: flux-klein · Aspect: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2 · Edit 1 ref

Pricing: 2 tok per image (RM0.20)

curl -s -X POST https://api.aividlab.shop/v1/image/generate \
  -H "Authorization: Bearer *** \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-klein",
    "prompt": "Photorealistic product shot, soft studio lighting, crisp text on label",
    "aspect_ratio": "9:16"
  }'

📡 Polling & Status

Check Generation Status

curl -s https://api.aividlab.shop/v1/video/1234 \
  -H "Authorization: Bearer YOUR_API_KEY"

# For music/TTS:
curl -s https://api.aividlab.shop/v1/music/1234 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response: {"status": "completed", "result_url": "https://...", "progress": 100}

Statuses: submitted → processing → completed / failed

Use the correct endpoint: /v1/video/{id} for video, /v1/image/{id} for image, /v1/music/{id} for music & TTS.

Check Balance

curl -s https://api.aividlab.shop/v1/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

Response: {"available": 150, "reserved": 0, "total_topup": 200, "total_spent": 50}

🎵 Music & TTS Models

Music and TTS use POST /v1/music/generate and POST /v1/tts/generate respectively. Poll status via GET /v1/music/{task_id}. Result is an audio URL (MP3). URLs expire in 24h — download immediately.

🎵 Song Generation

Suno V5.5

Model ID: suno-v5.5 · Latest Suno model · Full custom song from lyrics + style tags

Pricing: 9 tok (RM0.90) per song

Required: title, lyrics, tags

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v5.5",
    "title": "Rindu Di Hati",
    "lyrics": "[Verse]\nMalam ini aku sendiri\nMemandang langit gelap\n\n[Chorus]\nRindu ini membara\nTiada henti walau jauh",
    "tags": "pop melayu, sedih, slow ballad, female vocal"
  }'

Suno V5 / V4.5

Model IDs: suno-v5, suno-v4.5 · Same params as V5.5

Pricing: 9 tok (RM0.90) per song

Mureka 8 Song

Model ID: mureka-v8-song · Full song with vocals · Supports vocal clone & reference

Pricing: 6 tok (RM0.60) per song

Required: lyrics · Optional: prompt (style), vocal_id, reference_id, melody_id, n (1-3)

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mureka-v8-song",
    "lyrics": "[Verse]\nAku berjalan tanpa arah\n[Chorus]\nHati ini masih rindu",
    "prompt": "upbeat pop, female vocal, acoustic guitar"
  }'

Mureka 7.6 Song / O2

Model IDs: mureka-v7.6-song (5 tok), mureka-o2-song (6 tok) · Same params as Mureka 8

MiniMax Music 2.6

Model ID: minimax-music-2.6 · Full song or instrumental · Lyrics optimizer

Pricing: 9 tok (RM0.90) per song

Optional: prompt (style), lyrics, is_instrumental (bool)

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-music-2.6",
    "prompt": "cinematic orchestral epic battle theme",
    "is_instrumental": true
  }'

🎼 BGM / Instrumental

Mureka 8 BGM / 7.6 BGM

Model IDs: mureka-v8-bgm (6 tok), mureka-v7.6-bgm (5 tok) · Instrumental without vocals

Required: prompt (style/mood description)

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mureka-v8-bgm",
    "prompt": "calm lo-fi hip hop, rainy day vibes, soft piano"
  }'

✍️ AI Lyrics Generation

Suno Lyrics / Mureka AI Lyrics

Model IDs: suno-lyrics, mureka-lyrics · Generate lyrics from a topic/theme

Pricing: 4 tok (RM0.40) per call

Required: prompt (theme/topic)

Response: result contains lyrics field (text, not audio URL)

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-lyrics",
    "prompt": "lagu cinta putus asa, gaya pop melayu, penuh emosi"
  }'

🔁 Song Extend

Mureka 8 Extend / 7.6 Extend

Model IDs: mureka-v8-extend (8 tok), mureka-v7.6-extend (5 tok) · Continue an existing song

Required: file_url (audio URL), lyrics (new lyrics for extension)

Optional: extend_at (ms, default 8000), extend_type ("tail"/"head", v8 only)

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mureka-v8-extend",
    "file_url": "https://cdn.example.com/my-song.mp3",
    "lyrics": "[Bridge]\nDi sini aku menunggu\nWalau hujan tak berhenti",
    "extend_type": "tail"
  }'

🎧 AI Cover

MiniMax Cover

Model ID: minimax-cover · Restyle a reference audio with new instrumental

Pricing: 9 tok (RM0.90) per call

Required: file_url (audio URL) · Optional: prompt (style), lyrics

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-cover",
    "file_url": "https://cdn.example.com/reference.mp3",
    "prompt": "acoustic jazz version"
  }'

🎤 Vocal Clone

Mureka Vocal Clone

Model ID: mureka-vocal-clone · Clone a voice from audio sample

Pricing: 206 tok (RM20.60) per clone

Required: file_url (clean vocal audio, 10s–5min, MP3/WAV)

Response: result contains vocalId — use this when generating songs with mureka-v8-song

curl -s -X POST https://api.aividlab.shop/v1/music/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mureka-vocal-clone",
    "file_url": "https://cdn.example.com/vocal-sample.mp3"
  }'

🗣️ Text-to-Speech (TTS)

TTS Models

Uses POST /v1/tts/generate (separate endpoint from music)

Model IDNameCostFeatures
speech-2.8-hdSpeech-2.8 HD6 tok (RM0.60)Latest HD. 40+ languages, emotion, interjections
speech-2.6-hdSpeech-2.6 HD8 tok (RM0.80)HD with emotion and pitch control
speech-2.6-turboSpeech-2.6 Turbo6 tok (RM0.60)Fast generation, low latency
speech-02-hdSpeech-02 HD6 tok (RM0.60)High-definition voice
speech-02-turboSpeech-02 Turbo5 tok (RM0.50)Budget TTS, fastest speed

Required: model, text (1–10,000 chars)

Optional: voice_id (default: "Wise_Woman"), speed (0.5–2.0), volume (0.1–10), pitch (-12 to +12), emotion (neutral/happy/sad/angry/fearful/disgusted/surprised)

Voices: Wise_Woman, Gentle_Woman, Warm_Man, Deep_Man, Narrator, Cheerful_Girl, Calm_Boy, Storyteller, Broadcaster, Customer_Service

curl -s -X POST https://api.aividlab.shop/v1/tts/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "text": "Selamat datang ke AIVidLab. Platform AI terbaik untuk content creator.",
    "voice_id": "Warm_Man",
    "speed": 1.0,
    "emotion": "happy"
  }'
Poll status: Use GET /v1/music/{task_id} (same endpoint as music). Result is an audio MP3 URL.

💰 Music & TTS Pricing Summary

ModelCategoryCost (Token)Cost (RM)
suno-v5.5 / suno-v5 / suno-v4.5Song9RM0.90
mureka-v8-songSong6RM0.60
mureka-v7.6-songSong5RM0.50
mureka-o2-songSong6RM0.60
minimax-music-2.6Song/Instrumental9RM0.90
mureka-v8-bgmBGM6RM0.60
mureka-v7.6-bgmBGM5RM0.50
suno-lyrics / mureka-lyricsLyrics4RM0.40
mureka-v8-extendExtend8RM0.80
mureka-v7.6-extendExtend5RM0.50
minimax-coverCover9RM0.90
minimax-cover-prePreprocess9RM0.90
mureka-vocal-cloneVocal Clone206RM20.60
speech-2.8-hdTTS6RM0.60
speech-2.6-hdTTS8RM0.80
speech-2.6-turboTTS6RM0.60
speech-02-hdTTS6RM0.60
speech-02-turboTTS5RM0.50

Error Codes

CodeMeaning
400Invalid parameters (e.g. prompt too short, invalid model ID)
401Invalid or missing API key
402Insufficient token balance
403Content policy violation (prompt rejected)
404Resource not found
413File too large (upload max 10MB)
429Rate limited — max 30 req/min per key
500Internal server error (tokens auto-refunded)
503Model temporarily unavailable — retry later
All failed generations are automatically refunded. Check GET /v1/balance to confirm.

Webhooks

Register a webhook URL to receive POST callbacks when generations complete or fail.

Register webhook

curl -s -X POST https://api.aividlab.shop/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.com/callback",
    "events": ["video.completed", "image.completed", "music.completed", "tts.completed", "job.failed"]
  }'

Webhook payload (video.completed)

{
  "event": "video.completed",
  "task_id": "1234",
  "model": "Veo 3.1 Fast",
  "status": "completed",
  "result_url": "https://cdn.example.com/video.mp4",
  "cost_tokens": 12,
  "timestamp": "2026-07-03T10:30:00Z"
}

Webhook payload (job.failed)

{
  "event": "job.failed",
  "task_id": "1235",
  "model": "Kling V3.0 Pro",
  "status": "refunded",
  "error_message": "Model timeout — tokens refunded",
  "cost_tokens": 0,
  "timestamp": "2026-07-03T10:31:00Z"
}
Events: video.completed, image.completed, music.completed, tts.completed, job.failed, all (receive everything). Failed deliveries are retried 3× with exponential backoff.

Console Log

Live generation log — enter your API key to monitor requests in real time.

[--:--:--] Waiting for connection...

Dashboard Analytics

Model Success Rates

Connect above to view live model health data.

Connect with your API key to load analytics.

Uptime Timeline (24h)

144 segments, each representing 10 minutes.

Connect with your API key to load timeline.

Examples

Submit a video generation

curl -s -X POST https://api.aividlab.shop/v1/video/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "prompt": "A cinematic shot of a mountain at sunset",
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'

# Response:
# {"task_id": "1234", "status": "submitted", "model": "veo-3.1-fast", "cost_tokens": 12}

Poll generation status (recommended: every 5s)

curl -s https://api.aividlab.shop/v1/video/1234 \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response (processing):
# {"status": "processing", "progress": 60}

# Response (completed):
# {"status": "completed", "progress": 100, "result_url": "https://cdn.../video.mp4"}
Polling tips: Poll every 5s. Typical generation times: Veo Fast ~1min, Kling ~2min, Seedance ~3min, Omni ~5min.
Statuses: submitting → submitted → processing → completed | failed (tokens auto-refunded on failure).
⚠️ Result URLs expire after 24 hours. Download and store videos on your own CDN.

Check balance

curl -s https://api.aividlab.shop/v1/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response:
# {"available": 150, "reserved": 12, "total_topup": 200, "total_spent": 38}

Full integration flow (Python)

import requests, time

API = "https://api.aividlab.shop"
KEY = "avl_your_key_here"
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

# 1. Submit
resp = requests.post(f"{API}/v1/video/generate", headers=HEADERS, json={
    "model": "veo-3.1-fast",
    "prompt": "Product showcase with zoom effect",
    "resolution": "1080p",
    "aspect_ratio": "9:16"
})
task_id = resp.json()["task_id"]
print(f"Submitted: {task_id}")

# 2. Poll until done (every 5s, max 5min)
for _ in range(60):
    time.sleep(5)
    r = requests.get(f"{API}/v1/video/{task_id}", headers=HEADERS)
    data = r.json()
    if data["status"] == "completed":
        print(f"Done! Video: {data['result_url']}")
        break
    elif data["status"] in ("failed", "refunded"):
        print(f"Failed: {data.get('error_message', 'Unknown')}")
        break
    print(f"  Progress: {data.get('progress', 0)}%")

Music generation flow (Python)

import requests, time

API = "https://api.aividlab.shop"
KEY = "avl_your_key_here"
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

# 1. Generate song with Suno V5.5
resp = requests.post(f"{API}/v1/music/generate", headers=HEADERS, json={
    "model": "suno-v5.5",
    "title": "Malam Rindu",
    "lyrics": "[Verse]\nAku di sini sendiri\nMengenang saat bersamamu\n\n[Chorus]\nMalam rindu oh malam rindu\nKau jauh namun ku rasa dekat",
    "tags": "pop ballad, malay, emotional, female vocal"
})
task_id = resp.json()["task_id"]
print(f"Music submitted: {task_id}, cost: {resp.json()['cost_tokens']} tokens")

# 2. Poll via /v1/music/{task_id}
for _ in range(60):
    time.sleep(5)
    r = requests.get(f"{API}/v1/music/{task_id}", headers=HEADERS)
    data = r.json()
    if data["status"] == "completed":
        print(f"Done! Audio: {data['result_url']}")
        # Download audio (expires in 24h)
        audio = requests.get(data["result_url"])
        with open("song.mp3", "wb") as f:
            f.write(audio.content)
        break
    elif data["status"] in ("failed", "refunded"):
        print(f"Failed: {data.get('error', 'Unknown')} — tokens auto-refunded")
        break

Text-to-Speech flow (Python)

import requests, time

API = "https://api.aividlab.shop"
KEY = "avl_your_key_here"
HEADERS = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}

# 1. Submit TTS
resp = requests.post(f"{API}/v1/tts/generate", headers=HEADERS, json={
    "model": "speech-2.8-hd",
    "text": "Selamat datang ke kedai kami. Hari ini ada promosi besar-besaran!",
    "voice_id": "Warm_Man",
    "speed": 1.0,
    "emotion": "happy"
})
task_id = resp.json()["task_id"]

# 2. Poll via /v1/music/{task_id} (same endpoint)
for _ in range(30):
    time.sleep(3)
    r = requests.get(f"{API}/v1/music/{task_id}", headers=HEADERS)
    data = r.json()
    if data["status"] == "completed":
        print(f"TTS done! Audio: {data['result_url']}")
        break
    elif data["status"] in ("failed", "refunded"):
        print(f"Failed: {data.get('error')}")
        break

AIVidLab Developer LLM

OpenAI-compatible, text-only, non-streaming API. Use your existing AIVidLab API key.

Base URL: https://api.aividlab.shop/v1   Chat: POST /chat/completions

Models: GET /llm/models   Usage: GET /llm/usage   Documentation

Aliases: aividlab-gpt-5.6-sol, aividlab-gpt-5.6-terra, aividlab-gpt-5.6-luna, aividlab-gpt-5.5, aividlab-deepseek-v4-pro, aividlab-deepseek-v4-flash, aividlab-qwen-3.8-max, aividlab-glm-5.2, aividlab-grok-4.5, aividlab-gemini-3.6-flash.