Skip to main content
GET /v1/models returns the public catalog. GET /api/v1/models returns the same catalog. Both endpoints work without an API key, browser session, or prepaid balance. The default type is chat. Supplying credentials or an organization header returns the same public list. Inference still requires authentication and account eligibility; a catalog entry does not guarantee your account can call that model. Personalized availability remains in /api/v1/model-groups.

Request

Query Parameters

Response

The Model List reads supports_reasoning directly from this endpoint. Pricing fields describe billing rates separately from capability flags. The Model List shows selected API-reported features; “Not reported” means none of those selected flags are true. The :confidential and :encrypted model IDs and their privacy_tier values identify available privacy levels. For current attestation evidence and Encrypted key material, call Get attestation. The model list does not include attestation details or a verification result.

Pricing

Use this public endpoint as the source for current API prices. A pricing fetch needs no API key:
pricing.currency_code is USD and pricing.unit is nanos. One USD is 1,000,000,000 nanos. Convert each per-token rate to USD per million tokens by dividing by 1,000, using integer or decimal arithmetic to preserve precision. Missing pricing or optional fields mean the rate is unavailable from discovery; never infer a zero price from an omitted field. An explicit zero is a published zero rate. These are public API prices, separate from subscription allowances. Web-tool charges are outside this pricing object. A listed rate describes pricing, while capabilities and account eligibility determine which requests can run. The Model List publishes these rates through an hourly refresh. Its snapshot date changes when displayed models or rates change. Fetch this endpoint for current prices instead of hardcoding the documentation values. For your own published comparison, a cron job or scheduled build can fetch the endpoint afresh, validate its response, and regenerate the display. Honor the response’s Cache-Control: no-store header and label generated documentation with its snapshot date. On a failed refresh, keep the last successful publication and report the failure; never replace unavailable rates with zero.

Freshness and Errors

The server caches catalog responses for up to 24 hours. Catalog, configuration, and pricing updates invalidate the cache. Responses use Cache-Control: no-store; clients and intermediaries must honor that header. The catalog describes model capabilities; inference checks provider health when you send a request. Global and per-IP rate limits apply. On 429, respect Retry-After when present. A temporarily unavailable catalog or response cache returns 503 with error code unavailable; retry with backoff. Invalid filters return 400.