先验证API本身是否可用,用curl直接测试端点和密钥;Base URL只填基础路径如https://api.xxx.com/v1,不加末尾斜杠或/chat/completions;检查密钥隐藏字符,用VS Code显示空白字符并清理;确认模型ID与服务商/v1/models列表完全一致;环境变量需进程级注入,GUI应用无法继承shell配置。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Cursor配置自己的API后显示“Invalid API Key”或验证按钮始终不亮绿勾,说明密钥未被正确识别——这通常不是密钥本身失效,而是环境注入、格式污染或服务端权限未开通导致的静默失败。
先验证API本身是否可用
打开终端,用curl直接测试你的API端点和密钥:
curl -X POST https://your-base-url.com/v1/chat/completions -H "Authorization: Bearer sk-xxx" -H "Content-Type: application/json" -d '{"model":"gpt-4","messages":[{"role":"user","content":"hi"}]}'
如果返回401或HTML页面,说明问题出在API服务端,不是Cursor的问题。必须先让curl能通,再进Cursor填。
检查Base URL填写规范
方法一:只填基础路径,不要带/chat/completions
✅ 正确示例:【https://api.xxx.com/v1】
❌ 错误示例:https://api.xxx.com/v1/(末尾斜杠)、https://api.xxx.com/v1/chat/completions(路径过深)、https://api.xxx.com(缺/v1)
Cursor会自动拼接/chat/completions,多写一步就404。
排查API Key隐藏字符污染
第一步:复制密钥后,粘贴到VS Code中,开启「显示空白字符」(Ctrl+Shift+P → Toggle Render Whitespace)
第二步:观察末尾是否有灰色¶符号或空格块——全角空格、换行符、Zero Width Space(U+200B)肉眼不可见,但会导致Base64解码失败
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
第三步:手动重输密钥,或用在线工具(如jsonlint.com)粘贴后清理不可见字符
确认模型ID与服务端实际支持列表一致
① 访问你的API服务商后台,找到「支持模型」页面,复制完整模型ID(注意大小写、连字符、命名空间)
② 不要凭记忆填写,比如deepseek-r1 ≠ deepseek/deepseek-r1 ≠ deepseek-r1:free
③ 在Cursor设置中填入时,确保「Use custom model」开关已启用,且Model ID与服务商返回的/v1/models接口列表完全一致
如果填错,Cursor不会提示“模型不存在”,而是直接返回400或空响应——这是最隐蔽的失败点。
验证环境变量是否被Electron继承
如果你把DEEPSEEK_API_KEY或OPENAI_API_KEY写在~/.zshrc或/etc/environment里,Cursor大概率读不到。
✅ 正确做法:启动Cursor时显式注入环境变量
macOS:在终端执行 OPENAI_API_KEY=sk-xxx /Applications/Cursor.app/Contents/MacOS/Cursor
Windows:用PowerShell运行 $env:OPENAI_API_KEY="sk-xxx"; Start-Process "C:\Users\XXX\AppData\Local\Programs\cursor\Cursor.exe"
【系统级环境变量对GUI应用无效,必须进程级注入】

















