Skip to main content
GET
List gateway models
By default, this endpoint only returns models that are currently routable. Set availability=all to include models that are known but not currently available. Catalogue responses are cached for five minutes and may be served for another five minutes while the cache revalidates. This applies to the JSON, RSS, and Atom representations of the current catalogue; the release feed has its own shorter polling cache. GET /models/me is reserved for future guardrail-aware filtering of models for the current caller. It currently returns 501 not implemented, so use GET /models for the shared gateway catalogue today.

OpenAI format

Use GET /v1/models?format=openai for clients that expect OpenAI’s model-list response. The default format=json returns Phaseo’s richer model metadata.
OpenAI format uses the same authentication, regional availability, workspace private models, and filters as native JSON. It returns all matching models unless you supply limit; offset still applies. IDs stay in Phaseo’s canonical form for inference. created uses the catalogue release date, or 0 when unknown; owned_by uses the catalogue organization, private for workspace models, or phaseo when unknown.

Caching the model list

JSON and OpenAI-format responses include a weak ETag header (W/"…"). It changes when the models on the page, limit, offset, total, or the format change. It ignores gateway_region, so the same catalogue served from another region has the same ETag. That is why it is weak: responses that share it are equivalent, but their bytes can differ. RSS, Atom, and error responses do not include one. Send the saved value back unchanged in If-None-Match. If the catalogue has not changed, the response is 304 Not Modified with no body and repeats the ETag, Cache-Control, and Vary headers. Otherwise you get a normal 200 with the new list and a new ETag. If-None-Match also accepts a comma-separated list and *, and the comparison is weak, so the value matches with or without its W/ prefix.
A 304 saves transfer and parsing, because it has no body. The server still evaluates the request: it loads the catalogue and recomputes the ETag. Polling about every 15 minutes is therefore appropriate, downloading the list again only when the catalogue changes. Keep one ETag per request URL, because each page, filter set, and format has its own value.

Service tiers per offer

Each entry in offers includes service_tiers, the service tiers that provider offer accepts. It is an alphabetically sorted subset of flex, priority, standard, and ultrafast, where priority is the Fast tier. A tier is listed when the provider route has active, currently effective pricing for it, and a route that serves one tier only lists just that tier. Some tiers may also be available through separate tier-specific provider routes that are not listed. Prices under pricing remain standard-tier prices.

Useful filters

  • endpoints uses public names like chat.completions, responses, and messages
  • status filters by model lifecycle, for example active, deprecated, or retired
  • provider filters by public provider ID, for example openai, anthropic, or google_vertex
  • provider_status filters the provider rollout tier, for example active, beta, alpha, or not_ready
  • provider_routing_status filters provider-level routing state
  • model_routing_status filters model-level routing state
  • capability_status filters provider capability state for the requested endpoint mapping
  • provider_availability_status filters provider-side availability, for example active, coming_soon, or inactive
  • provider_availability_reason filters provider-side availability reason, for example preview_only, provider_not_ready, gated, access_limited, or region_limited
  • organisation filters by the public model ID prefix, for example anthropic in anthropic/claude-3-haiku
  • availability=active is the default
  • availability=all includes models or providers that are coming_soon, inactive, or not yet publicly routable
  • input_modalities is an alias for input_types
  • output_modalities is an alias for output_types
  • supported_parameters is an alias for params
To inspect the endpoint contract for one model, call GET /models/{author}/{slug}/endpoints. The response separates provider routes and includes the public path, modalities, supported parameter detail, availability, routing state, provider model slug, and pricing summary for each row. Provider entries can also include:
  • availability_status
  • availability_reason
  • provider_status
  • provider_routing_status
  • model_routing_status
  • capability_status

Response

availability_reason is the single-field explanation for why a provider entry is active, preview-only, or inactive.

Authorizations

Authorization
string
header
required

Bearer token authentication

Headers

If-None-Match
string

ETag from an earlier JSON or OpenAI-format response for the same URL. If it still matches, the response is 304 Not Modified with no body. Accepts a comma-separated list, weak (W/) validators, and *.

Query Parameters

Case-insensitive search across model ids, names, descriptions, and organisations.

Maximum string length: 200

Case-insensitive provider or model-organisation search.

