Zum Inhalt springen

Rate Limits

Die RealityConnect API begrenzt Anfragen pro Organisation mithilfe eines Token-Buckets pro Routenfamilie. Diese Seite behandelt die Buckets, die Header, die jede ratenbegrenzte Antwort trägt, und was bei 429 Too Many Requests zu tun ist.


Jeder Bucket hat eine Kapazität (maximale Anzahl an Tokens, d. h. die Burst-Größe) und eine Auffüllrate (Tokens pro Sekunde, d. h. der nachhaltige Durchsatz). Eine Anfrage verbraucht ein Token; ist der Bucket leer, wird die Anfrage mit 429 abgelehnt.

BucketKapazitätAuffüllrateUmfasst
assets100010/sRealityAssets, Asset-Typen, Asset-Kategorien, Erstellen/Lesen/Auflisten/Löschen von Geschäftsobjekten
twin100010/sTwin-Space, POIs, Zonen, Entwürfe
platform100010/sSite, Datenknoten, Data Bundle, Plugins
plan100010/sRealityPlan-Space, Modell-Assets
library100010/sAsset-Library-Modelle und -Tags
embed1002/sAusstellen von Embed-Sitzungen
users100010/sBenutzer, Gruppen, Rollen, Einladungen
sitefiles100010/sSite-Dateien

Die Ratenbegrenzung erfolgt pro Organisation: Alle OAuth-Anwendungen und Benutzer, die im Namen derselben Organisation handeln, teilen sich einen Bucket pro Familie.

Jede ratenbegrenzte Antwort, erfolgreich oder nicht, trägt diese Header:

HeaderBedeutung
X-RateLimit-LimitDie Kapazität des Buckets
X-RateLimit-RemainingVerbleibende Tokens im Bucket
X-RateLimit-ResetSekunden, bis der Bucket wieder voll ist
X-RateLimit-Policy{capacity};w={window}, wobei window (in Sekunden) capacity / refillRate entspricht

Nur bei 429 Too Many Requests trägt die Antwort zusätzlich Retry-After (Sekunden, bis mindestens ein Token verfügbar ist) sowie diesen Body:

{
"statusCode": 429,
"message": "Too Many Requests",
"error": "rate_limited"
}

Verzögern Sie erneute Versuche anhand von Retry-After statt mit einer festen Wartezeit oder einem sofortigen erneuten Versuch: Ein sofortiger erneuter Versuch gegen einen leeren Bucket erzeugt lediglich ein weiteres 429. Takten Sie bei anhaltend hohem Anfragevolumen Ihre Anfragen so, dass Sie unter der Auffüllrate des Buckets bleiben, statt die Kapazität auszuschöpfen und auf das Zurücksetzen zu warten.

  • Siehe die API-Referenz für die genauen Operationen unter jedem Bucket.