Rate-Limits
| Endpunkttyp | Limit | Geltungsbereich |
|---|---|---|
| Authentifizierung | 10 Anfragen/Min | pro IP |
| Laufzeitkonfiguration | 1.000 Anfragen/Min | pro Einbettungstoken |
| Einwilligung einreichen | 300 Anfragen/Min | pro Einbettungstoken |
| Einwilligung widerrufen | 60 Anfragen/Min | pro Einbettungstoken |
| Scan-Erstellung | 10 Anfragen/Min | pro Mandant |
| Medien-Upload | 20 Anfragen/Min | pro Mandant |
| Verwaltung (allgemein) | 120 Anfragen/Min | pro API-Schlüssel |
Rate-Limit-Header
Jede Antwort enthält:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741521600
Bei Überschreitung des Rate-Limits erhalten Sie eine 429-Antwort:
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Try again in 30 seconds."
}
}
Umgang mit Rate-Limits
Implementieren Sie exponentiellen Backoff bei einer 429-Antwort:
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const res = await fetch(url, options);
if (res.status !== 429) return res;
const retryAfter = parseInt(res.headers.get('X-RateLimit-Reset')) - Date.now() / 1000;
await new Promise(r => setTimeout(r, (retryAfter + 1) * 1000));
}
throw new Error('Rate limit retries exhausted');
}