Maximum string length: 100
input_modality
enum<string>

Require a supported input modality.

Available options:
text,
image,
audio,
video
minimum_context_tokens
number

Require at least this many input context tokens.

Required range: x >= 0
maximum_input_price_per_million
number

Maximum USD input-token price per million tokens.

Required range: x >= 0
gateway_available_only
boolean
default:false

Return only models with at least one routable gateway offer.

sort_by
enum<string>
default:relevance

Field used to order model discovery results.

Available options:
relevance,
input_price,
output_price,
context_length,
provider_count
sort_order
enum<string>

Optional sort direction. Price sorts default to ascending; other numeric sorts default to descending.

Available options:
asc,
desc
endpoints
string[]

Filter by endpoints

organisation

Filter by organisation Organisation identifier.

Available options:
01-ai,
adept,
ai21,
aion-labs,
aisingapore,
alibaba,
allenai,
amazon,
anthracite-org,
anthropic,
arcee-ai,
baai,
baichuan,
baidu,
bigcode,
black-forest-labs,
bytedance,
bytedance-seed,
cogito,
cognitivecomputations,
cohere,
crofai,
cursor,
cyfragovpl,
databricks,
dealignai,
decart,
deepseek,
dots-studio,
early-access,
eleven-labs,
essential-ai,
fastino,
fish-audio,
github,
google,
gryphe,
hexgrad,
ibm,
ibm-granite,
inception,
inclusionai,
inference-net,
inflection,
intfloat,
jetbrains,
kblab,
kling,
kuaishou,
kwaipilot,
kwaivgi,
lg,
lightricks,
liquid-ai,
mancer,
medaibase,
meituan,
meta,
microsoft,
mindai,
minimax,
mistral,
mistralai,
moonshotai,
morph,
naver-hyperclova,
near-ai,
nex-agi,
nous,
nousresearch,
novasearch,
nvidia,
openai,
openbmb,
opencompass,
opengvlab,
orcarouter,
ornith,
perceptron,
perplexity,
phala,
pixverse,
poe,
poolside,
prime-intellect,
prism-ml,
qwen,
reka,
relace,
runway,
sakana,
sao10k,
sapiens-ai,
sentence-transformers,
sference,
shanghai-ai-laboratory,
shengshu-ai,
snowflake,
sourceful,
spacex-ai,
speakleash,
stability-ai,
stealth,
stepfun,
suno,
tencent,
thedrummer,
thinking-machines,
undi95,
upstage,
venice,
vercel,
villanova-ai,
voyage,
windsurf,
writer,
xai,
xgenerationlab,
xiaomi,
z-ai,
zyphra
provider
string[]

Filter by provider id

provider_status
string[]

Filter by provider rollout status

provider_routing_status
string[]

Filter by provider routing status

model_routing_status
string[]

Filter by model routing status

capability_status
string[]

Filter by provider capability status

provider_availability_status
string[]

Filter by provider availability status

provider_availability_reason
string[]

Filter by provider availability reason

status
string[]

Filter by model status

input_types
string[]

Filter by input types

input_modalities
string[]

Public alias for input_types.

output_types
string[]

Filter by output types

output_modalities
string[]

Public alias for output_types.

params
string[]

Filter by params

supported_parameters
string[]

Public alias for params.

availability
enum<string>
default:active

Availability filter. active returns publicly routable models only; all includes non-routable availability records.

Available options:
active,
all
limit
integer
default:50

Limit the number of results

Required range: 1 <= x <= 250
offset
integer
default:0

Offset for pagination

Required range: 0 <= x <= 5000
format
enum<string>
default:json

Response format. Defaults to Phaseo-native json. OpenAI format returns the complete filtered list unless limit is supplied.

Available options:
json,
openai,
rss,
atom
feed
enum<string>

Alias for format. Accepts json, rss, or atom.

Available options:
json,
rss,
atom

Response

List of models

ok
boolean
required
Example:

true

availability_mode
enum<string>
required
Available options:
active,
all
Example:

"active"

limit
integer
required
Required range: 1 <= x <= 250
Example:

50

offset
integer
required
Required range: 0 <= x <= 5000
Example:

0

total
integer
required
Required range: x >= 0
Example:

128

models
object[]
required
Last modified on October 18, 2026