Limity żądań
| Typ endpointu | Limit | Zakres |
|---|---|---|
| Uwierzytelnianie | 10 żądań/min | per IP |
| Konfiguracja środowiska uruchomieniowego | 1 000 żądań/min | per token osadzenia |
| Przesłanie zgody | 300 żądań/min | per token osadzenia |
| Cofnięcie zgody | 60 żądań/min | per token osadzenia |
| Tworzenie skanowań | 10 żądań/min | per najemca |
| Przesyłanie mediów | 20 żądań/min | per najemca |
| Zarządzanie (ogólne) | 120 żądań/min | per klucz API |
Nagłówki limitów żądań
Każda odpowiedź zawiera:
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741521600
Po przekroczeniu limitu otrzymujesz odpowiedź 429:
{
"error": {
"code": "rate_limited",
"message": "Zbyt wiele żądań. Spróbuj ponownie za 30 sekund."
}
}
Obsługa limitów żądań
Zaimplementuj wykładnicze cofanie przy otrzymaniu odpowiedzi 429:
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');
}