Nutzungsbeschränkungen

Die Google Sheets API ist ein gemeinsam genutzter Dienst. Wir wenden Kontingente und Einschränkungen an, um die Gesamtleistung des Google Workspace-Systems für alle Nutzer zu schützen.

Kontingentlimits

Für eine API-Anfrage in der Sheets API gibt es keine festen Größenlimits. Nutzer können jedoch auf Limits verschiedener Verarbeitungskomponenten stoßen, die nicht von Google Sheets gesteuert werden. Um Anfragen zu beschleunigen, empfehlen wir eine maximale Nutzlast von 2 MB.

Die Sheets API hat Minutenkontingente, die jede Minute wieder aufgefüllt werden. Es gibt beispielsweise ein Limit von 300 Leseanfragen pro Minute und Projekt. Wenn Ihre App innerhalb einer Minute 350 Anfragen sendet, überschreiten die zusätzlichen 50 Anfragen das Kontingent und es wird ein HTTP-Statuscode 429: Too many requests zurückgegeben. In diesem Fall sollten Sie einen exponentiellen Backoff-Algorithmus verwenden. Nach einer Minute können Sie wieder Anfragen ausführen.

In der folgenden Tabelle sind die Anfragelimits aufgeführt:

Kontingente
Leseanfragen
Pro Minute und Projekt 300
Pro Minute, Nutzer und Projekt 60
Schreibanfragen
Pro Minute und Projekt 300
Pro Minute, Nutzer und Projekt 60

Weitere Informationen zu Dateilimits finden Sie im Hilfeartikel In Google Drive speicherbare Dateien.

Verhalten und Einschränkungen

Beachten Sie bei der Arbeit mit der ((sheets_api_short)) die folgenden Verhaltensweisen und Einschränkungen, die sich auf Ihre Kontingente auswirken:

  • Leseanfragen sind Aufrufe einer Methode, mit der Daten aus einer Tabelle abgerufen werden, z. B. get oder search. Schreibanfragen sind Aufrufe einer Methode, mit der eine Tabelle geändert wird, z. B. update, clear oder copyTo.

  • Nutzer können mehrere Anfragen gleichzeitig senden, solange sie das Kontingentlimit nicht überschreiten. Jede Batchanfrage, einschließlich aller Unteranfragen, wird als eine API-Anfrage auf Ihr Nutzungslimit angerechnet.

  • Alle Sheets-Anfragen werden in kleinstmöglichen Schritten angewendet. Wenn eine Anfrage ungültig ist, schlägt die gesamte Aktualisierung fehl und keine der (möglicherweise abhängigen) Änderungen wird angewendet.

  • Für die Verarbeitung einer API-Anfrage gilt ein maximales Zeitlimit. Wenn Sheets eine Anfrage länger als 180 Sekunden verarbeitet, wird ein Zeitlimitfehler zurückgegeben.

  • Solange Sie die Minutenkontingente nicht überschreiten, gibt es keine Begrenzung für die Anzahl der Anfragen, die Sie pro Tag stellen können.

Zeitbasierte Kontingentfehler beheben

Bei allen zeitbasierten Fehlern (maximal N Anfragen pro X Minuten) empfehlen wir Ihnen, dass Ihr Code die Ausnahme abfängt und einen abgeschnittenen exponentiellen Backoff verwendet, um zu verhindern, dass Ihre Geräte eine übermäßige Last erzeugen.

Ein exponentieller Backoff ist eine Standardstrategie zur Fehlerbehebung für Netzwerkanwendungen. Ein exponentieller Backoff-Algorithmus wiederholt Anfragen mit exponentiell zunehmenden Wartezeiten zwischen den Anfragen bis zur maximalen Backoff-Zeit. Wenn Anfragen weiterhin fehlschlagen, müssen die Verzögerungen zwischen den Anfragen mit der Zeit zunehmen, bis die Anfrage erfolgreich ist.

Beispielalgorithmus

Ein exponentieller Backoff-Algorithmus wiederholt Anfragen exponentiell und verlängert dabei die Wartezeit zwischen zwei Wiederholungen bis zur maximalen Backoff-Zeit. Beispiel:

  1. Stellen Sie eine Anfrage an die Google Sheets API.
  2. Wenn die Anfrage fehlschlägt, warten Sie 1 + random_number_milliseconds und wiederholen Sie die Anfrage.
  3. Wenn die Anfrage fehlschlägt, warten Sie 2 + random_number_milliseconds und wiederholen Sie die Anfrage.
  4. Wenn die Anfrage fehlschlägt, warten Sie 4 + random_number_milliseconds und wiederholen Sie die Anfrage.
  5. Und so weiter bis zur maximum_backoff-Zeit.
  6. Warten Sie weiter und wiederholen Sie den Vorgang bis zu einer maximalen Anzahl an Wiederholungsversuchen. Erhöhen Sie jedoch nicht die Warte zeit zwischen den Wiederholungsversuchen.

Dabei gilt:

  • Die Wartezeit beträgt min(((2^n)+random_number_milliseconds), maximum_backoff), wobei n bei jeder Ausführung (Anfrage) um 1 erhöht wird.
  • random_number_milliseconds steht für eine zufällige Anzahl von Millisekunden,deren Wert größer oder gleich 1.000 ist. So lassen sich Situationen vermeiden, in denen viele Clients synchronisiert werden durch eine Situation und alle gleichzeitig Anfragen wiederholen und diese in synchronisierten Wellen senden. Der Wert von random_number_milliseconds wird nach jeder Anfragewiederholung neu berechnet.
  • maximum_backoff ist normalerweise 32 oder 64 Sekunden lang. Der geeignete Wert hängt vom jeweiligen Anwendungsfall ab.

Der Client kann den Vorgang wiederholen, nachdem er die maximum_backoff-Zeit erreicht hat. Die Backoff-Zeit muss dabei nicht mehr verlängert werden. Wenn ein Client beispielsweise eine maximum_backoff Zeit von 64 Sekunden verwendet, kann er den Vorgang nach Erreichen dieses Werts alle 64 Sekunden noch einmal versuchen. Sie sollten jedoch dafür sorgen, dass er dies nicht unbegrenzt tut.

Die Wartezeit zwischen den Wiederholungen und der Anzahl der Wiederholungen hängt von Ihrem Anwendungsfall und den Netzwerkbedingungen ab.

Preise

Die Nutzung der Google Sheets API ist kostenlos. Wenn Sie die Kontingent limits für Anfragen überschreiten, fallen keine zusätzlichen Kosten an und Ihr Konto wird nicht belastet.

Kontingenterhöhung anfordern

Abhängig von der Ressourcennutzung Ihres Projekts können Sie eine Kontingent anpassung anfordern. API-Aufrufe durch ein Dienstkonto werden als Nutzung eines einzelnen Kontos betrachtet. Wenn Sie ein angepasstes Kontingent beantragen, bedeutet dies nicht, dass Ihr Antrag auch genehmigt wird. Anfragen zur Kontingentanpassung , die den Kontingentwert erheblich erhöhen würden, können länger dauern, bis sie genehmigt werden.

Es gelten nicht für alle Projekte dieselben Kontingente. Wenn Sie Google Cloud im Laufe der Zeit häufiger nutzen, müssen Ihre Kontingentwerte möglicherweise erhöht werden. Falls Sie eine deutlich stärkere Auslastung erwarten, können Sie proaktiv eine Anpassung Ihres Kontingents anfordern auf der Seite Kontingente der Google Cloud Console.

Weitere Informationen finden Sie in folgenden Dokumenten: