Rate Limits
Rate Limiting pro Wallet für Order-Operationen und API-Anfragen.
Überblick
Rate Limiting wird pro Wallet mit einem Fixed-Window-Algorithmus durchgesetzt. Limits gelten für:
- Orderplatzierungen (
POST /order) - Orderstornierungen (
DELETE /order) - API-Anfragen (allgemeine Endpunkt-Nutzung)
Die Limits werden alle 60 Sekunden zurückgesetzt.
Standard-Limits
| Stufe | Orders/Min | Stornierungen/Min | API-Anfragen/Min | Max. offene Orders | Max. Positionen |
|---|---|---|---|---|---|
| Standard | 60 | 120 | 600 | 100 | 50 |
| Stufe 1 | 30 | 60 | 300 | 50 | 20 |
| Stufe 2 | 120 | 300 | 1.200 | 500 | 200 |
| Market Maker | 600 | 1.200 | 6.000 | 2.000 | Unbegrenzt |
Neue Wallets erhalten Standard-Limits. Kontaktieren Sie den Support für Stufen-Upgrades.
Rate-Limit-Antwort
Wenn ein Rate Limit überschritten wird, gibt die API 429 Too Many Requests zurück:
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded for OrderPlacement: 60 per minute, retry after 45 seconds",
"retry_after_secs": 45,
"limit": 60
}
Antwort-Header
Alle Endpunkte mit Rate Limiting enthalten diese Header sowohl bei Erfolgs- als auch bei Fehlerantworten:
| Header | Beschreibung | Beispiel |
|---|---|---|
X-RateLimit-Limit | Maximal erlaubte Anfragen pro Fenster | 60 |
X-RateLimit-Remaining | Verbleibende Anfragen im aktuellen Fenster | 42 |
X-RateLimit-Reset | Unix-Zeitstempel, wann das Fenster zurückgesetzt wird | 1737312060 |
Retry-After | Sekunden bis zum erneuten Versuch (nur bei 429) | 45 |
Beispiel für Antwort-Header
Erfolgreiche Anfrage:
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1737312060
Anfrage mit überschrittenem Rate Limit:
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1737312060
Rate-Limit-Kategorien
Rate Limits werden für jeden Aktionstyp separat erfasst:
Orderplatzierung
Gilt für:
POST /order(Optionsorders)POST /bulk_order(Bulk-Orders, jede Order im Batch zählt)PUT /bulk_order(Bulk-Ersetzungen, jede Ersetzung zählt)
Orderstornierung
Gilt für:
DELETE /orderDELETE /bulk_order(Bulk-Stornierungen, jede Stornierung zählt)DELETE /bulk_order_cloid(Bulk-Stornierungen per Client-Order-ID, jede Stornierung zählt)
API-Anfragen
Gilt für die allgemeine API-Nutzung über alle authentifizierten Endpunkte hinweg.
Positions- und Order-Limits
Zusätzlich zu Rate Limits haben Wallets Limits für maximale offene Orders und Positionen:
| Limit-Typ | Beschreibung | Ablehnung |
|---|---|---|
| Max. offene Orders | Maximale Anzahl gleichzeitig offener Orders | Order wird abgelehnt, bevor sie die Engine erreicht |
| Max. Positionen | Maximale Anzahl eindeutiger Positionen (-1 = unbegrenzt) | Order wird abgelehnt, wenn sie eine neue Position erzeugen würde |
Wenn Limits überschritten werden:
{
"error": "limit_exceeded",
"message": "Maximum open orders limit exceeded (100)"
}
Best Practices
Umgang mit Rate Limits
- Header überwachen: Verfolgen Sie
X-RateLimit-Remainingproaktiv - Retry-After beachten: Warten Sie die angegebene Dauer, bevor Sie es erneut versuchen
- Backoff implementieren: Verwenden Sie exponentielles Backoff bei wiederholten 429-Antworten
import time
def place_order_with_retry(order, max_retries=3):
for attempt in range(max_retries):
response = api.place_order(order)
if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
return response
raise RateLimitError("Max retries exceeded")
Optimierung der Anfrage-Nutzung
- Bulk-Endpunkte verwenden:
POST /bulk_orderfür mehrere Orders in einer Anfrage - Stornierungen bündeln:
DELETE /bulk_orderoderDELETE /bulk_order_cloidanstelle mehrererDELETE /order-Anfragen - WebSocket für Updates: Abonnieren Sie Order-Updates, anstatt
GET /ordersper Polling abzufragen
Monitoring
Verfolgen Sie diese clientseitigen Metriken:
- Anfragerate pro Aktionstyp
- Trends bei
X-RateLimit-Remaining - Häufigkeit von 429-Antworten
- Durchschnittliche
Retry-After-Dauern
Fehlerreferenz
| HTTP-Status | Fehlercode | Beschreibung |
|---|---|---|
| 429 | rate_limit_exceeded | Rate Limit überschritten, erneuter Versuch nach der angegebenen Zeit |
Siehe Fehler für die vollständige Fehlerreferenz.