Skip to content
agentgateway has joined the Agentic AI Foundation — Learn more

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

Models

Page as Markdown

List available models through agentgateway using the OpenAI-compatible Models API.

The Models API (/v1/models) lists the models that clients can request through agentgateway. Clients can also use /models without the /v1 prefix.

About

Agentgateway supports the OpenAI-compatible Models API. Use this endpoint when clients need to discover available model IDs, such as web UIs, SDKs, or developer tools that populate model selectors from /v1/models.

Each listed model includes the OpenAI model object fields id, object, created, and owned_by. When the model catalog has metadata for a model, the entry also includes the following fields, and created is set to the model’s release date from the catalog. Fields that the catalog does not record are left out.

  • name: The display name.
  • context_window, context_length, max_input_tokens, and max_tokens: The token limits.
  • architecture.input_modalities and architecture.output_modalities: The accepted input and output types, such as text, image, and file.
  • capabilities: Whether the model supports reasoning, structured_outputs, tools, and temperature.
  • supported_parameters: The request parameters that the model accepts, derived from its limits and capabilities.

Route type configuration

In the simplified llm configuration, agentgateway automatically maps /v1/models requests to the models route type, so no explicit route configuration is required.

# yaml-language-server: $schema=https://agentgateway.dev/schema/config
llm:
  models:
  - name: "*"
    provider: openAI
    params:
      apiKey: "$OPENAI_API_KEY"

Note

For detailed information about model routing and configuration modes, see Model routing and aliases.

Wildcard expansion

Wildcard names in llm.models, such as * or openai/*, expand to matching model IDs in the /v1/models response. Agentgateway gets these IDs from the model catalog entries for the model’s provider. The catalog combines the built-in catalog with any sources that you configure.

For example, the * model in the preceding configuration lists every openai model in the catalog, such as gpt-4o and gpt-5-mini.

  • Model transformations: Agentgateway reverses a model transformation to list the names that clients send. For example, openai/* with llmRequest.model.stripPrefix("openai/") lists names such as openai/gpt-4o. Agentgateway can reverse stripPrefix, stripSuffix, and transformations that add a fixed string before or after the model name.
  • API keys: Agentgateway filters the list by allowedModels for the API key that sends the request.
  • Unexpanded patterns: Agentgateway lists the pattern itself if the provider has no catalog entries, as with a typical custom provider. It also keeps the pattern if the model sets a fixed upstream model or uses a transformation that cannot be reversed.
  • No matches: If the provider has catalog entries but none match the pattern, agentgateway leaves the model out of the list.

To list the configured names instead, as in version 1.5, set llm.discovery: disabled.

# yaml-language-server: $schema=https://agentgateway.dev/schema/config
llm:
  discovery: disabled
  models:
  - name: "*"
    provider: openAI
    params:
      apiKey: "$OPENAI_API_KEY"

Using the API

Send a request to /v1/models to list the models that agentgateway serves. Agentgateway builds the list from your configuration and the model catalog. It does not call the provider.

To return only the first listed models, add the limit query parameter. To look up one model by ID, send a request to /v1/models/<model-id> or /models/<model-id>. If the model does not exist, the response is an OpenAI-compatible model_not_found error.

curl 'http://localhost:4000/v1/models'
Was this page helpful?
Agentgateway assistant

Ask me anything about agentgateway configuration, features, or usage.

Note: AI-generated content might contain errors; please verify and test all returned information.

Tip: one topic per conversation gives the best results. Use the + button in the chat header to start a new conversation.

Switching topics? Starting a new conversation improves accuracy.
↑↓ navigate ↵ select esc dismiss

What could be improved?

Your feedback helps us improve assistant answers and identify docs gaps we should fix.

Need more help? Join us on Discord: https://discord.gg/y9efgEmppm

Want to use your own agent? Add the Solo MCP server to query our docs directly. Get started here: https://search.solo.io/.