GET /v1/models

Read the models your key can use, what each one does and its list price, at run time from GET /v1/models, instead of hard-coding them.

GET /v1/models lists every model id your key can use. On top of the usual OpenAI-compatible fields, each row says what the model does (capability), whether your key can use it (entitlement) and, for ability models, its list price. Read it at run time rather than copying ids or prices into your code: it is the same feed the Flux site reads.

EndpointGET https://api.fluxrouter.ai/v1/models (also /models)
AuthAuthorization: Bearer sk-flux... (or x-api-key). Any valid key, free or paid.
FilteredOnly the models this key's allowlist can use
bash
curl https://api.fluxrouter.ai/v1/models \
  -H "Authorization: Bearer $FLUX_API_KEY"

Row fields

json
{
  "object": "list",
  "data": [
    {
      "id": "flux-image",
      "object": "model",
      "capability": "image",
      "display_name": "Flux Image (default)",
      "list_price_microcents": 40000,
      "price_unit": "image",
      "min_billed_units": 1,
      "entitlement": "paid_cleared"
    }
  ]
}

The numbers in the example are made up; read your own. Rows also carry the standard fields (created, owned_by) that OpenAI-compatible clients expect.

FieldOnMeaning
idevery rowThe model id to send as model.
capabilityevery rowWhat the model does: chat, image (image generation), audio (speech to text) or speech (text to speech). Skip rows with a value you do not recognise.
entitlementevery rowWhether this key can use paid abilities: paid_cleared (yes), premium_locked (not until the plan is paid and cleared) or open (no plan check applies).
display_nameability rowsA readable name.
list_price_microcentsability rowsThe list price of one unit, in millionths of a US dollar. null means the price is not published; show it as unavailable, never guess.
price_unitability rowsWhat one unit is: image, audio_second or character.
min_billed_unitsability rowsThe fewest units one call is billed for. For speech to text this is a minimum clip length.

Chat rows carry capability and entitlement only. Chat is priced per token by tier; see Pricing and How billing works.

Page reading, search, apps and the second-opinion ceiling have no row yet. Their prices are on Pricing.

Convert a price

list_price_microcents is in millionths of a dollar, so divide by 1,000,000 for US dollars. Multiply by min_billed_units to get the smallest possible charge.

python
import requests

rows = requests.get(
    "https://api.fluxrouter.ai/v1/models",
    headers={"Authorization": f"Bearer {FLUX_API_KEY}"},
).json()["data"]

for row in rows:
    if row.get("capability") != "image":
        continue
    micro = row.get("list_price_microcents")
    price = "unavailable" if micro is None else f"${micro / 1_000_000:.4f} per {row['price_unit']}"
    print(row["id"], row.get("display_name"), price)
ts
const resp = await fetch('https://api.fluxrouter.ai/v1/models', {
  headers: { Authorization: `Bearer ${process.env.FLUX_API_KEY}` },
});
const { data } = await resp.json();

for (const row of data.filter((r: any) => r.capability === 'audio')) {
  const micro = row.list_price_microcents;
  const perSecond = micro == null ? null : micro / 1_000_000;
  const minimum = perSecond == null ? null : perSecond * row.min_billed_units;
  console.log(row.id, perSecond, 'per audio second, at least', minimum);
}

List price and what you pay

list_price_microcents is the plan price. On pay as you go, a markup is added once on top; the rate is on Pricing. What each call actually cost is on your usage page. Some responses also say so directly: the x-flux-cost-usd header on transcription and speech, cost_usd in a search response, and usage.cost in an image edit response.

The current prices, read from this same feed:

  • Images: from $0.01 per image. The price depends on the image model and quality you pick.

These are plan prices. Pay as you go adds 12%, applied once.

  • Speak: from $26 per 1M characters.
  • Transcribe: $0.10 per minute heard.

Each file is billed for at least 10 seconds.

These are plan prices. Pay as you go adds 12%, applied once.