How smart routing works
What flux-auto does for you, why routing is deterministic today, and how you stay in control by using a tier alias or pinning a model.
Smart routing is the reason FluxRouter exists: you send a request to flux-auto and Flux picks a sensible model for it, so you do not have to choose a model for every prompt. This page explains what that means in practice.
What does flux-auto do for me?
When you set model to flux-auto, Flux inspects your request and picks a model sized for the work. Lightweight requests go to fast, inexpensive models; harder requests go to stronger ones. You get a reasonable result without managing model selection yourself, and you pay the rate of whichever model actually served the request rather than a frontier rate on everything.
curl https://api.fluxrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $FLUX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "flux-auto",
"messages": [{ "role": "user", "content": "Summarize this paragraph." }]
}'
How does flux-auto decide which model to use?
Today, routing is deterministic tier routing. Flux matches your request to a tier and serves it with that tier's default model. The three tiers map to the three pricing lanes described in Tiers and pricing lanes.
Because routing is deterministic, the same kind of request gets the same class of model. Behavior is predictable: you are not going to get a wildly different model from one identical call to the next.
Is the router self-learning?
No. Routing today is deterministic tier routing, not a self-learning system. A request is matched to a tier and served by that tier's default model. If that changes in a way that affects you, it will be documented here.
How do I stay in control?
You are never locked into whatever flux-auto would pick. You have two levels of control, in increasing strictness:
- Choose a tier. Pass a tier alias instead of
flux-auto:flux-fast,flux-standard, orflux-reasoning. This tells Flux which class of model you want without naming a specific one. - Pin an exact model. Pass a
flux-pinned-*alias to lock in a single backing model every time. See flux-auto vs pinning a model.
The authoritative list of aliases you can send is always GET /v1/models.
How do I see what it picked?
Every response includes X-Flux-* headers that tell you which model served the request, whether the router changed your requested model, and what the request cost. See Transparency headers.