完整报错通常类似:
{
"error": {
"message": "The model `xxx` does not exist or you do not have access to it.",
"type": "invalid_request_error",
"code": "model_not_found"
}
}
后半句 or you do not have access to it 才是重点:对这把 Key 来说,这个 ID 不可见。不一定是你拼错了。

五种常见原因
- 填了展示名。 界面上的「GPT-4o」「Claude 3.5 Sonnet」不是接口字段。接口要的是
gpt-4o、claude-sonnet-4-20250514、deepseek-v4-pro这种 ID。以你用的那家控制台或GET /v1/models为准。 - 当前账号没开通。 同一串模型名,A 的 Key 能用、B 的 Key 404,就是权限 / 层级 / 地区,不是软件坏了。
- 接口和模型不匹配。 聊天模型打到旧的
/v1/completions,或反过来。Cursor 里部分新模型走/v1/responses,自定义兼容端若只实现了 Chat Completions,也会 404,报错还可能写成「这不是 chat 模型」。 - 模型已下线或改名。 旧教程里的 ID 会失效。以当前模型列表为准,不要抄一年前的博客。
- Azure / 其他云和 OpenAI 官方混用。 Azure 要部署名(deployment name),不是
gpt-4o这种公开 ID。客户端仍指向api.openai.com时,表现也是找不到模型。
DeepSeek 要填文档里的 id
DeepSeek 文档当前的调用名是 deepseek-v4-flash、deepseek-v4-pro 等,不是宣传页大标题。旧文里的 deepseek-chat / deepseek-reasoner 若已经对不上控制台,以 官方「首次调用 API」 表格为准。
两分钟核对
- 用同一把 Key 调
GET {Base URL}/models(注意 Base URL 不要已经含完整 chat 路径)。 - 返回列表里有没有你填的那个字符串。没有 → 换列表里的 id,或换有权限的 Key。
- 列表里有、聊天仍 404 → 查是不是打错了
/chat/completionsvs/responsesvs/completions。 - Cursor Verify 失败但 curl 通 → 软件可能改写了路径,或 Override Base URL 把内置模型也转发出去了。
和 401、404 路径错误分开
- 401:门禁,Key / 头不对。见 401 排查。
- 404 且路径里有
/v1/v1:Base URL 拼重了。见 Base URL 要不要加 /v1。 model_not_found:门禁过了,但模型 id 对这把 Key 无效。

AI故障手册