Zum Hauptinhalt springenZenit-Hosting Logo

Rate-Limits

Die Developer-API begrenzt, wie viele Aufrufe ein Token pro Minute senden darf. Das schützt die Plattform vor Schleifen, die außer Kontrolle geraten.

Limits

Ein Zugriffstoken darf 60 Aufrufe pro Minute senden, ein Bot 150. Dazu kommen höchstens 10 schreibende Aufrufe pro Minute je Token und Server. Maßgeblich ist Retry-After.

LimitGezählt jeZugriffstokenBot-Token
Alle AufrufeToken60 pro Minute150 pro Minute
Schreibende AufrufeToken und Server10 pro Minute10 pro Minute

Antwort 429 RATE_LIMITED

Wer ein Limit überschreitet, bekommt 429 mit dem Code RATE_LIMITED und dem Header Retry-After. Der Header nennt in ganzen Sekunden, wie lange du warten sollst. Maßgeblich ist Retry-After, nicht eine feste Zahl.

Beispielantwort 429 RATE_LIMITED
HTTP/1.1 429 Too Many Requests
Retry-After: 30

{
  "code": "RATE_LIMITED",
  "message": "Zu viele Anfragen. Warte kurz und versuche es erneut.",
  "requestId": "e4a8d3b61c0f4d79a2b5c8e1f3d60a97"
}

Aufrufe wiederholen

Warte bei 429 die Zeit aus Retry-After ab und sende den Aufruf dann erneut. Bei POST nimmst du denselben Idempotency-Key: Die API speichert 429-Antworten nicht, der Aufruf läuft also beim nächsten Versuch normal.

Python: bei 429 warten und wiederholen
import os
import time
import requests


def get_with_retry(url, attempts=3):
    for _ in range(attempts):
        response = requests.get(
            url,
            headers={"Authorization": "Bearer " + os.environ["ZENIT_TOKEN"]},
            timeout=10,
        )
        if response.status_code != 429:
            return response
        # Retry-After nennt die Wartezeit in Sekunden.
        time.sleep(int(response.headers.get("Retry-After", "1")))
    return response