---
title: "List all models and their properties"
method: GET
path: "/models"
tags: ["Models"]
---

# List all models and their properties

`GET /models`

## Query parameters

- `offset` integer, nullable — Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned
- `limit` integer — Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned
- `category` 'programming' | 'roleplay' | 'marketing' | 'marketing/seo' | 'technology' | 'science' | 'translation' | 'legal' | 'finance' | 'health' | 'trivia' | 'academia' — Filter models by use case category
- `supported_parameters` string — Filter models by supported parameter (comma-separated)
- `output_modalities` string — Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text".
- `sort` 'most-popular' | 'newest' | 'top-weekly' | 'pricing-low-to-high' | 'pricing-high-to-low' | 'context-high-to-low' | 'throughput-high-to-low' | 'latency-low-to-high' | 'intelligence-high-to-low' | 'coding-high-to-low' | 'agentic-high-to-low' | 'design-arena-elo-high-to-low' — Sort the returned models server-side. Prefer this over fetching the full list and sorting client-side. Options: pricing-low-to-high, pricing-high-to-low (average prompt/completion price), context-high-to-low (context length), throughput-high-to-low, latency-low-to-high (recent median performance), most-popular, top-weekly (tokens processed in the last week), newest (creation date), intelligence-high-to-low, coding-high-to-low, agentic-high-to-low (Artificial Analysis indices), design-arena-elo-high-to-low (best Design Arena ELO across arenas). Models without a score for the chosen benchmark are placed last. When omitted, the existing default ordering is preserved.
- `use_rss` string — Return results as RSS feed
- `use_rss_chat_links` string — Use chat links in RSS feed items
- `q` string — Free-text search by model name or slug.
- `input_modalities` string — Filter models by input modality. Comma-separated list of: text, image, audio, file.
- `context` integer — Minimum context length (tokens). Models with smaller context are excluded.
- `min_price` number, nullable — Minimum prompt price in $/M tokens.
- `max_price` number, nullable — Maximum prompt price in $/M tokens.
- `arch` string — Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama).
- `model_authors` string — Filter models by the organization that created the model. Comma-separated list of author slugs.
- `providers` string — Filter models by hosting provider. Comma-separated list of provider names.
- `distillable` 'true' | 'false' — Filter by distillation capability. "true" returns only distillable models, "false" excludes them.
- `zdr` 'true' — When set to "true", return only models with zero data retention endpoints.
- `region` 'eu' — Filter to models with endpoints in the given data region. Currently only "eu" is supported.
- `min_output_price` number, nullable — Minimum completion (output) price in $/M tokens.
- `max_output_price` number, nullable — Maximum completion (output) price in $/M tokens.
- `min_age_days` integer, nullable — Minimum model age in days since its creation date.
- `max_age_days` integer, nullable — Maximum model age in days since its creation date.
- `min_intelligence_index` number, nullable — Minimum Artificial Analysis intelligence index.
- `max_intelligence_index` number, nullable — Maximum Artificial Analysis intelligence index.
- `min_coding_index` number, nullable — Minimum Artificial Analysis coding index.
- `max_coding_index` number, nullable — Maximum Artificial Analysis coding index.
- `min_agentic_index` number, nullable — Minimum Artificial Analysis agentic index.
- `max_agentic_index` number, nullable — Maximum Artificial Analysis agentic index.
- `min_tool_success_rate` number, nullable — Minimum tool-calling success rate, as a fraction in [0, 1] (e.g. 0.9 = 90% of requests finishing with a tool_calls finish reason).
- `max_tool_success_rate` number, nullable — Maximum tool-calling success rate, as a fraction in [0, 1].

## Response `200`

Returns a list of models or RSS feed

