Skip to main content
GET
No authentication required.

The three axes

Every model is described on three independent axes. They answer different questions, and keeping them apart is what makes the catalog filterable. The distinction that matters: image is a type; generate-images is a use case. One describes the model, the other describes your job.

type — 10 values

language · image · video · embedding · reranking · transcription · audio-understanding · realtime · speech · decisions type is the product line you buy the model under — which endpoint serves it and which unit it bills in — not simply what it emits. That is why whisper-v3-turbo, which returns text, is transcription: you reach it at POST /v1/audio/transcriptions and it bills per minute of audio, not per token. realtime and audio-understanding list no models today: realtime sessions are paused, and audio understanding was retired on 2026-10-08, so ?type=realtime and ?type=audio-understanding return an empty list. The audio types split by what you are asking for: transcription writes the words down, audio-understanding answers questions about the sound itself, speech generates audio, and realtime is the bidirectional socket. decisions is the same rule once more: a decisions model takes text and returns a choice with a confidence, never prose, so it is not a language model — you reach it at POST /v1/decisions and it bills per input token.

tags — 12 values

tool-use · reasoning · vision · implicit-caching · explicit-caching · file-input · web-search · image-generation · video-generation · websocket-realtime · websocket-transcription · fast A tag is only set when it is objectively true of the model’s own spec. Three of them — fast, implicit-caching, explicit-caching — describe measured behaviour of a serving route rather than the model, so they are currently unset on every model rather than asserted without evidence.

use_cases — 14 values

write-code · build-agents · chat · write-content · translate · research-web · analyse-documents · solve-math · generate-images · edit-images · generate-video · transcribe-audio · generate-speech · search-documents

Filtering

All filters are query params. Comma-separated values combine as AND, except type — a model has exactly one type, so listing several means OR. Combine tools and structured_outputs with type=language. On their own they also return image, embedding, speech and transcription models whose row says supports_tools: false. The same goes for max_input_price: models billed per image, minute or character report an input price of 0, so they pass any ceiling. creator is who made the model — the value each row carries as owned_by. ?owned_by= is accepted as the same filter, so you can filter by exactly what you just read in the response. Filters compose:
The filters block in the response echoes back exactly what was applied, so you can confirm a param was understood rather than ignored.
recommended_for is deprecated. It is now an alias of use_cases and still works, including the old vocabulary (coding, agent, general, image, …), which is translated to its use_cases equivalent. Prefer use_cases for new integrations. Nothing has been removed — recommended_for remains in every response.

free_tier — what a new key can call

Every row carries free_tier, a boolean. true means the model is in the free tier: the $0.50 signup credit, added once you verify your email, spends on it, so an account that has never added credits can call it. false means it needs a top-up first, and a request from a never-funded key is refused with 402 model_requires_paid before anything is charged.
cost_tier and tier are editorial labels — “cheap”, “balanced”, “premium” — and nothing enforces them. free_tier is the rule the API applies. It is derived from each model’s published price rather than kept as a list of names, so it follows the catalog: a model whose price moves across the line changes side the same day. The line itself, and what it is set to, is on the pricing page. GET /v1/models/recommend carries the field on every model it names, so a recommendation can be filtered the same way.

Response

The row above is abridged: live rows also carry created, weights_source, tier, capability, release_date and output_limit_source.
A model can be served by more than one piece of infrastructure. context_window, max_output_tokens and the supports_* flags describe what is achievable for that model — the largest window reachable, and every capability at least one route can serve. Requests are matched to a route that can handle them, so a call that needs a capability never lands somewhere without it.