Documentation

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.