Rate-Limits
| Endpunkt-Typ | Limit | Bereich |
|---|---|---|
| Authentifizierung | 10 Anf./Min. | pro IP |
| Runtime-Konfiguration | 1.000 Anf./Min. | pro Embed-Token |
| Einwilligung übermitteln | 300 Anf./Min. | pro Embed-Token |
| Einwilligung widerrufen | 60 Anf./Min. | pro Embed-Token |
| Scan-Erstellung | 10 Anf./Min. | pro Tenant |
| Medien-Upload | 20 Anf./Min. | pro Tenant |
| Verwaltung (allgemein) | 120 Anf./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 Rate-Limiting erhalten Sie eine 429-Antwort:
{
"error": {
"code": "rate_limited",
"message": "Zu viele Anfragen. Versuchen Sie es in 30 Sekunden erneut."
}
}
Rate-Limits behandeln
Implementieren Sie exponentielles Backoff, wenn Sie eine 429-Antwort erhalten:
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-Wiederholungsversuche erschöpft');
}