Fluxion docs
Everything you need to generate video from a prompt, in the app or over the API.
Introduction
Fluxion turns text and images into video. Pick a model, describe the shot, set duration, aspect ratio, and resolution, then generate. You can work in the playground or call any model over HTTP.
Quickstart
Two HTTP calls: submit a job, then poll it until the video is ready. No SDK required.
# Submit; the response carries the video id.
curl -X POST https://api.fluxion-sys.ai/v1/videos \
-H "Authorization: Bearer $FLUXION_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "A cinematic aerial shot at golden hour",
"seconds": 6,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
# Poll until "status": "completed", then download the MP4.
curl https://api.fluxion-sys.ai/v1/videos/$VIDEO_ID \
-H "Authorization: Bearer $FLUXION_API_KEY"
curl -L -o out.mp4 https://api.fluxion-sys.ai/v1/videos/$VIDEO_ID/content \
-H "Authorization: Bearer $FLUXION_API_KEY"Authentication
Create a key under Profile → API keys and send it as a bearer token on every request:
export FLUXION_API_KEY="sk-xxxxxxxxxxxxxxxxxxxx"Never ship a key in client-side code. Keys carry your credit balance, so rotate or revoke them from the same page if one leaks.
Models overview
Each model has its own strengths, supported durations, resolutions, and per-second pricing. Browse them in the model catalog.
Generating video
Generation is asynchronous. POST /v1/videos holds the credits and returns a video id with "status": "queued"; GET /v1/videos/{id} reports progress until it is completed or failed; GET /v1/videos/{id}/content streams the MP4 and honours Range requests. A failed job returns its credits.
For image-to-video, pass image_url, or post the same fields as multipart/form-data with an image part. Longer clips and higher resolutions cost more credits.
Parameters
prompt, text description of the shot (required).image_url, optional image to animate (image-to-video).seconds, clip length; each model lists the values it accepts.aspect_ratio, e.g. 16:9, 9:16, 1:1.resolution, per model, e.g. 768P or 2K on MiniMax H3.audio, generate sound, on models that support it.seed, for reproducible output, on models that support it.
API reference
Every model shares one endpoint, /v1/videos, and is selected with the request's model field. See the per-model reference, with its exact durations, resolutions and pricing, from any model's playground under the API tab.
Rate limits
Requests are limited per account. Bursting returns HTTP 429 with a Retry-After hint; retry with exponential backoff. Poll a job every few seconds rather than in a tight loop.
Errors
Errors come back as { "error": { "message", "type", "code" } } with a request id in the message, which is worth logging.
400, invalid parameters, e.g. a resolution the model does not support.401, missing or invalid API key.403, not enough credits for the request.429, rate limited.503, no capacity for that model right now; retry shortly.
Billing
Pay per second of generated video, priced per model and resolution. Credits are held when a job is submitted and returned if it fails. Top up and set a low-balance alert from Billing. Credits never expire.
API keys
Create, name, and revoke keys under Profile → API keys, where each one also shows when it was last used and how much it has spent. Treat keys like passwords: they spend your credits.