fepli
EntwicklerREST API

Rate-Limits

Die fepli API begrenzt, wie viele Anfragen sie in einer bestimmten Zeit annimmt. So kann ein einzelnes außer Kontrolle geratenes Skript das Programm einer Organisation nicht für alle anderen ausbremsen.

Die Limits

AufruferGezählt jeBurstAuffüllung
Mit TokenPerson oder Service-Account300 Anfragen100 Anfragen pro Minute
Ohne TokenIP-Adresse5 Anfragen5 Anfragen pro Stunde
Mit öffentlichem SchlüsselSchlüssel600 Anfragen300 Anfragen pro Minute

Alle Limits funktionieren wie ein Eimer voller Tokens. Jede Anfrage nimmt eines heraus. Der Eimer füllt sich mit der angegebenen Rate wieder auf, höchstens bis zur Burst-Größe. Mit einem Token senden Sie 300 Anfragen unmittelbar nacheinander und danach weiter 100 pro Minute. Das reicht für eine Integration, die eine Saison synchronisiert, oder für eine Auswertung, die alle Anmeldungen einer Saison durchgeht.

Das Limit mit Token gilt je Person oder Service-Account, nicht je Token: Alle Tokens desselben Service-Accounts teilen sich einen Eimer.

Das Limit für anonyme Anfragen ist bewusst knapp. Wenn Sie Angebote auf einer öffentlichen Website zeigen, rufen Sie die API nicht ohne Schlüssel aus den Browsern Ihrer Besucher:innen auf. Laden Sie die Angebote auf Ihrem Server, legen Sie sie im Cache ab und aktualisieren Sie den Cache alle paar Stunden; siehe Angebote auf Ihrer Website. Oder rufen Sie die API mit einem öffentlichen Schlüssel aus dem Browser auf. So machen es die Bausteine: Alle Besucher:innen Ihrer Website teilen sich dann das Kontingent des Schlüssels.

Wenn Sie das Limit erreichen

Eine Anfrage über dem Limit weist die API mit dem Status 429 Too Many Requests ab. Die Antwort enthält keinen Retry-After-Header. Warten Sie deshalb und wiederholen Sie die Anfrage mit zunehmendem Abstand. Mit einem Token genügt meist eine Pause von wenigen Sekunden: Der Eimer füllt sich fortlaufend wieder auf, nicht einmal pro Minute.

Im Limit bleiben

  • Fordern Sie größere Seiten an. Mit itemsPerPage=200 brauchen Sie ein Sechstel der Anfragen, die der Standardwert 30 braucht. Siehe Paginierung.
  • Laden Sie nur, was sich geändert hat. Die meisten Listen akzeptieren modifiedSince oder createdSince.
  • Nutzen Sie Referenzen. Antworten enthalten Name und UUID verknüpfter Datensätze, oft brauchen Sie deshalb keine zweite Anfrage.
  • Nutzen Sie die Suche. Ein Aufruf von /search ersetzt die Suche in fünf Listen.
  • Legen Sie öffentliche Daten im Cache ab. Angebote ändern sich höchstens einige Male am Tag.

War diese Seite hilfreich?