Create AI videos, images and audio from your own app. Everything you can do in the studio, you can call over HTTPS. Credits are charged exactly like in the studio, and the price is always shown before you commit.
Log in, open Developer API in the studio, and press Create key. The key starts with reel_live_ and is shown once — copy it straight away. Keep it secret and never put it in a website or mobile app. You can revoke it at any time.
Send it in a header on every request:
X-API-Key: reel_live_xxxxxxxxxxxxxxxxxxxxxxxx
https://your-domain.com/api. All bodies are JSON (Content-Type: application/json).GET/api/services — no key needed. Returns each model's id, name, type, price, and the options it supports (aspect ratios, durations, and so on).
POST/api/generate/quote
curl -X POST $BASE/api/generate/quote \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"serviceId":"SERVICE_ID","aspectRatio":"16:9","duration":5}'
# → { "credits": 40, "balance": 120, "enough": true, "params": { ... } }
POST/api/generate
curl -X POST $BASE/api/generate \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{
"serviceId": "SERVICE_ID",
"prompt": "A lone traveller walks toward a glowing city at sunrise, slow dolly-in",
"aspectRatio": "16:9",
"duration": 5
}'
Common fields — serviceId and prompt (3–4000 characters) are required. Optional: aspectRatio, duration, resolution, negativePrompt, seed, generateAudio, and a source image with imageUrl or sourceGenerationId (for image-to-video models). Each model accepts only the options listed for it in /api/services; anything else returns a clear 400 error.
The reply contains the job id, status and creditsCharged. Credits are taken when the job is accepted and refunded automatically if it fails.
GET/api/generate/JOB_ID/status
{ "id": "...", "status": "QUEUED | PROCESSING | COMPLETED | FAILED", "outputUrl": "...", "error": null }
Poll every 4–5 seconds until status is COMPLETED or FAILED. Videos usually take a few minutes.
GET/api/generate/history — your latest 60 jobs with status and credits charged.
400 — a field is missing or not allowed for this model (the message says which).401 — missing, wrong, or revoked API key.402 — not enough credits (the reply says how many are needed).403 — the account is suspended.429 — too many requests, the daily credit limit, or too many videos in progress; wait and retry.503 — the studio is at capacity for today; try again tomorrow.