- ModelsListResponse — List of available models
  - `data` Model[], required — List of available models
    - `architecture` ModelArchitecture, required — Model architecture information
      - `input_modalities` InputModality[], required — Supported input modalities
      - `instruct_type` 'none' | 'airoboros' | 'alpaca' | 'alpaca-modif' | 'chatml' | 'claude' | 'code-llama' | 'gemma' | 'llama2' | 'llama3' | 'mistral' | 'nemotron' | 'neural' | 'openchat' | 'phi3' | 'rwkv' | 'vicuna' | 'zephyr' | 'deepseek-r1' | 'deepseek-v3.1' | 'qwq' | 'qwen3' | 'null', nullable — Instruction format type
      - `modality` string, nullable, required — Primary modality of the model
      - `output_modalities` OutputModality[], required — Supported output modalities
      - `tokenizer` 'Router' | 'Media' | 'Other' | 'GPT' | 'Claude' | 'Gemini' | 'Gemma' | 'Grok' | 'Cohere' | 'Nova' | 'Qwen' | 'Yi' | 'DeepSeek' | 'Mistral' | 'Llama2' | 'Llama3' | 'Llama4' | 'PaLM' | 'RWKV' | 'Qwen3' — Tokenizer type used by the model
    - `benchmarks` ModelBenchmarks — Third-party benchmark rankings for this model. Omitted when no benchmark data is available.
      - `artificial_analysis` AABenchmarkEntry — Artificial Analysis benchmark index scores.
        - `agentic_index` number, double, nullable, required — Artificial Analysis Agentic Index score
        - `coding_index` number, double, nullable, required — Artificial Analysis Coding Index score
        - `intelligence_index` number, double, nullable, required — Artificial Analysis Intelligence Index score
      - `design_arena` DABenchmarkEntry[], required — Design Arena ELO rankings across arena+category pairs.
        - `arena` string, required — Arena type (e.g. models, builders, agents)
        - `category` string, required — Category within the arena (e.g. website, gamedev, uicomponent)
        - `elo` number, double, required — ELO rating from head-to-head arena battles
        - `rank` integer, required — Rank position within this arena+category among models available on OpenRouter (1 = highest ELO)
        - `win_rate` number, double, required — Win rate percentage in arena battles
    - `canonical_slug` string, required — Canonical slug for the model
    - `context_length` integer, nullable, required — Maximum context length in tokens
    - `created` integer, required — Unix timestamp of when the model was created
    - `default_parameters` DefaultParameters, nullable, required — Default parameters for this model
      - `frequency_penalty` number, double, nullable
      - `presence_penalty` number, double, nullable
      - `repetition_penalty` number, double, nullable
      - `temperature` number, double, nullable
      - `top_k` integer, nullable
      - `top_p` number, double, nullable
    - `description` string — Description of the model
    - `expiration_date` string, nullable — The date after which the model may be removed. ISO 8601 date string (YYYY-MM-DD) or null if no expiration.
    - `hugging_face_id` string, nullable — Hugging Face model identifier, if applicable
    - `id` string, required — Unique identifier for the model
    - `knowledge_cutoff` string, nullable — The date up to which the model was trained on data. ISO 8601 date string (YYYY-MM-DD) or null if unknown.
    - `links` ModelLinks, required — Related API endpoints and resources for this model.
      - `details` string, required — URL for the model details/endpoints API
    - `name` string, required — Display name of the model
    - `per_request_limits` PerRequestLimits, nullable, required — Per-request token limits
      - `completion_tokens` number, required — Maximum completion tokens per request
      - `prompt_tokens` number, required — Maximum prompt tokens per request
    - `pricing` PublicPricing, required — Pricing information for the model
      - `audio` string — Price in USD per audio input token
      - `audio_output` string — Price in USD per audio output token
      - `completion` string, required — Price in USD per token for completion (output) generation
      - `discount` number, double — Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free)
      - `image` string — Price in USD per input image
      - `image_output` string — Price in USD per output image
      - `image_token` string — Price in USD per image token
      - `input_audio_cache` string — Price in USD per cached audio input token
      - `input_cache_read` string — Price in USD per cached input token (read)
      - `input_cache_write` string — Price per cache-write token, in USD per token. For providers with multiple cache TTLs (e.g. Anthropic), this is the default (5-minute) cache-write rate.
      - `input_cache_write_1h` string — Price per 1-hour cache-write token, in USD per token. Only present for providers that price an extended (1-hour) cache TTL separately, such as Anthropic.
      - `internal_reasoning` string — Price in USD per internal reasoning token
      - `prompt` string, required — Price in USD per token for prompt (input) processing
      - `request` string — Price in USD per request
      - `web_search` string — Price in USD per web search
    - `reasoning` ModelReasoning — Reasoning effort configuration. Omitted for non-reasoning models and dynamic router models.
      - `default_effort` 'max' | 'xhigh' | 'high' | 'medium' | 'low' | 'minimal' | 'none' | 'null', nullable — Default reasoning effort when the client enables reasoning without specifying effort. Maps to `reasoning.effort` in chat requests. When `"none"`, prefer omitting effort unless the user explicitly disables reasoning.
      - `default_enabled` boolean — Default reasoning enabled state when the client does not set `reasoning.enabled`.
      - `mandatory` boolean, required — When true, reasoning cannot be disabled and effort "none" is rejected.
      - `supported_efforts` ReasoningEffort[], nullable — Allowed reasoning effort values for this model, in descending effort order (highest first). Null means no allowlist — all gateway effort values are accepted.
      - `supports_max_tokens` boolean — Present and `true` when the model accepts `reasoning.max_tokens` in requests (Anthropic-style) instead of or in addition to `reasoning.effort`. Omitted otherwise.
    - `supported_parameters` Parameter[], required — List of supported parameters for this model
    - `supported_voices` string[], nullable, required — List of supported voice identifiers for TTS models. Null for non-TTS models.
    - `top_provider` TopProviderInfo, required — Information about the top provider for this model
      - `context_length` integer, nullable — Context length from the top provider
      - `is_moderated` boolean, required — Whether the top provider moderates content
      - `max_completion_tokens` integer, nullable — Maximum completion tokens from the top provider
  - `links` object, required — Pagination links
    - `next` string, nullable, required — URL for the next page of results, or null if this is the last page
  - `total_count` integer, required — Total number of models matching the query

