Rate Limits
Die Optimaite API setzt Rate Limits durch, um faire Nutzung und Plattformstabilität zu gewährleisten. Alle API-Schlüssel unterliegen denselben Limits.
Aktuelle Limits
| Plan | Anfragen pro Minute | Anfragen pro Tag | Burst-Limit |
|---|---|---|---|
| Standard | 60 | 10.000 | 10 Anfragen/Sekunde |
| Professional | 200 | 50.000 | 30 Anfragen/Sekunde |
| Enterprise | Individuell | Individuell | Individuell |
Rate-Limit-Header
Jede API-Antwort enthält Header mit Ihrem aktuellen Rate-Limit-Status:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1719360000
| Header | Beschreibung |
|---|---|
X-RateLimit-Limit | Maximale Anfragen pro Minute |
X-RateLimit-Remaining | Verbleibende Anfragen im aktuellen Fenster |
X-RateLimit-Reset | Unix-Zeitstempel, wann das Rate-Limit-Fenster zurückgesetzt wird |
Umgang mit Rate Limits
Wenn Sie das Rate Limit überschreiten, liefert die API eine 429 Too Many Requests-Antwort:
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Retry after 30 seconds.",
"retry_after": 30
}
}
Best Practices
- Header überwachen: Prüfen Sie
X-RateLimit-Remainingvor Batch-Anfragen - Exponentielles Backoff: Bei 429 warten und mit steigenden Verzögerungen erneut versuchen
- Batch-Operationen: Nutzen Sie Bulk-Endpunkte, wo verfügbar, statt einzelner Anfragen
- Antworten cachen: Häufig abgerufene Daten cachen, um API-Aufrufe zu reduzieren
- Webhooks: Nutzen Sie Webhooks für ereignisgesteuerte Updates statt Polling
Beispiel: Exponentielles Backoff
import time
import requests
def api_request(url, max_retries=5):
for attempt in range(max_retries):
response = requests.get(url, headers={"Authorization": f"Bearer {API_KEY}"})
if response.status_code == 429:
retry_after = response.json()["error"]["retry_after"]
wait = max(retry_after, 2 ** attempt)
time.sleep(wait)
continue
return response
raise Exception("Max retries exceeded")
Nächste Schritte
- Authentifizierung -- API-Schlüssel einrichten
- Akten-API -- Erste Anfragen senden
Was this helpful?