양식 작성자가 응답할 수 있는 사용자를 더 세부적으로 관리할 수 있도록 응답자에 대한 세부적인 관리 기능이 도입됩니다. 2026년 1월 31일 이후에 API로 만든 양식은 기본적으로 게시되지 않은 상태입니다. 자세한 내용은
Google Forms API 변경사항을 참고하세요.
사용량 한도
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Google Forms API는 공유 서비스이므로 모든 사용자가 공정하게 사용하고 Google Workspace 시스템의 전반적인 상태를 보호할 수 있도록 할당량과 제한사항이 적용됩니다.
할당량을 초과하면 일반적으로 429: Too many requests
HTTP 상태 코드 응답이 표시됩니다. 이 경우 지수 백오프 알고리즘을 사용하고 나중에 다시 시도해야 합니다. 아래의 분당 할당량을 준수하는 한 하루에 요청할 수 있는 수에는 제한이 없습니다.
참고: 양식 시계에는 추가 제한사항이 있습니다. 자세한 내용은 푸시 알림 설정 및 수신하기를 참고하세요.
다음 표에는 요청 한도가 자세히 나와 있습니다.
할당량 |
읽기 요청 |
프로젝트별 일일 요금 |
무제한 |
프로젝트별 분당 |
975 |
프로젝트별 사용자별 분당 |
390 |
|
비용이 많이 드는 읽기 요청
(forms.responses.list 요청에 사용됨)
|
프로젝트별 일일 요금 |
무제한 |
프로젝트별 분당 |
450 |
프로젝트별 사용자별 분당 |
180 |
|
쓰기 요청 |
프로젝트별 일일 요금 |
무제한 |
프로젝트별 분당 |
375 |
프로젝트별 사용자별 분당 |
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
시간에 도달한 후 재시도를 계속할 수 있습니다.
이후 재시도는 백오프 시간을 계속 늘릴 필요가 없습니다. 예를 들어 클라이언트가 maximum_backoff
시간으로 64초를 사용하는 경우 이 값에 도달한 후 클라이언트는 64초마다 재시도할 수 있습니다. 특정 시점에서 클라이언트가 무한정 재시도하지 못하게 해야 합니다.
재시도 간 대기 시간과 재시도 횟수는 사용 사례 및 네트워크 조건에 따라 달라집니다.
가격 책정
Google Forms API는 모두 추가 비용 없이 사용할 수 있습니다. 할당량 요청 한도를 초과해도 추가 비용이 청구되지 않으며 계정에 비용이 청구되지 않습니다.
할당량 상향 조정 요청
프로젝트의 리소스 사용량에 따라 할당량 증가를 요청할 수 있습니다. 서비스 계정의 API 호출은 단일 계정을 사용하는 것으로 간주됩니다. 할당량 증가를 신청해도 승인된다고 보장할 수 없습니다. 할당량을 크게 늘리려는 경우에는 승인을 받는 데 시간이 더 소요될 수 있습니다.
모든 프로젝트의 할당량이 동일하지는 않습니다. Google Cloud 사용량이 점차 늘어나면 할당량도 늘려야 할 수 있습니다. 앞으로 사용량이 현저하게 늘어날 것으로 예상되는 경우 Google Cloud 콘솔의 할당량 페이지에서 사전에 할당량 조정을 요청할 수 있습니다.
자세한 내용은 다음 리소스를 참고하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 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)"]]