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.
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 for production applications.
Root Response Object
{
"data": [
/* Array of Model objects */
]
}
Model Object Schema
Each model in the data array contains the following standardized fields:
| Field | Type | Description |
|---|---|---|
id |
string | Unique model identifier used in API requests (e.g., "google/gemini-2.5-pro-preview") |
canonical_slug |
string | Permanent slug for the model that never changes |
name |
string | Human-readable display name for the model |
created |
number | Unix timestamp of when the model was added to OpenRouter |
description |
string | Detailed description of the model's capabilities and characteristics |
context_length |
number | Maximum context window size in tokens |
architecture |
Architecture | Object describing the model's technical capabilities |
pricing |
Pricing | Lowest price structure for using this model |
top_provider |
TopProvider | Configuration details for the primary provider |
per_request_limits |
object | null | Rate limiting information (null if no limits) |
supported_parameters |
string[] | Array of supported API parameters for this model |
Architecture Object
{
"input_modalities": string[], // Supported input types: ["file", "image", "text"]
"output_modalities": string[], // Supported output types: ["text"]
"tokenizer": string, // Tokenization method used
"instruct_type": string | null // Instruction format type (null if not applicable)
}
Pricing Object
All pricing values are in USD per token/request/unit. A value of "0" indicates the feature is free.
{
"prompt": string, // Cost per input token
"completion": string, // Cost per output token
"request": string, // Fixed cost per API request
"image": string, // Cost per image input
"web_search": string, // Cost per web search operation
"internal_reasoning": string, // Cost for internal reasoning tokens
"input_cache_read": string, // Cost per cached input token read
"input_cache_write": string // Cost per cached input token write
}
Top Provider Object
{
"context_length": number, // Provider-specific context limit
"max_completion_tokens": number, // Maximum tokens in response
"is_moderated": boolean // Whether content moderation is applied
}
Supported Parameters
The supported_parameters array indicates which OpenAI-compatible parameters work with each model:
tools- Function calling capabilitiestool_choice- Tool selection controlmax_tokens- Response length limitingtemperature- Randomness controltop_p- Nucleus samplingreasoning- Internal reasoning modeinclude_reasoning- Include reasoning in response:thinking- Extended reasoning variant (see Thinking Variant documentation)structured_outputs- JSON schema enforcementresponse_format- Output format specificationstop- Custom stop sequencesfrequency_penalty- Repetition reductionpresence_penalty- Topic diversityseed- Deterministic outputs
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.