Límites de uso

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

Límites de cuota

Si bien la API de Hojas de cálculo no tiene límites de tamaño estrictos para una solicitud a la API, los usuarios pueden experimentar límites de diferentes componentes de procesamiento que no se controlan en Hojas de cálculo. Para acelerar las solicitudes, Google recomienda una carga útil máxima de 2 MB.

La API de Hojas de cálculo tiene cuotas por minuto y se vuelven a cargar cada minuto. Por ejemplo, hay un límite de solicitudes de lectura de 300 por minuto, por proyecto. Si tu app envía 350 solicitudes en un minuto, las 50 solicitudes adicionales superan la cuota y generan una respuesta de código de estado HTTP 429: Too many requests. Si esto sucede, debes usar un algoritmo de retirada exponencial. Después de 1 minuto, puedes volver a ejecutar solicitudes. Los usuarios pueden enviar varias solicitudes al mismo tiempo, siempre que no superen el límite de la cuota.

Todas las solicitudes de Hojas de cálculo se aplican de forma atómica. Es decir, si alguna solicitud no es válida, toda la actualización no se realizará correctamente y no se aplicará ninguno de los cambios (potencialmente dependientes).

En la siguiente tabla, se detallan los límites de solicitudes. Siempre que te mantengas dentro de las cuotas por minuto, no hay límite para la cantidad de solicitudes que puedes realizar por día.

Cuotas
Leer solicitudes
Por minuto y por proyecto 300
Por minuto, por usuario y por proyecto 60
Escribir solicitudes
Por minuto y por proyecto 300
Por minuto, por usuario y por proyecto 60

Para obtener más información sobre los límites de archivos, ve a Archivos que puedes almacenar en Google Drive.

Resuelve errores de cuota basados en el tiempo

En el caso de los errores basados en el tiempo (máximo de N solicitudes por X minutos), recomendamos que el código detecte la excepción y use una retirada exponencial truncada para asegurarse de que los 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 mediante tiempos de espera cada vez mayores entre solicitudes, hasta un tiempo de retirada máximo. Si las solicitudes aún no tienen éxito, es importante que las demoras entre solicitudes aumenten con el tiempo hasta que se complete correctamente.

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. Realice una solicitud a la API de Hojas de cálculo 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 intentarlo.
  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), y n se incrementa en 1 para cada iteración (solicitud).
  • random_number_milliseconds es una cantidad aleatoria 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 sincronizadas en etapas. 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 de uso.

El cliente puede volver a intentarlo una vez que alcanzó el tiempo maximum_backoff. Los reintentos posteriores a este punto no necesitan seguir aumentando el tiempo de retirada. Por ejemplo, si un cliente usa un tiempo maximum_backoff de 64 segundos, luego de alcanzar este valor, puede volver a intentarlo cada 64 segundos. En algún momento, se debe evitar que los clientes vuelvan a intentarlo de forma indefinida.

El tiempo de espera entre los reintentos y la cantidad de reintentos depende de tu caso de uso y las condiciones de la red.

Precios

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

Cómo solicitar un aumento de la cuota

Según el uso de los recursos del proyecto, es posible que desees solicitar un aumento de 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 grandes aumentos de cuota pueden tardar más en aprobarse.

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

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