Skip to main content
GET
/
models
List all models and their properties
curl --request GET \
  --url https://openrouter.ai/api/v1/models \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://openrouter.ai/api/v1/models"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://openrouter.ai/api/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://openrouter.ai/api/v1/models",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://openrouter.ai/api/v1/models"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://openrouter.ai/api/v1/models")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://openrouter.ai/api/v1/models")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "data": [
    {
      "architecture": {
        "input_modalities": [
          "text"
        ],
        "instruct_type": "chatml",
        "modality": "text->text",
        "output_modalities": [
          "text"
        ],
        "tokenizer": "GPT"
      },
      "canonical_slug": "openai/gpt-4",
      "context_length": 8192,
      "created": 1692901234,
      "default_parameters": null,
      "description": "GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.",
      "expiration_date": null,
      "id": "openai/gpt-4",
      "knowledge_cutoff": null,
      "links": {
        "details": "/api/v1/models/openai/gpt-4/endpoints"
      },
      "name": "GPT-4",
      "per_request_limits": null,
      "pricing": {
        "completion": "0.00006",
        "image": "0",
        "prompt": "0.00003",
        "request": "0"
      },
      "supported_parameters": [
        "temperature",
        "top_p",
        "max_tokens"
      ],
      "supported_voices": null,
      "top_provider": {
        "context_length": 8192,
        "is_moderated": true,
        "max_completion_tokens": 4096
      }
    }
  ]
}
{
"error": {
"code": 400,
"message": "Invalid request parameters"
}
}
{
"error": {
"code": 500,
"message": "Internal Server Error"
}
}

Authorizations

Authorization
string
header
required

API key as bearer token in Authorization header

Query Parameters

category
enum<string>

Filter models by use case category

Available options:
programming,
roleplay,
marketing,
marketing/seo,
technology,
science,
translation,
legal,
finance,
health,
trivia,
academia
Example:

"programming"

supported_parameters
string

Filter models by supported parameter (comma-separated)

Example:

"temperature"

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".

Example:

"text"

sort
enum<string>

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.

Available options:
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,
design-arena-elo-high-to-low
Example:

"newest"

use_rss
string

Return results as RSS feed

Example:

"true"

Use chat links in RSS feed items

Example:

"true"

q
string

Free-text search by model name or slug.

Example:

"gpt-4"

input_modalities
string

Filter models by input modality. Comma-separated list of: text, image, audio, file.

Example:

"text,image"

context
integer

Minimum context length (tokens). Models with smaller context are excluded.

Required range: x > 0
Example:

128000

min_price
number | null

Minimum prompt price in $/M tokens.

Required range: x >= 0
Example:

0

max_price
number | null

Maximum prompt price in $/M tokens.

Required range: x >= 0
Example:

10

arch
string

Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama).

Example:

"GPT"

model_authors
string

Filter models by the organization that created the model. Comma-separated list of author slugs.

Example:

"openai,anthropic"

providers
string

Filter models by hosting provider. Comma-separated list of provider names.

Example:

"OpenAI,Anthropic"

distillable
enum<string>

Filter by distillation capability. "true" returns only distillable models, "false" excludes them.

Available options:
true,
false
Example:

"true"

zdr
enum<string>

When set to "true", return only models with zero data retention endpoints.

Available options:
true
Example:

"true"

region
enum<string>

Filter to models with endpoints in the given data region. Currently only "eu" is supported.

Available options:
eu
Example:

"eu"

Response

Returns a list of models or RSS feed

List of available models

data
object[]
required

List of available models

Example:
[
{
"architecture": {
"input_modalities": ["text"],
"instruct_type": "chatml",
"modality": "text->text",
"output_modalities": ["text"],
"tokenizer": "GPT"
},
"canonical_slug": "openai/gpt-4",
"context_length": 8192,
"created": 1692901234,
"default_parameters": null,
"description": "GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.",
"expiration_date": null,
"id": "openai/gpt-4",
"knowledge_cutoff": null,
"links": {
"details": "/api/v1/models/openai/gpt-5.4/endpoints"
},
"name": "GPT-4",
"per_request_limits": null,
"pricing": {
"completion": "0.00006",
"image": "0",
"prompt": "0.00003",
"request": "0"
},
"supported_parameters": ["temperature", "top_p", "max_tokens"],
"supported_voices": null,
"top_provider": {
"context_length": 8192,
"is_moderated": true,
"max_completion_tokens": 4096
}
}
]