skip to content
The catalog

Gateway

The catalog

Every model the gateway serves, with its price and its capabilities, behind one endpoint.

See the catalog

Public list prices need no key:

public catalog
curl -s https://api.conifer.build/v1/catalog

Your key’s callable models and declared capabilities:

terminal
curl -s https://api.conifer.build/v1/models \
  -H "Authorization: Bearer $CONIFER_API_KEY" \
  | jq '.data[] | {id, caps, context_window, pricing}'

This is the list of models your key can call, with prices and caps, and it is the source of truth. The same list is public without a key at GET /v1/catalog and rendered for reading at /models. Models differ from one another. A missing cap is a missing capability, so check before you send tools or images.

Fig. 01the catalog

Served models by lab, at their price

Each dot is one benchmarked model at the gateway's blended price, three parts input to one part output.

$0.10$1$10$100blended price · $ per million tokens (log)OpenAI34 modelsAlibaba29 modelsGoogle17 modelsAnthropic14 modelsZ AI14 modelsDeepSeek9 modelsMeta8 modelsMistral8 modelsSpaceXAI7 modelsKimi6 models

Rows: the 10 labs with the most benchmarked models served, from the same data as /models.

Reading an entry

FieldWhat it tells you
idThe string you put in a request's model field, exactly as listed. A namespaced spelling such as anthropic/claude-opus-5 is accepted and served as the bare id.
providerThe lab behind the model, such as anthropic, deepseek or typesafe.
context_windowThe input budget in tokens. A prompt above it is refused rather than trimmed. For a decision model (Jev) it is TypeSafe's state-plus-longest-question budget, 32K; the whole request's budget is 64K, and the upstream enforces both, relayed as a 422.
max_output_tokensThe output ceiling, where the model has one. A larger max_tokens is clamped to it.
capsWhat the model declares: tools, vision, reasoning, embeddings, decisions. If a string is absent the model does not have that capability. embeddings and decisions name a model served on its own route (POST /v1/embeddings, POST /v1/systemone) that the chat routes refuse; GET /v1/models omits them, GET /v1/catalog lists them.
pricingRates per million tokens for input, output, cache read and cache write. These are the prices you are charged. context_tiers lists higher rates some models bill for the whole request once its input (fresh plus cached tokens) is above above_input_tokens, such as OpenAI's long-context price past 272K. It is [] when the model has none.

The id that lets Conifer choose

beta-auto appears in the list too, with virtual: true. It is not a model. Send it and Conifer picks the model for you from your routing pool, and the receipt says which one answered: x-conifer-requested-model is the id you sent and x-conifer-effective-model is the model that served. How that choice is made and what it costs is on beta-router.

Conifer’s own composed models (conifer-*) are not currently served: they are absent from the catalog, and a request that names one returns a 404.

Which model to use

If you know the model you want, name its id and that is what answers. If you would rather not choose, send beta-auto. Reading a model covers how to pick when you are comparing entries.