Models

One API for hundreds of models

Explore and browse 400+ models and providers on our website, or with our API. You can also subscribe to our RSS feed to stay updated on new models.

Query Parameters

The Models API supports query parameters to filter the list of models returned.

output_modality

Filter models by their output capabilities. Accepts a comma-separated list of modalities or "all" to include every model regardless of output type.

ValueDescription
textModels that produce text output (default)
imageModels that generate images
audioModels that produce audio output
embeddingsEmbedding models
allInclude all models, skip modality filtering

Examples:

$# Default — text models only
$curl https://openrouter.ai/api/v1/models
$
$# Image generation models only
$curl https://openrouter.ai/api/v1/models?output_modality=image
$
$# Text and image models
$curl https://openrouter.ai/api/v1/models?output_modality=text,image
$
$# All models regardless of modality
$curl https://openrouter.ai/api/v1/models?output_modality=all

The same parameter is available on the /v1/models/count endpoint so that counts stay consistent with list results.

supported_parameters

Filter models by the API parameters they support. For example, to find models that support tool calling:

$curl https://openrouter.ai/api/v1/models?supported_parameters=tools

Models API Standard

Our Models API makes the most important information about all LLMs freely available as soon as we confirm it.

API Response Schema

The Models API returns a standardized JSON response format that provides comprehensive metadata for each available model. This schema is cached at the edge and designed for reliable integration with production applications.

Root Response Object

1{
2 "data": [
3 /* Array of Model objects */
4 ]
5}

Model Object Schema

Each model in the data array contains the following standardized fields:

FieldTypeDescription
idstringUnique model identifier used in API requests (e.g., "google/gemini-2.5-pro-preview")
canonical_slugstringPermanent slug for the model that never changes
namestringHuman-readable display name for the model
creatednumberUnix timestamp of when the model was added to OpenRouter
descriptionstringDetailed description of the model’s capabilities and characteristics
context_lengthnumberMaximum context window size in tokens
architectureArchitectureObject describing the model’s technical capabilities
pricingPricingLowest price structure for using this model
top_providerTopProviderConfiguration details for the primary provider
per_request_limitsRate limiting information (null if no limits)
supported_parametersstring[]Array of supported API parameters for this model
default_parametersobject | nullDefault parameter values for this model (null if none)
expiration_datestring | nullDeprecation date for the model endpoint (null if not deprecated)

Architecture Object

1{
2 "input_modalities": string[], // Supported input types: ["file", "image", "text"]
3 "output_modalities": string[], // Supported output types: ["text"]
4 "tokenizer": string, // Tokenization method used
5 "instruct_type": string | null // Instruction format type (null if not applicable)
6}

Pricing Object

All pricing values are in USD per token/request/unit. A value of "0" indicates the feature is free.

1{
2 "prompt": string, // Cost per input token
3 "completion": string, // Cost per output token
4 "request": string, // Fixed cost per API request
5 "image": string, // Cost per image input
6 "web_search": string, // Cost per web search operation
7 "internal_reasoning": string, // Cost for internal reasoning tokens
8 "input_cache_read": string, // Cost per cached input token read
9 "input_cache_write": string // Cost per cached input token write
10}

Top Provider Object

1{
2 "context_length": number, // Provider-specific context limit
3 "max_completion_tokens": number, // Maximum tokens in response
4 "is_moderated": boolean // Whether content moderation is applied
5}

Supported Parameters

The supported_parameters array indicates which OpenAI-compatible parameters work with each model:

  • tools - Function calling capabilities
  • tool_choice - Tool selection control
  • max_tokens - Response length limiting
  • temperature - Randomness control
  • top_p - Nucleus sampling
  • reasoning - Internal reasoning mode
  • include_reasoning - Include reasoning in response
  • structured_outputs - JSON schema enforcement
  • response_format - Output format specification
  • stop - Custom stop sequences
  • frequency_penalty - Repetition reduction
  • presence_penalty - Topic diversity
  • seed - Deterministic outputs
Different models tokenize text in different ways

Some models break up text into chunks of multiple characters (GPT, Claude, Llama, etc), while others tokenize by character (PaLM). This means that token counts (and therefore costs) will vary between models, even when inputs and outputs are the same. Costs are displayed and billed according to the tokenizer for the model in use. You can use the usage field in the response to get the token counts for the input and output.

If there are models or providers you are interested in that OpenRouter doesn’t have, please tell us about them in our Discord channel.

For Providers

If you’re interested in working with OpenRouter, you can learn more on our providers page.