Image · Video · Audio · 3D · LLM
One API for every
generative model
FLUX, SDXL, Kling, WAN and more behind a single REST endpoint. One key, one request shape, no GPUs to run.
Commercial usage rights on every plan · Cancel anytime
Pick your endpoint
Every family shares one API key and the same submit-then-poll pattern.
Switching models is a model_id change, not a rewrite.
FLUX API →
FLUX.1 [schnell], [dev], [pro] and FLUX 2 Pro. The strongest prompt adherence and text rendering available in an open-weight image model.
Image generation →
Text-to-image, image-to-image, and inpainting across FLUX, SDXL, and Qwen Image. Pay per image or go flat monthly.
Video generation →
Kling, LTX, Vidu and WAN. Prompt or still frame in, MP4 out, billed by output duration rather than by request.
Stable Diffusion →
Hosted SDXL and SD 1.5 with LoRA adapters and ControlNet conditioning on the same endpoint. Familiar parameters, no VRAM.
Open source models →
Every open-weight image, video, audio and 3D model, with the meter switched off at $149 a month.
Audio & 3D
Text-to-speech, music generation, and 3D asset generation. Audio from $0.001 per character, 3D from $0.0047 per generation.
Your first call
One POST request. The same payload shape works across every model on the
platform — swap model_id and nothing else changes.
curl -X POST "$API_BASE/api/v6/images/text2img" \ -H "Content-Type: application/json" \ -d '{ "key": "YOUR_API_KEY", "model_id": "flux-schnell", "prompt": "an isometric server rack, soft studio lighting, 3d render", "negative_prompt": "blurry, low quality, watermark", "width": 1024, "height": 1024, "samples": 1, "num_inference_steps": 4, "safety_checker": "yes" }'
import requests res = requests.post( API_BASE + "/api/v6/images/text2img", json={ "key": "YOUR_API_KEY", "model_id": "flux-schnell", "prompt": "an isometric server rack, soft studio lighting", "width": 1024, "height": 1024, "num_inference_steps": 4, "safety_checker": "yes", }, timeout=120, ).json() # queued jobs return a fetch_result URL and an eta in seconds if res["status"] == "processing": print("poll:", res["fetch_result"], "eta:", res["eta"]) else: print(res["output"])
const res = await fetch(`${API_BASE}/api/v6/images/text2img`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ key: process.env.FLUX3_API_KEY, model_id: "flux-schnell", prompt: "an isometric server rack, soft studio lighting", width: 1024, height: 1024, num_inference_steps: 4, safety_checker: "yes", }), }); const data = await res.json(); if (data.status === "processing") { await pollUntilReady(data.fetch_result); } else { console.log(data.output); }
API_BASE is issued with your API key.
Why not self-host
Open weights are free to download. Running them in production is not.
Idle GPUs are the real cost
An A100 bills by the hour whether or not it is generating. At bursty volume most of that spend is idle capacity. Here you pay per generation, or a flat rate.
No cold starts
Loading FLUX or SDXL weights into VRAM takes tens of seconds on a cold container. Models stay resident, so first-request latency matches steady state.
New models, no redeploy
New releases arrive as additional model_id values. No image rebuilds,
no multi-gigabyte weight pulls, no storage planning.
Commercial rights sorted
FLUX.1 [dev] carries a non-commercial base licence when self-hosted. Generations through the API include commercial usage rights on every plan.
Pricing
Subscribe for predictable volume, pay from wallet for burst, or remove the ceiling entirely on open-source models.
Basic
- 3,250 API calls per billing period
- 5 concurrent API requests
- Access to all models
- Discord and email support
Standard Popular
- 10,000 API calls per billing period
- 10 concurrent API requests
- Access to all models
- Priority developer support
Open Source Unlimited
- Unlimited open-source generations
- 15 parallel generations
- Priority GPU clusters
- Team members, 24/7 support
| Pay as you go | Rate |
|---|---|
| Open-source image models (FLUX.1 schnell / dev, SDXL) | from $0.0047 per image |
| FLUX 2 Pro | $0.054 per image |
| Qwen Image 2.0 Pro | $0.075 per image |
| Video generation | from $0.02 per second |
| Audio / text to speech | from $0.001 per character |
| 3D generation | $0.0047 per generation |
Frequently asked
Do I need a separate key for each model type?
No. One API key covers image, video, audio, 3D, and LLM endpoints. Switching
between them is a matter of the endpoint path and model_id.
Is the API synchronous or asynchronous?
Both. Fast requests return status: "success" with output URLs inline.
Queued jobs return status: "processing" plus a
fetch_result URL and an eta in seconds to poll against.
Video almost always queues.
Can I use output commercially?
Yes, commercial usage rights are included on all plans. Note that individual open-weight models carry their own licences, which you should review for anything you ship.
How many requests can I run in parallel?
5 on Basic, 10 on Standard, and 15 on Open Source Unlimited. Requests beyond your limit queue rather than fail.
What happens if I cancel?
Plans are month to month and cancellable at any time. See the Refund Policy for details.
Start building
Pick a plan, grab your API key, and make your first call in under five minutes.
View pricing & get API key