Models - Python SDK
Models - Python SDK
Models method reference
Overview
Model information endpoints
Available Operations
- get - Get a model by its slug
- list - List all models and their properties
- count - Get total count of available models
- list_for_user - List models filtered by user provider preferences, privacy settings, and guardrails
get
Returns full details for a single model identified by its author and slug (e.g. openai/gpt-4). Supports variant suffixes (e.g. openai/gpt-4:free) and resolves known slug aliases.
Example Usage
1 from openrouter import OpenRouter 2 import os 3 4 with OpenRouter( 5 http_referer="<value>", 6 x_open_router_title="<value>", 7 x_open_router_categories="<value>", 8 api_key=os.getenv("OPENROUTER_API_KEY", ""), 9 ) as open_router: 10 11 res = open_router.models.get(author="openai", slug="gpt-4") 12 13 # Handle response 14 print(res)
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
author | str | ✔️ | The author/organization of the model | openai |
slug | str | ✔️ | The model slug, optionally including a variant suffix (e.g. gpt-4 or gpt-4:free) | gpt-4 |
http_referer | Optional[str] | ➖ | The app identifier should be your app’s URL and is used as the primary identifier for rankings. This is used to track API usage per application. | |
x_open_router_title | Optional[str] | ➖ | The app display name allows you to customize how your app appears in OpenRouter’s dashboard. | |
x_open_router_categories | Optional[str] | ➖ | Comma-separated list of app categories (e.g. “cli-agent,cloud-agent”). Used for marketplace rankings. | |
retries | Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
Response
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.NotFoundResponseError | 404 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.OpenRouterDefaultError | 4XX, 5XX | */* |
list
List all models and their properties
Example Usage
1 from openrouter import OpenRouter 2 import os 3 4 with OpenRouter( 5 http_referer="<value>", 6 x_open_router_title="<value>", 7 x_open_router_categories="<value>", 8 api_key=os.getenv("OPENROUTER_API_KEY", ""), 9 ) as open_router: 10 11 res = open_router.models.list() 12 13 # Handle response 14 print(res)
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
http_referer | Optional[str] | ➖ | The app identifier should be your app’s URL and is used as the primary identifier for rankings. This is used to track API usage per application. | |
x_open_router_title | Optional[str] | ➖ | The app display name allows you to customize how your app appears in OpenRouter’s dashboard. | |
x_open_router_categories | Optional[str] | ➖ | Comma-separated list of app categories (e.g. “cli-agent,cloud-agent”). Used for marketplace rankings. | |
category | Optional[operations.GetModelsCategory] | ➖ | Filter models by use case category | programming |
supported_parameters | Optional[str] | ➖ | Filter models by supported parameter (comma-separated) | temperature |
output_modalities | Optional[str] | ➖ | 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”. | text |
sort | Optional[operations.GetModelsSort] | ➖ | 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 (Artificial Analysis intelligence index), 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. | newest |
q | Optional[str] | ➖ | Free-text search by model name or slug. | gpt-4 |
input_modalities | Optional[str] | ➖ | Filter models by input modality. Comma-separated list of: text, image, audio, file. | text,image |
context | Optional[int] | ➖ | Minimum context length (tokens). Models with smaller context are excluded. | 128000 |
min_price | OptionalNullable[float] | ➖ | Minimum prompt price in $/M tokens. | 0 |
max_price | OptionalNullable[float] | ➖ | Maximum prompt price in $/M tokens. | 10 |
arch | Optional[str] | ➖ | Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama). | GPT |
model_authors | Optional[str] | ➖ | Filter models by the organization that created the model. Comma-separated list of author slugs. | openai,anthropic |
providers | Optional[str] | ➖ | Filter models by hosting provider. Comma-separated list of provider names. | OpenAI,Anthropic |
distillable | Optional[operations.Distillable] | ➖ | Filter by distillation capability. “true” returns only distillable models, “false” excludes them. | true |
zdr | Optional[operations.Zdr] | ➖ | When set to “true”, return only models with zero data retention endpoints. | true |
region | Optional[operations.Region] | ➖ | Filter to models with endpoints in the given data region. Currently only “eu” is supported. | eu |
retries | Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
Response
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.OpenRouterDefaultError | 4XX, 5XX | */* |
count
Get total count of available models
Example Usage
1 from openrouter import OpenRouter 2 import os 3 4 with OpenRouter( 5 http_referer="<value>", 6 x_open_router_title="<value>", 7 x_open_router_categories="<value>", 8 api_key=os.getenv("OPENROUTER_API_KEY", ""), 9 ) as open_router: 10 11 res = open_router.models.count() 12 13 # Handle response 14 print(res)
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
http_referer | Optional[str] | ➖ | The app identifier should be your app’s URL and is used as the primary identifier for rankings. This is used to track API usage per application. | |
x_open_router_title | Optional[str] | ➖ | The app display name allows you to customize how your app appears in OpenRouter’s dashboard. | |
x_open_router_categories | Optional[str] | ➖ | Comma-separated list of app categories (e.g. “cli-agent,cloud-agent”). Used for marketplace rankings. | |
output_modalities | Optional[str] | ➖ | 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”. | text |
retries | Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
Response
components.ModelsCountResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.OpenRouterDefaultError | 4XX, 5XX | */* |
list_for_user
List models filtered by user provider preferences, privacy settings, and guardrails. If requesting through eu.openrouter.ai/api/v1/... the results will be filtered to models that satisfy EU in-region routing.
Example Usage
1 from openrouter import OpenRouter, operations 2 import os 3 4 with OpenRouter( 5 http_referer="<value>", 6 x_open_router_title="<value>", 7 x_open_router_categories="<value>", 8 ) as open_router: 9 10 res = open_router.models.list_for_user(security=operations.ListModelsUserSecurity( 11 bearer=os.getenv("OPENROUTER_BEARER", ""), 12 )) 13 14 # Handle response 15 print(res)
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
security | operations.ListModelsUserSecurity | ✔️ | N/A |
http_referer | Optional[str] | ➖ | The app identifier should be your app’s URL and is used as the primary identifier for rankings. This is used to track API usage per application. |
x_open_router_title | Optional[str] | ➖ | The app display name allows you to customize how your app appears in OpenRouter’s dashboard. |
x_open_router_categories | Optional[str] | ➖ | Comma-separated list of app categories (e.g. “cli-agent,cloud-agent”). Used for marketplace rankings. |
retries | Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
Response
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.OpenRouterDefaultError | 4XX, 5XX | */* |