Limites d'utilisation

L'API Google Sheets est un service partagé. Nous appliquons des quotas et des limites pour protéger les performances globales du système Google Workspace pour tous les utilisateurs.

Limites de quota

Bien que l'API Sheets ne comporte pas de limites de taille strictes pour une requête API, les utilisateurs peuvent être confrontés à des limites provenant de différents composants de traitement qui ne sont pas contrôlés par Google Sheets. Pour accélérer les requêtes, nous vous recommandons une charge utile maximale de 2 Mo.

L'API Sheets comporte des quotas par minute, qui sont réinitialisés chaque minute. Par exemple, la limite de requêtes de lecture est de 300 par minute et par projet. Si votre application envoie 350 requêtes en une minute, les 50 requêtes supplémentaires dépassent le quota et génèrent un code d'état HTTP 429: Too many requests. Dans ce cas, vous devez utiliser un algorithme d'intervalle exponentiel entre les tentatives. Au bout d'une minute, vous pouvez exécuter à nouveau des requêtes.

Le tableau suivant détaille les limites de requêtes :

Quotas
Requêtes de lecture
Par minute et par projet 300
Par minute, par utilisateur et par projet 60
Requêtes d'écriture
Par minute et par projet 300
Par minute, par utilisateur et par projet 60

Pour en savoir plus sur les limites de fichiers, consultez Fichiers pouvant être stockés dans Google Drive.

Comportement et limites

Lorsque vous utilisez ((sheets_api_short)), tenez compte des comportements et des limites suivants qui affectent vos quotas :

  • Les requêtes de lecture sont des appels à n'importe quelle méthode qui récupère des données à partir d'une feuille de calcul, comme get ou search. Les requêtes d'écriture sont des appels à n'importe quelle méthode qui modifie une feuille de calcul, comme update, clear ou copyTo.

  • Les utilisateurs peuvent envoyer plusieurs requêtes en même temps, à condition qu'elles respectent la limite de quota. Chaque requête par lot, y compris toute sous-requête, est comptabilisée comme une requête API dans votre limite d'utilisation.

  • Toutes les requêtes Sheets sont appliquées de manière atomique. Autrement dit, si une requête n'est pas valide, la mise à jour entière échoue et aucune des modifications (potentiellement dépendantes) n'est appliquée.

  • Le délai maximal de traitement d'une requête API est limité. Lorsque Sheets traite une requête pendant plus de 180 secondes, elle renvoie une erreur de délai avant expiration.

  • À condition de respecter les quotas par minute, le nombre de requêtes que vous pouvez effectuer par jour n'est pas limité.

Résoudre les erreurs de quota basées sur le temps

Pour toutes les erreurs basées sur le temps (maximum de N requêtes par X minutes), nous vous recommandons que votre code intercepte l'exception et utilise un intervalle exponentiel entre les tentatives tronqué pour vous assurer que vos appareils ne génèrent pas de charge excessive.

L'intervalle exponentiel entre les tentatives est une stratégie standard de traitement d'erreurs pour les applications réseau. Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes en augmentant de manière exponentielle le temps d'attente entre les requêtes jusqu'à ce que la durée maximale de l'intervalle soit atteinte. Si les requêtes échouent toujours, il est important que les délais entre les requêtes augmentent au fil du temps jusqu'à ce que la requête réussisse.

Exemple d'algorithme

Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes de manière exponentielle, en augmentant le temps d'attente entre les tentatives jusqu'à ce que la durée maximale de l'intervalle exponentiel soit atteinte. Exemple :

  1. Effectuez une requête auprès de l'API Google Sheets.
  2. Si la requête échoue, attendez 1 + random_number_milliseconds, puis relancez la requête.
  3. Si la requête échoue, attendez 2 + random_number_milliseconds, puis relancez la requête.
  4. Si la requête échoue, attendez 4 + random_number_milliseconds, puis relancez la requête.
  5. Poursuivez ainsi jusqu'à atteindre la valeur maximum_backoff.
  6. Continuez à attendre et à réessayer jusqu'à un nombre maximal de tentatives, mais n'augmentez pas la période d'attente entre les tentatives.

où :

  • Le temps d'attente est min(((2^n)+random_number_milliseconds), maximum_backoff), avec n incrémenté de 1 pour chaque itération (requête).
  • random_number_milliseconds est un nombre aléatoire de millisecondes inférieur ou égal à 1 000. Cela permet d'éviter les cas où de nombreux clients se retrouvent synchronisés pour une raison quelconque et effectuent tous une nouvelle tentative en même temps, en envoyant des requêtes par vagues synchronisées. La valeur de random_number_milliseconds est recalculée après chaque nouvelle tentative de la requête.
  • La valeur maximum_backoff est généralement définie sur 32 ou 64 secondes. La valeur appropriée dépend du cas d'utilisation.

Le client peut continuer à réessayer une fois qu'il a atteint la durée maximum_backoff. Au-delà de ce point, il n'est pas nécessaire de continuer à augmenter la durée de l'intervalle exponentiel entre les tentatives. Par exemple, si un client utilise une durée maximum_backoff de 64 secondes, il peut réessayer toutes les 64 secondes une fois cette valeur atteinte. À un moment donné, les clients doivent être empêchés de réessayer indéfiniment.

Le temps d'attente entre les nouvelles tentatives et le nombre de tentatives dépendent de votre cas d'utilisation et des conditions du réseau.

Tarifs

L'utilisation de l'API Google Sheets est disponible sans frais supplémentaires. Le dépassement des limites de requêtes de quota n'entraîne pas de frais supplémentaires et votre compte n'est pas facturé.

Demander une augmentation du quota

Selon l'utilisation des ressources de votre projet, vous pouvez demander un ajustement de quota. Les appels d'API effectués par un compte de service sont considérés comme utilisant un seul compte. La demande d'ajustement de quota ne garantit pas l'approbation. Les demandes d'ajustement de quota qui augmenteraient considérablement la valeur du quota peuvent nécessiter plus de temps pour être approuvées.

Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que votre utilisation de Google Cloud s'accroît, les valeurs de vos quotas peuvent devoir augmenter. Si vous prévoyez une augmentation significative de votre utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quotas sur la page Quotas de la console Google Cloud.

Pour en savoir plus, consultez les ressources suivantes :