Gmail API 受用量限制,该限制会限制 API 方法的调用速率。限制以 配额 单位 表示,配额单位是代表 Gmail 资源用量的抽象计量单位。
Gmail API 配额
系统会强制执行两种类型的配额:
每个项目每分钟 :这是您的 Google Cloud 项目在一分钟内可以使用的配额单位数。
每位用户每个项目每分钟 :这是任何一位特定用户可以在您的云项目 中使用的配额单位数。此限制旨在帮助您确保用户之间的用量公平分配。
下表详细介绍了这些限制:
| 用量限额类型 | 限制 |
|---|---|
| 每个项目每分钟 | 1,200,000 个配额单位 |
| 每位用户每个项目每分钟 | 6,000 个配额单位 |
如需了解如何处理限制错误,请参阅解决 错误。
每日结算阈值
此每个项目每日 限制定义了在开始收费之前,您的 Google Cloud 项目在 24 小时内可以使用的配额单位数上限。
如果用量低于此阈值,则不会产生额外费用,并且系统不会向您的 Google Cloud 账号收费。我们将在 2026 年晚些时候分享完整的结算详情,并在任何变更生效前至少 90 天发出通知。
您不能申请提高此每日阈值限制。
下表详细介绍了此限制:
| 阈值限制类型 | 限制 |
|---|---|
| 每个项目每日 | 80,000,000 个配额单位 |
如需了解详情,请参阅 Google Workspace 代理工具 和 API 的标准化模型。
每种方法的配额用量
每次请求消耗的配额单位数因调用的方法而异。下表列出了每种方法的配额单位用量:
| 方法 | 配额单位 |
|---|---|
drafts.create |
10 |
drafts.delete |
10 |
drafts.get |
20 |
drafts.list |
5 |
drafts.send |
100 |
drafts.update |
15 |
getProfile |
1 |
history.list |
2 |
labels.create |
5 |
labels.delete |
5 |
labels.get |
1 |
labels.list |
1 |
labels.update |
5 |
messages.attachments.get |
20 |
messages.batchDelete |
50 |
messages.batchModify |
50 |
messages.delete |
10 |
messages.get |
20 |
messages.import |
25 |
messages.insert |
25 |
messages.list |
5 |
messages.modify |
5 |
messages.send |
100 |
messages.trash |
20 |
messages.untrash |
5 |
settings.delegates.create |
100 |
settings.delegates.delete |
5 |
settings.delegates.get |
1 |
settings.delegates.list |
1 |
settings.filters.create |
5 |
settings.filters.delete |
5 |
settings.filters.get |
1 |
settings.filters.list |
1 |
settings.forwardingAddresses.create |
100 |
settings.forwardingAddresses.delete |
5 |
settings.forwardingAddresses.get |
1 |
settings.forwardingAddresses.list |
1 |
settings.getAutoForwarding |
1 |
settings.getImap |
1 |
settings.getPop |
1 |
settings.getVacation |
1 |
settings.sendAs.create |
100 |
settings.sendAs.delete |
5 |
settings.sendAs.get |
1 |
settings.sendAs.list |
1 |
settings.sendAs.update |
100 |
settings.sendAs.verify |
100 |
settings.updateAutoForwarding |
5 |
settings.updateImap |
5 |
settings.updatePop |
100 |
settings.updateVacation |
5 |
stop |
50 |
threads.delete |
20 |
threads.get |
40 |
threads.list |
10 |
threads.modify |
10 |
threads.trash |
20 |
threads.untrash |
10 |
watch |
100 |
使用 Gmail API 时,每封电子邮件的收件人数量也有限制,上限为 500 个。
解决基于时间的配额错误
对于所有基于时间的错误(每 X 分钟最多 N 个请求),我们建议 您的代码捕获异常并使用截断的指数退避算法,以确保您的 设备不会产生过多的负载。
指数退避算法是网络应用的标准错误处理策略。 指数退避算法以指数方式重试请求(不断增加各次请求之间的等待时间,直到达到最大退避时间) 。如果请求仍然失败,请务必随着时间的推移增加请求之间的延迟时间,直到请求成功为止。
示例算法
指数退避算法以指数方式重试请求(不断增加各次重试之间的等待时间 ,直到达到最大退避时间)。例如:
- 向 Gmail API 发出请求。
- 如果请求失败,请等待 1 +
random_number_milliseconds,然后重试 请求。 - 如果请求失败,请等待 2 +
random_number_milliseconds,然后重试 请求。 - 如果请求失败,请等待 4 +
random_number_milliseconds,然后重试 请求。 - 依此类推,等待时间上限为
maximum_backoff。 - 继续等待并重试,直到达到最大重试次数,但不要增加重试之间的等待 时间。
其中:
- 等待时间为
min(((2^n)+random_number_milliseconds), maximum_backoff), 每次迭代(请求)后增加 1。n random_number_milliseconds是一个随机毫秒数,小于或 等于 1,000。这有助于避免许多客户端因 某种情况而同步,并同时重试,从而以同步波的形式发送请求。每次重试请求后,系统都会重新计算random_number_milliseconds值。maximum_backoff通常为 32 或 64 秒。最适当的值 取决于用例。
客户端达到 maximum_backoff 时间后,可以继续重试。
此后执行的重试不需要继续增加退避时间。例如,如果客户端使用的 maximum_backoff 时间为 64 秒,那么在达到
此值后,客户端可以每 64 秒重试一次。到了特定时间点后,
客户端应停止无限重试。
重试之间的等待时间和重试次数取决于您的用例 和网络条件。
价格
所有标准 Gmail API 用途均免费。超出配额 请求限制的用量计划在 2026 年晚些时候向您的 Google Cloud 结算账号收费。 如需了解详情,请参阅 Google Workspace 代理工具和 API 的标准化模型。
申请增加配额
根据项目的资源用量,您可能需要申请调整配额。服务账号发出的 API 调用被视为使用单个账号。我们无法保证您的调整配额申请一定会得到批准。如果配额调整申请会大幅增加配额值,则可能需要更长时间才能获得批准。
并非所有项目的配额都完全相同。随着您的 Google Cloud 用量逐步增加,您的配额值可能需要增加。如果您预计自己的用量即将显著增加,可以在 Google Cloud 控制台的“配额和系统限制”页面中提前申请调整配额。
如需了解详情,请参阅以下资源:
Gmail MCP 服务器配额
Gmail MCP 服务器使用查询费用分配指标。下表按部分详细列出了每种 Gmail MCP 服务器方法的查询费用:
Gmail MCP 配额
系统会强制执行两种类型的配额:
每个项目每分钟 :这是您的 Google Cloud 项目在一分钟内的查询费用。
每位用户每个项目每分钟 :这是任何一位特定用户可以在您的 Google Cloud 项目中使用的查询费用。
下表详细介绍了这些配额:
| 用量限额类型 | 查询费用 |
|---|---|
| 每个项目每分钟 | 1,200,000 |
| 每位用户每个项目每分钟 | 6,000 |
Gmail MCP 工具集配额
下表详细列出了每种 gmailmcp.googleapis.com 工具集的查询费用:
| 端点 | 工具 | 查询费用 |
|---|---|---|
/mcp/v1 |
|
10 |
|
40 |
|
|
10 |
|
|
10 |
|
|
5 |
|
|
1 |
|
|
10 |
|
|
10 |
|
|
10 |
如需了解详情,请参阅 Gmail MCP API 参考文档。