HRouter

API 403 报错:ACCESS_DENIED、API_KEY_EXPIRED、GROUP_NOT_ALLOWED 怎么解决

HTTP 403 表示网关认出了你的 Key,但拒绝了这次请求。和 401 不同,这时 Key 本身是对的,问题出在 IP 限制、有效期、分组或订阅上。先看返回的错误码,对号入座。

错误码速查

错误码 含义 去哪里处理
ACCESS_DENIED 请求来源 IP 不在 Key 的允许范围内 编辑 Key 的 IP 限制
API_KEY_EXPIRED Key 已超过有效期 编辑有效期或新建 Key
GROUP_NOT_ALLOWED Key 所属的专属分组不再允许当前账号使用 换一个可用分组
GROUP_DISABLED / GROUP_DELETED Key 所属分组已停用或已删除 换一个可用分组
SUBSCRIPTION_NOT_FOUND 分组需要订阅,但账号没有有效订阅 确认订阅状态
SUBSCRIPTION_INVALID 订阅已失效 续订或换分组
INSUFFICIENT_BALANCE 账户余额不足 见 余额不足

ACCESS_DENIED:IP 被限制

返回信息类似 Access denied. Your IP is x.x.x.x,括号里的就是网关看到的请求来源 IP。

  1. 到 API 密钥 编辑这个 Key,查看 IP 限制。
  2. 如果你不需要限制,清空这一项;如果需要,把返回信息里的 IP 加进允许列表。
  3. 注意网关看到的是出口 IP:用了代理、公司网络或云服务器时,和你本机的 IP 不一样。出口 IP 会变化的环境(例如家庭宽带)不适合设置 IP 限制。

不了解 IP 规则时,不要随意填写,否则会拦住自己的正常请求。

API_KEY_EXPIRED:Key 过期

创建 Key 时如果设置了有效期,到期后所有请求都会被拒绝。在 API 密钥 里编辑有效期,或者新建一个 Key,再更新工具里的配置。

GROUP_NOT_ALLOWED、GROUP_DISABLED:分组问题

Key 的权限由所属分组决定:

  • 专属分组不再允许使用:分组的使用范围被调整,当前账号被移出。
  • 分组已停用或删除:运营方下线了这个分组。

处理方式相同:编辑这个 Key,选择一个当前可用的分组,保存后重新查询模型列表并测试。怎么选分组见 如何选择 Key 分组。

SUBSCRIPTION_NOT_FOUND:订阅类分组没有订阅

有些分组按订阅计费,需要账号下有有效订阅才能用。余额充足也不能替代订阅。到 订阅 页面确认订阅状态和有效期。

与模型相关的 403

分组有时会限制客户端或模型范围,例如名称或说明里带有 “Claude Code only” 的分组,只能给 Claude Code 使用。用在别的客户端里可能被拒绝。请核对分组说明,见 如何选择 Key 分组。

一个最小验证

curl -i https://hrouter.net/v1/models \
  -H "Authorization: Bearer $HROUTER_API_KEY"

返回 200 且列表里有目标模型,说明 Key、分组和 IP 都正常,问题在客户端。仍然 403,看响应里的错误码,按上表处理。

相关阅读