制限と割り当てにより、Data Transfer API を不適切な方法で使用する自動プロセスから Google インフラストラクチャが保護されます。API からの過剰なリクエストは、無害な入力ミスや、システムの設計が不適切で不要な API 呼び出しが原因となっている可能性があります。原因にかかわらず、Google Workspace システム全体の健全性のために、特定のレベルに達した特定のソースからのトラフィックをブロックする必要があります。あるデベロッパーの行動が大きなコミュニティに悪影響を与えることを阻止します。
API リクエストの失敗
万が一 API リクエストが失敗すると、アプリケーションは HTTP ステータス コード レスポンスを受け取ります。ステータス コード 403
には入力の誤りに関するエラー情報が含まれ、HTTP ステータス コード 503
には API 割り当てを超過したことを示すエラー情報が含まれます。これらのレスポンスにより、カスタム アプリケーションでこれらのエラーを検出して適切な措置を講じることができます。
一定の時間内にリクエストを完了する
リクエストを一定の時間内に完了する必要がある場合は、リクエストを並行して送信するか、Java または C# アプリケーションで複数のスレッドを使用します。たとえば、月やその他の期間でリクエストを分割します。スレッドの場合は、10 スレッド(リクエストごとに 1 スレッド)から始めてください。スレッドの推奨事項にはトレードオフがあり、API のすべての状況に役立つわけではありません。リクエスト数が多すぎると、割り当てエラーが発生します。
時間ベースのエラー
時間ベースのすべてのエラー(スレッドあたり最大 N 個のエラー、特に 503
ステータス コード エラー)については、コードで例外をキャッチし、指数バックオフ アルゴリズムを使用して、少し遅延してから失敗した呼び出しを再試行することをおすすめします。あるスレッドでの Data Transfer API の例としては、5 秒待ってから、失敗した呼び出しを再試行します。リクエストが成功した場合は、他のスレッドに対してこのパターンを繰り返します。2 番目のリクエストが成功しなかった場合、呼び出しが成功するまでアプリはリクエストの頻度でスケールダウンする必要があります。たとえば、最初の 5 秒の遅延を 10 秒に増やしてから、失敗した呼び出しを再試行します。また、再試行の上限も決定します。たとえば、遅延時間を変えてリクエストを 5 ~ 7 回再試行すると、アプリケーションがユーザーにエラーを返します。
上限
API 上限のカテゴリ | 上限 |
---|---|
秒間クエリ数(QPS) | デベロッパー プロジェクトでは、アカウントごとの秒間クエリ数(QPS)の上限は 10 件です。 |
割り当て
API 割り当てカテゴリ | 割り当て |
---|---|
1 日あたりの最大 API リクエスト数 | 1 日あたりの最大 API リクエスト数は 500,000 件です。 |
メールのアーカイブ、有効期限 | グループのアーカイブに有効期限はありません。メッセージはグループが削除されるまでアーカイブに残ります。メール保持ポリシーは、グループのアーカイブ内のメッセージには影響しません。 |
メール メッセージのサイズ | メール メッセージの最大サイズは 25 MB です。この上限には、メッセージのメタデータ ヘッダー、本文、添付ファイルが含まれます。 |
その他の種類の制限
その他の種類の制限 | 制限事項とガイドライン |
---|---|
コンテンツ タイプの形式 | メール メッセージは、標準の RFC 822 テキスト形式である必要があります。移行されたメールをアップロードするためのリクエストのコンテンツ タイプの形式には、Content-type: message/rfc822 ヘッダーを使用します。 |
API レスポンスのデータ形式 | レスポンスのデータ形式は JavaScript Object Notation(JSON)です。 |
データのロケーションに関するポリシー | Data Transfer API は、契約上の理由により、データを特定の地理的境界または行政境界に保存することを求めるデータのロケーション ポリシーをサポートしていません。アカウントでデータのロケーションが必要な場合は、Data Transfer API を使用しないでください。 |
並列メッセージ挿入 | Data Transfer API では、複数のグループ アーカイブにメールを挿入するリクエストを並行して挿入できます。ただし、Data Transfer API は、同じグループ アーカイブへの並列メッセージ挿入をサポートしていません。また、このバージョンの API ではバッチ リクエストもサポートされていません。 |
未承認のリクエスト | Data Transfer API は未承認のリクエストを受け付けません。認証トークンが指定されていない場合、リクエストは未承認とみなされます。 |