フォーム作成者が回答できるユーザーをより細かく制御できるように、回答者に対するきめ細かい制御機能が導入されます。2026 年 1 月 31 日以降に API を使用して作成されたフォームは、デフォルトで公開状態になります。詳細については、
Google フォームの API の変更をご覧ください。
使用制限
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Google Forms API は共有サービスであるため、すべてのユーザーが公平に使用できるようにし、Google Workspace システムの全体的な健全性を保護するために、割り当てと上限が適用されます。
割り当てを超えると、通常は 429: Too many requests
HTTP ステータス コード レスポンスが返されます。この場合は、指数バックオフ アルゴリズムを使用して、後でもう一度お試しください。以下の 1 分あたりの割り当て内であれば、1 日に実行できるリクエスト数に上限はありません。
注: フォームの監視には追加の制限があります。詳しくは、プッシュ通知を設定して受信するをご覧ください。
リクエストの上限について詳しくは、次の表をご覧ください。
割り当て |
読み取りリクエスト |
1 プロジェクト、1 日あたり |
無制限 |
プロジェクトあたり毎分 |
975 |
プロジェクトごとのユーザー 1 人あたりの 1 分あたり |
390 |
|
費用のかかる読み取りリクエスト
(forms.responses.list リクエストに使用されます)。
|
1 プロジェクト、1 日あたり |
無制限 |
プロジェクトあたり毎分 |
450 |
プロジェクトごとのユーザー 1 人あたりの 1 分あたり |
180 |
|
書き込みリクエスト |
1 プロジェクト、1 日あたり |
無制限 |
プロジェクトあたり毎分 |
375 |
プロジェクトごとのユーザー 1 人あたりの 1 分あたり |
150 |
|
時間ベースの割り当てエラーを解決する
時間ベースのエラー(X 分あたり最大 N 件のリクエスト)の場合は、コードで例外をキャッチし、切り捨て指数バックオフを使用して、デバイスで過剰な負荷が発生しないようにすることをおすすめします。
指数バックオフは、ネットワーク アプリケーションの標準的なエラー処理方法です。指数バックオフのアルゴリズムは、リクエスト間の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。リクエストがまだ成功しない場合は、リクエストが成功するまで、リクエスト間の遅延を時間の経過とともに増やすことが重要です。
アルゴリズムの例
指数バックオフのアルゴリズムは、再試行の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。次に例を示します。
- Google Forms API にリクエストを送信します。
- リクエストが失敗した場合は、1 +
random_number_milliseconds
秒待ってからリクエストを再試行します。
- リクエストが失敗した場合は、2 +
random_number_milliseconds
秒待ってからリクエストを再試行します。
- リクエストが失敗した場合は、4 +
random_number_milliseconds
秒待ってからリクエストを再試行します。
- このようにして、最大
maximum_backoff
時間まで繰り返します。
- 再試行の最大回数まで待機と再試行を続行しますが、再試行の間の待ち時間は増加させません。
ここで
- 待ち時間は
min(((2^n)+random_number_milliseconds), maximum_backoff)
で、n
は繰り返される(リクエスト)のたびに 1 増加します。
random_number_milliseconds
は、1,000 ミリ秒以下の乱数です。これにより、なんらかの状況によって多数のクライアントが同期され、再試行が一度に実行されて、リクエストが同時に次々と送信されるような状況を避けることができます。random_number_milliseconds
の値は再試行リクエストの後に毎回再計算されます。
- 通常、
maximum_backoff
は 32 秒または 64 秒です。適切な値はユースケースによって異なります。
クライアントは、maximum_backoff
時間が経過した後も再試行を続けることができます。この時点より後の再試行では、バックオフ時間を増加させ続ける必要はありません。たとえば、クライアントで 64 秒の maximum_backoff
時間が使用されている場合、この値に達した後は、クライアントは 64 秒ごとに再試行を繰り返します。無限に再試行することは、クライアントが、どこかの時点で止める必要があります。
適切な再試行間の待ち時間と再試行回数は、ユースケースとネットワークの状態により異なります。
料金
Google Forms API はすべて追加料金なしでご利用いただけます。割り当てリクエストの上限を超えても、追加料金は発生せず、アカウントに請求されることはありません。
割り当ての増加をリクエストする
プロジェクトのリソース使用状況に応じて、割り当ての増加をリクエストできます。サービス アカウントによる API 呼び出しは、単一のアカウントを使用しているものと見なされます。追加割り当て申請が必ずしも認められるわけではありません。割り当て量が大きい場合は、承認に時間がかかることがあります。
割り当て量はすべてのプロジェクトで同じとは限りません。Google Cloud の使用量が多くなるに伴い、割り当てを増やす必要がある場合があります。使用量の大幅な増加が見込まれる場合は、事前に Google Cloud コンソールの [割り当て] ページから割り当ての調整をリクエストできます。
詳細については、次のリソースをご覧ください。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-04-09 UTC。
[null,null,["最終更新日 2025-04-09 UTC。"],[],["The Google Forms API enforces quotas to ensure fair usage and system health. Exceeding quotas results in a `429` error, requiring the use of an exponential backoff algorithm for retries. There are per-day and per-minute limits for read, expensive read, and write requests, varying by project and user. Exponential backoff involves retrying failed requests with increasing wait times, capped at a maximum backoff time, then retrying at this constant wait time. Quotas can be increased via the Google Cloud console. The API is available at no additional cost.\n"],null,["# Usage limits\n\nAs the Google Forms API is a shared service, we apply quotas and limitations\nto make sure it's used fairly by all users and to protect the overall\nhealth of the Google Workspace system.\n\nIf you exceed a quota, you'll generally receive a `429: Too many requests`\nHTTP status code response. If this happens, you should use an\n[exponential backoff algorithm](#exponential) and try again\nlater. Provided you stay within the per-minute quotas below, there's no\nlimit to the number of requests you can make per day.\n\n**Note:** Form watches have additional limits. See\n[Set up and receive push notifications](/workspace/forms/api/guides/push-notifications#limits)\nfor more information.\n\nThe following table details the request limits:\n\n| Quotas ||\n|---------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Read requests | |---------------------------------|-----------| | Per day per project | Unlimited | | Per minute per project | 975 | | Per minute per user per project | 390 | |\n| Expensive read requests (Used for `forms.responses.list` requests.) | |---------------------------------|-----------| | Per day per project | Unlimited | | Per minute per project | 450 | | Per minute per user per project | 180 | |\n| Write requests | |---------------------------------|-----------| | Per day per project | Unlimited | | Per minute per project | 375 | | Per minute per user per project | 150 | |\n\nResolve time-based quota errors\n-------------------------------\n\n\nFor all time-based errors (maximum of N requests per X minutes), we recommend\nyour code catches the exception and uses a *truncated exponential backoff* to make sure your\ndevices don't generate excessive load.\n\n\nExponential backoff is a standard error handling strategy for network applications. An\nexponential backoff algorithm retries requests using exponentially increasing wait times\nbetween requests, up to a maximum backoff time. If requests are still unsuccessful, it's\nimportant that the delays between requests increase over time until the request is successful.\n\n### Example algorithm\n\n\nAn exponential backoff algorithm retries requests exponentially, increasing the wait time\nbetween retries up to a maximum backoff time. For example:\n\n1. Make a request to Google Forms API.\n2. If the request fails, wait 1 + `random_number_milliseconds` and retry the request.\n3. If the request fails, wait 2 + `random_number_milliseconds` and retry the request.\n4. If the request fails, wait 4 + `random_number_milliseconds` and retry the request.\n5. And so on, up to a `maximum_backoff` time.\n6. Continue waiting and retrying up to some maximum number of retries, but don't increase the wait period between retries.\n\n\nwhere:\n\n- The wait time is `min(((2^n)+random_number_milliseconds), maximum_backoff)`, with `n` incremented by 1 for each iteration (request).\n- `random_number_milliseconds` is a random number of milliseconds less than or equal to 1,000. This helps to avoid cases in which many clients are synchronized by some situation and all retry at once, sending requests in synchronized waves. The value of `random_number_milliseconds` is recalculated after each retry request.\n- `maximum_backoff` is typically 32 or 64 seconds. The appropriate value depends on the use case.\n\n\nThe client can continue retrying after it has reached the `maximum_backoff` time.\nRetries after this point don't need to continue increasing backoff time. For\nexample, if a client uses a `maximum_backoff` time of 64 seconds, then after reaching\nthis value, the client can retry every 64 seconds. At some point,\nclients should be prevented from retrying indefinitely.\n\n\nThe wait time between retries and the number of retries depend on your use case\nand network conditions.\n\nPricing\n-------\n\n\nAll use of the Google Forms API is available at no additional cost. Exceeding the quota\nrequest limits doesn't incur extra charges and your account is not billed.\n\nRequest a quota increase\n------------------------\n\n\nDepending on your project's resource usage, you might want to request a quota\nadjustment. API calls by a service account are considered to be using a\nsingle account. Applying for an adjusted quota doesn't guarantee approval. Quota adjustment\nrequests that would significantly increase the quota value can take longer to be approved.\n\n\nNot all projects have the same quotas. As you increasingly use Google Cloud over\ntime, your quota values might need to increase. If you expect a notable upcoming\nincrease in usage, you can proactively\n[request quota adjustments](https://cloud.google.com/docs/quota#requesting_higher_quota)\nfrom the [Quotas page](https://console.cloud.google.com/iam-admin/quotas)\nin the Google Cloud console.\n\nTo learn more, see the following resources:\n\n- [About quota adjustments](https://cloud.google.com/docs/quotas/overview#about_increase_requests)\n- [View your current quota usage and limits](https://cloud.google.com/docs/quota#viewing_your_quota_console)\n- [Request a higher quota limit](https://cloud.google.com/docs/quota#requesting_higher_quota)"]]