# 模型列表接口
> 一次返回账号可调用的全部模型，无需分页
> 用 `supported_endpoint_types` 判断该走哪条调用路径
> 价格与分组见[模型价格与分组接口](model-pricing.html)
这一页面向需要用程序批量获取模型清单的开发者。如果只是想浏览有哪些模型、多少钱、支持什么能力，直接看[模型广场](https://api.oairoute.com/pricing)更直观，那里用的是同一份数据，只是渲染成了界面。
`GET /v1/models`
## 认证
- `Authorization` (string / 必填) — 所有接口均使用 Bearer Token 进行认证。 获取 API Key：[访问控制台](https://api.oairoute.com/keys) 创建。 请求时在请求头中添加： ```http Authorization: Bearer YOUR_OAIRoute_KEY ```
## 响应
返回体为列表结构，模型条目在 `data` 数组里，顶层另有 `object`、`success` 等标识字段。
每个模型条目包含以下字段：
- `id` (string) — 模型 ID。调用其他接口时原样填入 `model` 字段。
- `object` (string) — 对象类型，固定为 `model`。
- `created` (integer) — 创建时间戳，Unix 秒。这是占位值，不反映模型的实际上线时间，不要用它排序或判断新旧。
- `owned_by` (string) — 上游归属方，用于标注模型来源，不参与路由。常见取值如 `openai`、`claude`、`google gemini` 等，以接口实际返回为准。
- `supported_endpoint_types` (string[]) — 该模型支持的调用方式。不同模型取值不同，同一模型也可能同时支持多种，是选择接口路径的依据。
## 调用方式与路径
`supported_endpoint_types` 的常见取值与实际调用路径对应如下：
| 取值 | 说明 | 典型路径 |
|---|---|---|
| `openai` | OpenAI 兼容格式，覆盖面最广 || 对话、嵌入、图像等各自的 `/v1/...` 路径 |
| `anthropic` | Claude 原生格式 || `POST /v1/messages` |
| `gemini` | Gemini 原生格式 || `POST /v1beta/models/{model}:generateContent` |
| `image-generation` | 图像生成 || `POST /v1/images/generations` |
这只是常见取值，不是全部。Seedance 系列另有视频类取值（如与 `video`、`Official` 相关的项），具体以接口返回为准。
同一个模型可能同时支持多种格式。例如 Claude 系模型通常同时返回 `anthropic` 与 `openai`，既可以用原生格式调用，也可以走 OpenAI 兼容格式，按你的代码习惯选一种即可。
## 如何选模型
三个维度配合看：
- **能不能调** —— 看 `/v1/models` 里有没有这个 `id`。列表只返回当前账号可用的模型，换 Key 或换分组结果会变
- **怎么调** —— 看 `supported_endpoint_types`。要 OpenAI 兼容就挑带 `openai` 的，要用原生格式就挑对应的取值
- **多少钱** —— 见[模型价格与分组接口](model-pricing.html)，按 `model_ratio` 结合所在分组换算
## 注意事项
1. **列表范围由账号决定**，不是全站模型。Key 的限制与分组不同，看到的清单也会不同
2. **`created` 不反映真实上线时间**，各模型返回的值基本相同，不能用来排序
3. **筛选在客户端做**。清单一次返回全部可用模型，按 `supported_endpoint_types` 或模型名在本地过滤即可
4. **模型清单会变动**，新增或下线不需要改代码，按 `id` 直接调用即可
5. **本接口只提供模型的身份信息**。能力标签、价格、分组在[模型价格与分组接口](model-pricing.html)里，每个模型的请求体参数见各自接口页，比如对话模型看「通用对话接口」的请求参数一节
## 错误码
错误响应的格式、状态码与重试建议见[错误码与限流](../support/errors.html)，常见报错的排查步骤见[常见问题](../support/faq.html)。
## 使用示例
### 拉取全部可用模型
最简形式：一次拿全当前账号可用的模型。
### 只取模型 ID
组装模型选择器时通常只需要 ID 列表，用 `jq` 过滤即可。
```bash
curl -s --request GET \
  --url 'https://api.oairoute.com/v1/models' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  | jq -r '.data[].id'
```
### 按调用方式筛模型
想在本地只保留支持原生 Claude 格式的模型，按 `supported_endpoint_types` 过滤。
```bash
curl -s --request GET \
  --url 'https://api.oairoute.com/v1/models' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  | jq -r '.data[] | select(.supported_endpoint_types | index("anthropic")) | .id'
```
### 只保留图像生成模型
同理，筛出带 `image-generation` 的模型，用于图像接口的模型下拉。
```bash
curl -s --request GET \
  --url 'https://api.oairoute.com/v1/models' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  | jq -r '.data[] | select(.supported_endpoint_types | index("image-generation")) | .id'
```
## 示例
真实返回，截取两条：
```json
{
  "data": [
    {
      "id": "gpt-5-nano",
      "object": "model",
      "created": 1626777600,
      "owned_by": "openai",
      "supported_endpoint_types": ["openai"]
    },
    {
      "id": "claude-haiku-4-5-20251001",
      "object": "model",
      "created": 1626777600,
      "owned_by": "claude",
      "supported_endpoint_types": ["anthropic", "openai"]
    }
  ],
  "object": "list",
  "success": true
}
```
**拉取全部可用模型{List models}::cURL**
```
curl --request GET \
  --url 'https://api.oairoute.com/v1/models' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY'
```
**拉取全部可用模型{List models}::Python**
```
import requests
url = "https://api.oairoute.com/v1/models"
headers = {"Authorization": "Bearer YOUR_OAIRoute_KEY"}
res = requests.get(url, headers=headers)
print(res.json())
```
**拉取全部可用模型{List models}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/models", {
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
});
console.log(await res.json());
```
**200 拉取全部可用模型{List models}**
```
{
  "data": [
    {
      "id": "gpt-5-nano",
      "object": "model",
      "created": 1626777600,
      "owned_by": "openai",
      "supported_endpoint_types": [
        "openai"
      ]
    },
    {
      "id": "claude-haiku-4-5-20251001",
      "object": "model",
      "created": 1626777600,
      "owned_by": "claude",
      "supported_endpoint_types": [
        "anthropic",
        "openai"
      ]
    }
  ],
  "object": "list",
  "success": true
}
```
