---
title: "List models filtered by user provider preferences, privacy settings, and guardrails"
method: GET
path: "/models/user"
tags: ["Models"]
---

# List models filtered by user provider preferences, privacy settings, and guardrails

`GET /models/user`

List models filtered by user provider preferences, [privacy settings](https://openrouter.ai/docs/guides/privacy/provider-logging), and [guardrails](https://openrouter.ai/docs/guides/features/guardrails). If requesting through `eu.openrouter.ai/api/v1/...` the results will be filtered to models that satisfy [EU in-region routing](https://openrouter.ai/docs/guides/privacy/provider-logging#enterprise-eu-in-region-routing).

## 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

## Response `200`

Returns a list of models filtered by user provider preferences

- 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

- `401` — Unauthorized - Authentication required or invalid credentials
- `404` — Not Found - Resource does not exist
- `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-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
- **2026-06-22** `8d4d6fd85671` — 2 warning
  - added the new `max` enum value to the `data/items/reasoning/default_effort/allOf[#/components/schemas/ReasoningEffort]/` response property for the response status `200`
  - added the new `max` enum value to the `data/items/reasoning/supported_efforts/items/` response property for the response status `200`
- **2026-06-17** `4e640c1a2370` — 1 info
  - added the optional property `data/items/reasoning` to the response with the `200` status

[Change history](https://skmtc.dev/openrouterteam/apis/openrouter-api/changes/models/user/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)
