Límites de uso

Dado que la API de Formularios de Google es un servicio compartido, aplicamos cuotas y limitaciones para asegurarnos de que todos los usuarios la usen de manera justa y para proteger el estado general del sistema de Google Workspace.

Si superas una cuota, por lo general, recibirás una respuesta de código de estado HTTP 429: Too many requests. Si esto sucede, debes usar un algoritmo de retirada exponencial y volver a intentarlo más tarde. Siempre y cuando te mantengas dentro de las cuotas por minuto que se indican a continuación, no hay límite para la cantidad de solicitudes que puedes realizar por día.

Nota: Los relojes con formularios tienen límites adicionales. Consulta Configura y recibe notificaciones push para obtener más información.

En la siguiente tabla, se detallan los límites de las solicitudes:

Cuotas
Leer solicitudes
Por día, por proyecto Ilimitado
Por minuto y por proyecto 975
Por minuto, por usuario y por proyecto 390
Solicitudes de lectura costosas

(Se usa para las solicitudes forms.responses.list).

Por día, por proyecto Ilimitado
Por minuto y por proyecto 450
Por minuto, por usuario y por proyecto 180
Escribir solicitudes
Por día, por proyecto Ilimitado
Por minuto y por proyecto 375
Por minuto, por usuario y por proyecto 150

Resuelve errores de cuota basados en el tiempo

Para todos los errores basados en el tiempo (máximo de N solicitudes por X minutos), te recomendamos que tu código detecte la excepción y use una retirada exponencial truncada para garantizar que tus dispositivos no generen una carga excesiva.

La retirada exponencial es una estrategia estándar de manejo de errores para aplicaciones de red. Un algoritmo de retirada exponencial vuelve a intentar las solicitudes con tiempos de espera que aumentan de forma exponencial entre solicitudes hasta un tiempo de retirada máximo. Si las solicitudes aún no se completan, es importante que las demoras entre ellas aumenten con el tiempo hasta que estas se realicen de forma correcta.

Algoritmo de ejemplo

Un algoritmo de retirada exponencial vuelve a intentar las solicitudes de forma exponencial, lo que aumenta el tiempo de espera entre los reintentos hasta un tiempo de retirada máximo. Por ejemplo:

  1. Realizar una solicitud a la API de Formularios de Google
  2. Si la solicitud falla, espera 1 + random_number_milliseconds y vuelve a intentar la solicitud.
  3. Si la solicitud falla, espera 2 + random_number_milliseconds y vuelve a intentar la solicitud.
  4. Si la solicitud falla, espera 4 + random_number_milliseconds y vuelve a intentar la solicitud.
  5. Y así sucesivamente, hasta un tiempo de maximum_backoff.
  6. Continúa con la espera y los reintentos hasta una cantidad máxima de reintentos, pero no aumentes el período de espera entre los reintentos.

Donde:

  • El tiempo de espera es de min(((2^n)+random_number_milliseconds), maximum_backoff), con n incrementado en 1 por cada iteración (solicitud).
  • random_number_milliseconds es un número aleatorio de milisegundos menor o igual que 1,000. Esto ayuda a evitar los casos en los que muchos clientes se sincronizan por alguna situación y todos realizan el reintento a la vez, lo que hace que se envíen solicitudes en conjuntos sincronizados. El valor de random_number_milliseconds se vuelve a calcular después de cada solicitud de reintento.
  • maximum_backoff suele ser de 32 o 64 segundos. El valor apropiado depende del caso práctico.

El cliente puede volver a intentarlo después de que haya transcurrido el tiempo de maximum_backoff. Después de este punto, los reintentos no necesitan seguir aumentando el tiempo de retirada. Por ejemplo, si un cliente usa un tiempo maximum_backoff de 64 segundos, después de alcanzar este valor, puede volver a intentarlo cada 64 segundos. En algún momento, se debe evitar que los clientes vuelvan a intentarlo indefinidamente.

El tiempo de espera entre los reintentos y la cantidad de reintentos dependen del caso práctico y de las condiciones de red.

Precios

Todo uso de la API de Formularios de Google está disponible sin costo adicional. Exceder los límites de solicitudes de cuota no genera cargos adicionales y no se factura tu cuenta.

Cómo solicitar un aumento de la cuota

Según el uso de recursos de tu proyecto, es posible que desees solicitar un aumento de la cuota. Se considera que las llamadas a la API realizadas por una cuenta de servicio usan una sola cuenta. Solicitar una cuota mayor no garantiza la aprobación. Los aumentos de cuota grandes pueden tardar más tiempo en aprobarse.

No todos los proyectos tienen las mismas cuotas. A medida que usas cada vez más Google Cloud con el tiempo, es posible que tus cuotas deban aumentar. Si esperas un aumento considerable en el uso, puedes solicitar ajustes de cuota de forma proactiva en la página Cuotas de la consola de Google Cloud.

Para obtener más información, consulta los siguientes recursos: