使用制限

Gmail API には使用量上限があり、API のメソッドを呼び出す頻度が制限されます。上限は割り当て ユニットで定義されます。割り当てユニットは、 Gmail リソースの使用量を表す抽象的な測定単位です。

Gmail API の割り当て

次の 2 種類の割り当てが適用されます。

  • プロジェクトあたり毎分: Google Cloud プロジェクトが 1 分間に使用できる割り当てユニット数です。

  • プロジェクトごとのユーザーあたり毎分: 特定のユーザーが クラウド プロジェクトで使用できる割り当てユニット数です。この上限は、ユーザー間で使用量を公平に分配できるようにすることを目的としています。

次の表に、これらの上限の詳細を示します。

使用量上限の種類 上限
プロジェクトあたり毎分 1,200,000 割り当てユニット
プロジェクトごとのユーザーあたり毎分 6,000 割り当てユニット

上限エラーの処理については、エラーを解決する をご覧ください。

1 日の請求額のしきい値

このプロジェクトごとの 1 日あたりの 上限は、料金が適用される前に Google Cloud プロジェクトが 24 時間以内に使用できる割り当てユニットの最大数を定義します。

このしきい値以下の使用量には追加料金は発生せず、Google Cloud アカウントに請求されることもありません。請求の詳細については、2026 年に改めてお知らせいたします。変更が適用される 90 日前までにはお知らせいたします。

この 1 日のしきい値の上限の引き上げはリクエストできません。

次の表に、上限の詳細を示します。

しきい値の上限の種類 上限
プロジェクトごとの 1 日あたり 80,000,000 割り当てユニット

詳細については、エージェント ツール と API の Google Workspace 標準化モデルをご覧ください。

メソッドごとの割り当て使用量

リクエストごとに消費される割り当てユニット数は、呼び出されるメソッドによって異なります。次の表に、メソッドごとの割り当てユニットの使用量を示します。

メソッド 割り当て量
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 を使用する場合、1 つのメール メッセージあたりの受信者の上限は 500 人です。

時間ベースの割り当てエラーを解決する

時間ベースのエラー(X 分あたり最大 N 件のリクエスト)が発生した場合は、 コードで例外をキャッチし、切り捨てられた指数バックオフを使用して、 デバイスが過剰な負荷を生成しないようにすることをおすすめします。

指数バックオフは、ネットワーク アプリケーションに使われる標準的なエラー処理方法です。 指数バックオフのアルゴリズムは、リクエスト間の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。 リクエストがまだ成功しない場合は、 リクエストが成功するまでリクエスト間の遅延を徐々に増やしていくことが重要です。

アルゴリズムの例

指数バックオフのアルゴリズムは、再試行の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。次に例を示します。

  1. Gmail API にリクエストを送信します。
  2. リクエストが失敗した場合は、1 + random_number_milliseconds 待ってからリクエストを再試行します 。
  3. リクエストが失敗した場合は、2 + random_number_milliseconds 待ってからリクエストを再試行します 。
  4. リクエストが失敗した場合は、4 + random_number_milliseconds 待ってからリクエストを再試行します 。
  5. このようにして、最大 maximum_backoff 時間まで繰り返します。
  6. 再試行の最大回数まで待機と再試行を続行しますが、再試行の間の待ち時間 は増加させません。

ここで

  • 待ち時間は min(((2^n)+random_number_milliseconds), maximum_backoff), で、n は繰り返される(リクエスト)のたびに 1 増加します。
  • random_number_milliseconds は、1,000 ミリ秒以下の乱数です。これにより、ある状況で、多数のクライアントが同期して再試行を一度に実行し、リクエストが同時に次々と送信されるような状況を避けることができます。random_number_milliseconds の値は再試行リクエストの後に毎回再計算されます。
  • 通常、maximum_backoff は 32 秒または 64 秒です。適切な値 はユースケースによって異なります。

クライアントは、maximum_backoff 時間が経過した後も再試行を続けることができます。 この時点より後の再試行では、バックオフ時間を増加させ続ける必要はありません。たとえば、クライアントが maximum_backoff 時間を 64 秒に設定している場合、この値に達した後、クライアントは 64 秒ごとに再試行できます。無限に再試行することは、クライアントが、どこかの時点で 止める必要があります。

適切な再試行間の待ち時間と再試行回数は、ユースケース とネットワークの状態により異なります。

料金

Gmail API の標準的な使用はすべて追加料金なしでご利用いただけます。割り当て リクエストの上限を超えた場合、2026 年後半に Google Cloud 請求先アカウントに料金が発生する予定です。 詳細については、エージェント ツールと API の Google Workspace 標準化モデルをご覧ください。

割り当ての増加をリクエストする

プロジェクトのリソース使用量に応じて、割り当ての調整をリクエストできます。サービス アカウントによる API 呼び出しは、単一のアカウントを使用しているとみなされます。割り当ての調整を申請しても、必ずしも承認されるとは限りません。割り当て値を大幅に増やす割り当て調整リクエストは、承認に時間がかかることがあります。

割り当て量はすべてのプロジェクトで同じとは限りません。Google Cloud の使用量が多くなるに伴い、割り当て値を増やす必要が生じる場合があります。使用量の大幅な増加が見込まれる場合は、事前に [割り当て量の調整] を Google Cloud コンソールの [割り当てとシステムの上 3] ページからリクエストできます。

詳細については、次のリソースをご覧ください。