OpenAI

买来的 OpenAI API Key 直连报 401?分清官方 Key 与中转 Key

编辑部阅读约 4 分钟

从第三方渠道买的 OpenAI API Key,在别人的聊天客户端里能用,自己请求 api.openai.com 却返回 401 invalid_api_key。本文说明这类 Key 多半是中转 Key、只对服务商网关有效,给出三步判断方法、base_url 配置示例,以及第三方 Key 的风险与更稳妥的替代方案。

从第三方渠道买来一把 OpenAI API Key,在别人的聊天客户端里对话正常,可一旦自己写代码请求 https://api.openai.com/v1/chat/completions,立刻返回 401 invalid_api_key,提示「Incorrect API key provided」。钱花了、Key 也有,为什么就是不通?

这类困惑很常见,根源大多不是 Key「坏了」,而是 Key 的来源和它被允许调用的端点对不上。下面把判断思路和处理路径讲清楚,顺手也说一下这类 Key 本身的风险。

401 invalid_api_key 到底在说什么

401 是认证失败,意思是「你出示的凭证,我这个服务端不认可」。常见成因有三类:

  1. Key 复制时多了空格、换行,或者中间被截断;
  2. Key 已被删除、重置,或所在项目/组织被移除;
  3. Key 根本不是这个服务端签发的——在这个场景里最常见。

第 3 点最关键:Key 长得像 sk-xxxx,只能说明它的格式模仿了官方,不能说明签发方就是 OpenAI。大量中转、代理、分销服务会给用户发一把前缀相同的 Key,但它在服务商自己的网关上校验,官方端点自然不认识它。

为什么同一个 Key 在别的网站能用

那些客户端本身就把请求发往服务商的网关地址,或者内置了默认的接口地址,你在里面聊天顺畅,只能证明「网关认这把 Key」,不能证明「OpenAI 认这把 Key」。两件事被混在了一起,才有了「Key 明明是好的」这种错觉。

三步确认手里的 Key 是哪一类

第一步:看客户端里有没有「接口地址 / base_url」

打开那个能用的客户端设置页,找 API 地址、Base URL、自定义端点之类的选项。如果显示的域名不是 api.openai.com,基本可以确定你用的是中转 Key。

第二步:用两条 curl 做对照实验

先打官方端点:

curl -s https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

再把地址换成服务商提供的网关地址:

curl -s https://<服务商域名>/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

前者 401、后者正常返回模型列表,结论就明确了:这是网关签发的 Key。反过来,两条都 401,才需要回头检查 Key 是否复制错误或已失效。

第三步:查用量与账单归属

官方 Key 的调用记录会出现在官方平台的用量页面里;中转 Key 在官方后台查不到任何痕迹,额度由服务商自己记账。这也是一个简单的旁证。

对比项 官方签发的 Key 中转 Key
签发方 OpenAI 第三方服务商
可用端点 api.openai.com 服务商自己的网关
用量与账单 官方后台可查 服务商内部记账
失效风险 自行管理 服务商停服即失效
数据可见性 官方链路 服务商可见请求内容

处理路径

情形 A:确认是中转 Key,且你还打算继续用

联系卖家索取「接口地址 / base_url」,通常形如 https://xxx/v1,然后把它配置到客户端或代码里。

环境变量方式(主流官方 SDK 都支持):

export OPENAI_API_KEY="sk-..."
export OPENAI_BASE_URL="https://<服务商域名>/v1"

代码里显式指定:

from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://<服务商域名>/v1",
)

几个容易踩的坑:

  • 地址末尾的 /v1 不要和 SDK 自动拼接的路径重复,否则会出现 404;
  • 部分服务商要求额外的请求头或使用不同的路径前缀,以对方文档为准;
  • 中转网关对模型名、参数、流式返回的支持往往不完整,报 400 或 404 时先怀疑这一层。

情形 B:不想被第三方卡住

  • 在官方平台自行生成 Key,按项目拆分,分别设置用量上限,一把 Key 只服务一个应用;
  • Key 放进环境变量或密钥管理服务,不要写进代码仓库;
  • 企业或合规要求高的场景,可考虑云厂商提供的托管模型服务,接口协议相近但计费和条款独立。

情形 C:其实不是 Key 的问题

要区分 401 和网络错误:超时、连接被重置、DNS 解析失败属于网络层,跟 Key 无关;401 才是认证层。

如果你的实际症状是「直连经常超时、长任务跑到一半断线」,那属于网络环境或本地设备的问题,与 Key 归属无关。这类情况可以考虑把脚本或 AI 编程工具放到网络稳定、可长期在线的远程机器上运行(例如整机放在新加坡机房的独享 Mac mini,远程连接使用),本地只负责编辑和查看结果。需要强调的是:这种方案只解决连通性和在线时长,Key 不对,换机器照样 401。

买第三方 Key 的风险

  • 随时失效:额度共享、服务商停服或跑路,预付的钱很难追回;
  • 数据可见:请求和返回内容会经过对方网关,等同于把 prompt 交给第三方;
  • 合规风险:来源不明的 Key 可能违反平台条款,账号随时被封;
  • 不可审计:无法开票、无法核对用量,不适合生产环境。

因此建议:只做临时验证可以接受,但不要用这类 Key 处理用户隐私数据、内部代码或生产流量。涉及敏感内容时,走官方或正规云服务渠道。

小结

  • 遇到 401,先怀疑 Key 与端点不匹配,而不是网络;
  • 用两条 curl 分别打官方地址和服务商网关,一次就能定性;
  • 中转 Key 必须配服务商的 base_url,官方 Key 才打 api.openai.com;
  • 长期依赖第三方 Key 有失效与数据风险,重要业务改走官方渠道;
  • 各家接口地址、可用模型和计费规则会调整,具体以官方与服务商最新文档为准。

401 错误API KeyOpenAI API中转接口接口排错