Gemini API 常见错误排查指南:403 与 429 状态码完全解析
当你拿着刚生成的 AIzaSy 开头的 API 密钥,兴冲冲地用 curl 发起第一次请求时,却被冷冰冰的 403 或 429 错误码挡在门外,这是很多开发者初次接触 Gemini API 时都会遇到的问题。
别急着怀疑自己的操作。这两个 HTTP 状态码恰恰是 Google AI 平台留给开发者最直白的提示 —— 它们虽然没有多余的寒暄,但指向的问题非常明确。按照下面的分类逐一排查,往往比盲目重试要高效得多。
一、密钥身份合法性问题:403 权限被拒
无论是从 Google AI Studio 直接获取的密钥,还是在 Google Cloud Platform(GCP)项目中生成的 API 密钥,第一步都需要确认它的身份合法性和调用权限。
典型症状
密钥字符串复制完全正确,但调用时返回以下错误:
plaintext
403: Method doesn't allow unregistered callers (callers without established identity)
或官方文档中对应的权限拒绝错误:
plaintext
403 PERMISSION_DENIED: Your API key has no required permissions / the key was recognized but access was denied at the authorization layer.
根本原因
你虽然拥有了 "门禁卡"(密钥),但项目对应的 "大门" 并没有打开 —— 该项目的 Generative Language API 服务尚未启用。因此,即便密钥字符串本身是正确的,请求也会被授权层拒绝。
这里有一个非常容易踩坑的细节:在 Google Cloud Console 中,Gemini 开发者 API 的服务名称是Generative Language API,而不是 "Gemini API"。搜索错误的名称会导致找不到对应的服务。
官方标准解法
- 打开 Google Cloud Console:https://console.cloud.google.com
- 确认左上角显示的当前项目,就是你创建或绑定该密钥的项目
- 点击左侧菜单,进入「API 与服务→库」
- 在搜索框中输入 "Generative Language API" 并搜索
- 进入服务详情页,点击「启用」按钮
- 等待 2-5 分钟让配置生效,然后重试请求
三个隐蔽的常见坑
表格
| 坑点 | 现象 | 检查方式 |
|---|---|---|
| 复制时带入多余空格或换行 | 密钥形式上正确但一律返回 400/403 | 将密钥粘贴到纯文本编辑器,确认首尾无空白字符 |
| 密钥的 API 限制拦截了请求 | 密钥有效但返回 403 | 进入「API 与服务→凭据」,点击该密钥查看详情,确认 API 限制中允许了 Generative Language API |
| 密钥被标记为泄露 | 提示 "Your API key was reported as leaked" | 前往 Google AI Studio 的 API 密钥页面查看状态,这种情况只能删除旧密钥并重新生成 |
二、API 未启用:有卡但未开通服务
这一问题与第一类本质相同,但因其极高的出现频率值得单独列出。很多开发者以为在 Google Cloud Console 中生成了密钥就万事大吉,却忽略了最关键的一步:启用对应的 API 服务。
Google 不会因为你创建了密钥就自动帮你启用 Generative Language API,这是官方故障排查文档中明确列出的 403 错误首要排查方向。
解法与上文完全一致:进入 Google Cloud Console 的「API 与服务→库」,搜索并启用 Generative Language API。
三、速率限制超限:429 资源耗尽
这是最容易让人感到 "冤枉" 的一种错误 —— 代码没有任何问题,只是请求的速度太快或数量太多。
429 错误的官方含义是:
plaintext
429 RESOURCE_EXHAUSTED — 您已超出速率限制
Gemini API 的速率限制是三维同时生效的,任一维度超限都会触发 429 错误:
表格
| 维度 | 全称 | 含义 |
|---|---|---|
| RPM | Requests Per Minute | 每分钟请求数 |
| TPM | Tokens Per Minute | 每分钟 Token 消耗量(输入 + 输出) |
| RPD | Requests Per Day | 每日总请求数(太平洋时间午夜重置) |
需要特别注意:所有限制都是按项目计算的,不是按密钥计算的。同一个项目下创建十个密钥,也不会叠加额度。
免费层大致配额(2026 年最新)
表格
| 模型 | RPM(每分钟请求) | TPM(每分钟 Token) | RPD(每日请求) |
|---|---|---|---|
| gemini-2.5-flash | 10-15 | 250,000 | 250-500 |
| gemini-2.5-flash-lite | 15 | 250,000 | 1000 |
| gemini-2.5-pro | 5 | 250,000 | 100 |
429 错误的常见触发场景
- 常规超速:脚本循环中无间隔地发送请求,一秒钟发起十几次请求,直接触发 RPM 限制
- Token 暗耗:以为只发了几次请求不会超限,但每次请求都携带了长上下文或长文档,导致 TPM 提前耗尽
- 日额度用尽:RPD 达到每日上限后,即使当前分钟没有超速,也会继续返回 429,直到太平洋时间午夜重置
解决方案(从低成本到高成本)
- 在脚本层添加请求间隔,例如使用
time.sleep(5)设置保守的间距 - 实现指数退避机制:捕获 429 错误,读取响应头中的重试提示,等待适当时间后再重发
- 定期截断上下文:多轮对话中不要让历史记录无限膨胀,及时清理无用的对话内容
- 升级付费方案:前往 Google AI Studio 或 Cloud Console 启用结算功能,升级到 Tier 1 后,RPM 可提升至约 1000,RPD 可提升至约 10000 量级
四、地域限制:看不见的准入门槛
这是最让人感到莫名其妙的一种 403 错误:密钥是对的,API 也启用了,但无论如何调用都返回 403。
根本原因
Google AI Studio 和generativelanguage.googleapis.com有明确的支持地区列表,中国大陆和香港地区不在支持范围内。API 请求会在入口层直接被拒绝,根本不会进入权限判断环节。
典型表现
- 浏览器访问aistudio.google.com时,显示 "Gemini isn't supported in your region"
- 直接调用 API 时返回 403 错误,没有其他具体说明
合规说明
Google 的风控机制不仅检查出口 IP,还会关联账号地区记录、Cookie 与历史登录环境的一致性。如果你身处不支持的地区,官方合规的解决方案是使用支持地区的合法环境与账号,或选择合规的云服务替代方案。
5 分钟快速排查清单
按照以下顺序逐一检查,绝大多数 403 和 429 错误都能快速定位:
- 密钥复制是否完整?首尾是否有多余的空格或换行?
- 对应项目中的 Generative Language API 是否已启用?
- 密钥的 API 限制是否允许了 Generative Language API?
- 是否返回 429 错误?如果是,尝试降低请求频率、清理上下文或等待额度重置
- 是否使用了中国大陆或香港地区的 IP 直接访问 API?
- 密钥状态是否被标记为泄露?如果是,删除旧密钥并重新生成
结语
在 AI 开发过程中,排查问题的时间成本往往远大于编写代码的时间成本。与其盲目猜测 "是不是密钥坏了",不如读懂每个错误码背后的真正含义:403 说的是 "你有没有资格进门",429 说的是 "你进来了但拿得太多了",两者的解决方案完全不同。
对于需要稳定、高效使用 AI 大模型的开发者和企业来说,UseAIAPI提供了一站式的接入解决方案。平台聚合了 Gemini、Claude、ChatGPT、DeepSeek 等全球主流前沿 AI 大模型,提供稳定可靠的企业级定制化服务,无需复杂配置即可快速接入使用。平台推出了极具竞争力的优惠政策,全线服务最低可享官方定价 5 折,大幅降低了高强度开发和内容生产场景下的使用成本,让更多开发者和企业能够以更低的门槛享受到先进 AI 技术带来的效率提升。