Limites d'utilisation

L'API Gmail est soumise à des limites d'utilisation qui restreignent la fréquence à laquelle les méthodes de l'API peuvent être appelées. Les limites sont définies en unités de quota, une unité de mesure abstraite représentant l'utilisation des ressources Gmail.

Quotas de l'API Gmail

Deux types de quotas sont appliqués :

  • Par minute et par projet : il s'agit du nombre d'unités de quota que votre projet Google Cloud peut utiliser en une minute.

  • Par minute, par utilisateur et par projet : il s'agit du nombre d'unités de quota qu'un utilisateur spécifique peut utiliser dans votre projet Cloud. Cette limite vise à vous aider à assurer une répartition équitable de l'utilisation entre vos utilisateurs.

Le tableau suivant détaille ces limites :

Type de limite d'utilisation Limite
Par minute et par projet 1 200 000 unités de quota
Par minute, par utilisateur et par projet 6 000 unités de quota

Pour savoir comment gérer les erreurs de limite, consultez Résoudre les erreurs.

Seuil de facturation quotidien

Cette limite par jour et par projet définit le nombre maximal d'unités de quota que votre projet Google Cloud peut utiliser sur une période de 24 heures avant que des frais ne s'appliquent.

L'utilisation en dessous de ce seuil n'entraîne pas de frais supplémentaires et votre compte Google Cloud n'est pas facturé. Les informations de facturation complètes seront communiquées plus tard en 2026, au moins 90 jours avant l'entrée en vigueur des modifications.

Vous ne pouvez pas demander d'augmentation de cette limite de seuil quotidien.

Le tableau suivant indique la limite :

Type de limite de seuil Limite
Par jour et par projet 80 000 000 d'unités de quota

Pour en savoir plus, consultez Modèle standardisé Google Workspace pour les outils et API d'agent.

Utilisation du quota par méthode

Le nombre d'unités de quota consommées par requête varie en fonction de la méthode appelée. Le tableau suivant indique l'utilisation des unités de quota par méthode :

Méthode Unités de quota
drafts.create 10
drafts.delete 10
drafts.get 20
drafts.list 5
drafts.send 100
drafts.update 15
getProfile 1
history.list 2
labels.create 5
labels.delete 5
labels.get 1
labels.list 1
labels.update 5
messages.attachments.get 20
messages.batchDelete 50
messages.batchModify 50
messages.delete 10
messages.get 20
messages.import 25
messages.insert 25
messages.list 5
messages.modify 5
messages.send 100
messages.trash 20
messages.untrash 5
settings.delegates.create 100
settings.delegates.delete 5
settings.delegates.get 1
settings.delegates.list 1
settings.filters.create 5
settings.filters.delete 5
settings.filters.get 1
settings.filters.list 1
settings.forwardingAddresses.create 100
settings.forwardingAddresses.delete 5
settings.forwardingAddresses.get 1
settings.forwardingAddresses.list 1
settings.getAutoForwarding 1
settings.getImap 1
settings.getPop 1
settings.getVacation 1
settings.sendAs.create 100
settings.sendAs.delete 5
settings.sendAs.get 1
settings.sendAs.list 1
settings.sendAs.update 100
settings.sendAs.verify 100
settings.updateAutoForwarding 5
settings.updateImap 5
settings.updatePop 100
settings.updateVacation 5
stop 50
threads.delete 20
threads.get 40
threads.list 10
threads.modify 10
threads.trash 20
threads.untrash 10
watch 100

Lorsque vous utilisez l'API Gmail, vous êtes également limité à 500 destinataires par e-mail.

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 tronqué pour s'assurer que vos appareils ne génèrent pas de charge excessive.

L'intervalle exponentiel entre les tentatives est une stratégie standard de gestion des exceptions pour les applications réseau. Un algorithme de temporisation de retransmission exponentielle 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 entre les tentatives 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 aboutisse.

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. Envoyez une requête à l'API Gmail.
  2. Si la requête échoue, attendez 1 + random_number_milliseconds secondes, puis effectuez une nouvelle tentative.
  3. Si la requête échoue, attendez 2 + random_number_milliseconds secondes, puis effectuez une nouvelle tentative.
  4. Si la requête échoue, attendez 4 + random_number_milliseconds secondes, puis effectuez une nouvelle tentative.
  5. Poursuivez ainsi jusqu'à atteindre la valeur maximum_backoff.
  6. Continuez d'attendre et de relancer la requête jusqu'à atteindre le nombre maximal de tentatives, mais n'augmentez pas le temps d'attente entre les tentatives.

où :

  • Le temps d'attente est défini sur min(((2^n)+random_number_milliseconds), maximum_backoff), avec n incrémenté de 1 pour chaque itération (requête).
  • random_number_milliseconds correspond à 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 à effectuer des nouvelles tentatives après avoir atteint la valeur 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 un délai maximum_backoff de 64 secondes, une fois celui-ci atteint, il peut effectuer une nouvelle tentative toutes les 64 secondes. À un certain moment, vous devez empêcher les clients d'effectuer des tentatives à l'infini.

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

Toute utilisation standard de l'API Gmail est disponible sans frais supplémentaires. Le dépassement des limites de quota de demandes entraînera des frais sur votre compte de facturation Google Cloud plus tard en 2026. Pour en savoir plus, consultez Modèle standardisé Google Workspace pour les outils et API d'agent.

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. L'approbation des demandes d'ajustement de quota qui augmenteraient considérablement la valeur du quota peut prendre plus de temps.

Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que votre utilisation de Google Cloud s'accroît, vos quotas peuvent augmenter en conséquence. Si vous prévoyez une augmentation notable de l'utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quota sur la page Quotas et limites du système de la console Google Cloud.

Pour en savoir plus, consultez les ressources suivantes :