一句话答案
返回 404、"code": "model_not_found",提示 The model `<id>` does not exist or you do not have access to it.,意思是:你调用的接口不会用这个模型 ID 给你的 Key 提供服务。不管是这个 ID 根本不存在,还是存在但你没有权限,OpenAI 返回的都是同一句话,所以两种情况都要查:
- ID 写对了吗? 用同一个 Key 调
GET /v1/models,看列表里有没有这个 ID。 - 模型还在提供吗? 已退役的模型过了停用日期就不能再调了。
- 你的项目能用它吗? 项目可以限制自己的 Key 能调哪些模型。
- 请求发到你以为的地方了吗? 把网关的模型名发给了 OpenAI,或者把 OpenAI 的模型 ID 发给了一个没有这个模型的网关,都会报这个错。
如果是用 ChatGPT 账号登录的 Codex,模型必须在你的套餐和工作区里可用。运行 /model,从列表里选一个。
报错长什么样
API 报错,下面这条是 Aider-AI/aider#2030 里经 LiteLLM 抛出的:
Error code: 404 - {'error': {'message': 'The model `gpt-4o-2024-08-06` does not exist or you do not have access to it.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
用 ChatGPT 账号登录的 Codex,见 openai/codex#43344(2026 年 9 月,有删节):
unexpected status 404 Not Found: The model `gpt-5.5` does not exist or you do not have access to it., url: https://chatgpt.com/backend-api/codex/responses, ...
网关配置没生效的应用,见 lihor-hub/news-dashboard#552。auto 是只有他们网关才认识的模型名:
Error code: 404 - The model `auto` does not exist or you do not have access to it. (model_not_found)
OpenAI Python SDK 遇到这个 404 会抛 NotFoundError。
为什么会这样
| 原因 | 怎么判断 | 怎么改 |
|---|---|---|
| ID 拼错,或者填的是显示名而不是 API ID | GET /v1/models 里没有这个 ID |
从列表里原样复制 id |
| 模型已退役 | OpenAI 弃用页面 上它的停用日期已过 | 换成页面推荐的替代模型 |
| 项目限制了可用模型 | 项目设置了模型白名单或黑名单 | 请管理员放开这个模型,或换用其他项目的 Key |
| Key 属于别的组织或项目 | 换一个 Key,同一个 ID 就能用 | 用能调这个模型的组织和项目下的 Key |
| 请求发错了地址 | 报错里的 URL 或你的 Base URL 设置不是你预期的 | 改好 Base URL,并使用目标接口列出的 ID |
| Codex:模型不在你的 ChatGPT 套餐或工作区里 | URL 是 chatgpt.com/backend-api/codex/... |
用 /model 换一个模型 |
模型 ID。 List models 接口 会列出当前可用的模型,以及请求里要填的准确 id。ChatGPT 里或某个工具菜单里显示的名字,不一定就是 API ID。
模型退役。 模型停用后就不能再访问了。即将停用的日期列在弃用页面上;如果已经公布了停用日期,List models 的返回里也会带 shutdown_date 字段。比如 OpenAI 在 2026 年 10 月 14 日宣布,gpt-4o-2024-08-06、gpt-4o-2024-11-20、gpt-4o-mini-2024-07-18、gpt-4.1-2025-04-14、gpt-4.1-mini-2025-04-14 将于 2027 年 1 月 14 日从 API 下线,推荐的替代模型都是 gpt-6-luna。
项目模型权限。 组织管理员可以给项目设置模型白名单(只允许列出的模型)或黑名单(禁用列出的模型),见 项目管控文档。这个项目下的 Key 用不了规则之外的模型。
发错地址。 在 news-dashboard#552 里,网关的 Base URL 和 Key 存在了另一组变量名下,后端读的变量是空的。应用于是退回了 OpenAI 默认地址,还带上了只有网关才有的模型名 auto。反过来也一样:网关只提供它自己列出的模型 ID,和 OpenAI 的不一定相同。
怎么解决
- 列出你的 Key 能用的模型。 用和报错请求相同的 Key、相同的 Base URL:
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
或者用 Python:
from openai import OpenAI
client = OpenAI()
ids = sorted(m.id for m in client.models.list())
print(len(ids), "models")
print("gpt-6-luna" in ids)
- 列表里没有这个 ID: 改正拼写,或者换一个列表里有的模型。如果是以前用过的模型,去弃用页面查一下。
- 列表里有,请求却还是失败: 对比应用里实际用的 Key 和 Base URL,和你刚才测试用的是不是同一套。Python SDK 会读取
OPENAI_BASE_URL、OPENAI_PROJECT_ID这类环境变量,它们可能让应用连到别的地址或别的项目。 - 是项目限制导致的: 请组织管理员给这个项目放开该模型,或者换用允许它的项目下的 Key。
在 Codex 里遇到
- 用 ChatGPT 账号登录。 报错 URL 以
https://chatgpt.com/backend-api/codex/开头。按 Codex 斜杠命令文档 的说法,/model选择器只显示你的账号和工作区能用的模型。运行/model选一个列表里的模型,再运行/status确认。 - 配置里写死了模型。 检查
~/.codex/config.toml以及你用的 profile 里的model = "..."。如果写的是你账号用不了的模型,改成/model列表里有的。 - 很多人同时报错。 2026 年 9 月,几天之内有大量用户报告
gpt-5.5出现这个 404(#43344、#43755、#44098)。#43344 里有用户确认同一账号下gpt-6-astra仍然正常,#44098 的提问者后来也说恢复了。如果某个模型所有人同时报错,先换模型、看 issue 进展,不用急着改自己的配置。 - 用了自定义 provider。 哪些模型 ID 存在由 provider 决定,用它模型列表里的 ID。
一个 Key 调多家模型
TeamoRouter 是一个 API 网关,一个 Key 可以调 GPT、Claude、Gemini、DeepSeek。它兼容 OpenAI 接口(/v1/chat/completions 和 /v1/responses),GET /v1/models 会列出你的 Key 能用的模型 ID,写进代码之前可以先查一下。没有订阅,按用量付费。
- 在 TeamoRouter 控制台 创建 API Key,Key 以
sk-teamo-开头。 - 充值,最低 $5。 充值弹窗支持银行卡;也可以点 「USDT支付」,用 USDT、USDC 或 ETH,从任意交易所 App 转账——收银台会按金额显示可用网络(BEP20 从 $5 起就能用)。步骤见 用 USDT 充值。
- 列出模型 ID:
curl https://api.teamorouter.com/v1/models \
-H "Authorization: Bearer sk-teamo-..."
- 用 OpenAI SDK 调其中一个:
from openai import OpenAI
client = OpenAI(
api_key="sk-teamo-...",
base_url="https://api.teamorouter.com/v1",
)
resp = client.responses.create(model="gpt-6-sol", input="Hello")
print(resp.output_text)
Codex 的话,在 ~/.codex/config.toml 里加一个 provider,model 填列表里的 ID:
model_provider = "teamorouter"
model = "gpt-6-sol"
[model_providers.teamorouter]
name = "TeamoRouter"
base_url = "https://api.teamorouter.com/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"
把 OPENAI_API_KEY 设成你的 TeamoRouter Key,然后在同一个终端里启动 codex。Windows 的命令见 安装与配置 Codex。Claude 模型用同一个 Key 走 Anthropic 协议(/v1/messages),见 API 接入指南。
常见问题
为什么提示里写的是「or you do not have access to it」?
不管 ID 不存在,还是你的 Key 没权限,OpenAI 返回的都是这一句。所以最快的办法就是用同一个 Key 调 GET /v1/models 看一眼。
换个新 Key 能解决吗? 只有新 Key 属于能用这个模型的组织和项目时才行。同一个项目下新建的 Key,模型权限是一样的。
这是 401 的问题吗?
不是。Incorrect API key provided 这类 401 是 Key 被拒了;404 model_not_found 是 Key 通过了,但模型不可用。
昨天还能用,今天怎么不行了? 查一下这个模型在弃用页面上的情况,问问项目的模型设置有没有改过;如果是 Codex,看看别人是不是也在报同一个模型。