## Other responses

- `400` — Bad Request - Invalid request parameters or malformed input
- `500` — Internal Server Error - Unexpected server error

## Changes

- **2026-07-13** `9814733ca74d` — 4 info
  - added the new optional `query` request parameter `limit`
  - added the new optional `query` request parameter `offset`
  - added the required property `links` to the response with the `200` status
  - added the required property `total_count` to the response with the `200` status
- **2026-07-07** `bb12b8d47d55` — 14 info
  - added the new optional `query` request parameter `max_age_days`
  - added the new optional `query` request parameter `max_agentic_index`
  - added the new optional `query` request parameter `max_coding_index`
  - added the new optional `query` request parameter `max_intelligence_index`
  - …10 more
- **2026-06-26** `b5288729c466` — 1 info
  - added the optional property `data/items/pricing/input_cache_write_1h` to the response with the `200` status
- **2026-06-25** `65d868cedd4e` — 13 breaking, 13 info
  - the `data/items/pricing/audio` response's property type changed from no type to `string` for status `200`
  - the `data/items/pricing/audio_output` response's property type changed from no type to `string` for status `200`
  - the `data/items/pricing/completion` response's property type changed from no type to `string` for status `200`
  - the `data/items/pricing/image` response's property type changed from no type to `string` for status `200`
  - …22 more
- …earlier changes not shown

[Full history](https://skmtc.dev/openrouterteam/apis/openrouter-api/changes/models/get.md)

---

[API](https://skmtc.dev/openrouterteam/apis/openrouter-api.md) · [All operations](https://skmtc.dev/openrouterteam/apis/openrouter-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openrouterteam/openrouter-api/revisions/9814733ca74d/schema)
