API reference

List models

GET /v1/models

Returns the catalog of models currently exposed by the ezrouter gateway. The same catalog applies to every API key — there is no per-key allowlist (see Behavior notes below).

Request

http
GET /v1/models
Authorization: Bearer ${API_KEY}

No request body. No query parameters.

Response

200 OK — a JSON object listing the available models.

Response schema

FieldTypeNotes
objectstringAlways "list".
dataobject[]One entry per model.
successbooleanAlways true on a 200 response. ezrouter-specific extension; not present in the OpenAI specification.

Each model

FieldTypeNotes
idstringModel identifier, as accepted by POST /v1/chat/completions.
objectstringAlways "model".
createdintegerUnix timestamp. Treat as a placeholder, not a real release date — ezrouter populates this with a constant value (1626777600, 2021-07-20) across the entire catalog.
owned_bystringInternal account label for the upstream provider, e.g. "vertex-ai", "custom".
supported_endpoint_typesstring[]ezrouter-specific extension. Lists the surface(s) accepting this model, e.g. ["openai"], ["anthropic", "openai"], ["gemini", "openai"].

Example

bash
curl -sS https://www.ezrouter.dev/v1/models \
  -H "Authorization: Bearer ${API_KEY}"

Response (abbreviated):

json
{
  "object": "list",
  "success": true,
  "data": [
    {
      "id": "claude-sonnet-4-6",
      "object": "model",
      "created": 1626777600,
      "owned_by": "vertex-ai",
      "supported_endpoint_types": ["anthropic", "openai"]
    },
    {
      "id": "deepseek-v4-flash",
      "object": "model",
      "created": 1626777600,
      "owned_by": "custom",
      "supported_endpoint_types": ["openai"]
    }
  ]
}

Behavior notes

  • Gateway-global catalog, not key-scoped. Every API key sees the

same list at any given instant. There is no per-key allowlist or tier-based catalog filter.

  • Catalog drifts across gateway deploys. Re-query rather than

caching the response for long periods. The x-new-api-version response header on every API call indicates the current gateway build; a change there is a signal that the catalog may have shifted.

  • Some upstream models have multiple identifiers. For example,

the catalog may return claude-haiku-4-5-20251001 (dated snapshot form) while accepting claude-haiku-4-5 (alias) on chat-completion requests. Both forms are valid as the model parameter.

Differences from OpenAI

FieldOpenAIezrouter
Top-level successnot presentalways true on 200
created per modelreal release timestampconstant placeholder (see schema)
supported_endpoint_types per modelnot presentadded — see schema
Auth requiredyesyes
Catalog scopeglobal (one organization sees one catalog)gateway-global; same for all keys