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 — 9 values

language · image · video · embedding · reranking · transcription · audio-understanding · realtime · speech 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 veo-3, which returns video and audio, is video, and why gemini-3-flash-audio, which returns text, is audio-understanding: you reach it at POST /v1/audio/understand and it bills per minute of audio, not per token. 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.

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. 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.

Response

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.