Ограничения запросов
AstroAPI применяет ограничения запросов для обеспечения справедливого использования и стабильности платформы.
Стандартные лимиты
Ограничения запросов определяются вашим тарифным планом:
| Подписка | Запросов/минуту | Запросов/месяц |
|---|---|---|
| Basic | 60 | 150 000 |
| Gold | 120 | 300 000 |
| Premium | 300 | 750 000 |
| Deluxe | 600 | 1 000 000 |
Конкретные ограничения зависят от вашей активной подписки. Проверьте текущие лимиты в панели управления.
Заголовки ограничений запросов
Все ответы содержат информацию об ограничениях запросов:
http
X-RateLimit-Limit: 60
X-RateLimit-Reset: 1699999999Обработка ограничений запросов
При превышении лимита API возвращает ответ 429 Too Many Requests:
json
{
"errors": [{
"status": "429",
"title": "Too Many Requests",
"detail": "Rate limit exceeded. Please retry after 60 seconds."
}]
}Стратегия повторных попыток
Реализуйте экспоненциальную задержку при получении ответов 429:
typescript
async function fetchWithRetry(url: string, options: RequestInit, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status !== 429) {
return response;
}
const retryAfter = response.headers.get('Retry-After') || '60';
await new Promise(resolve =>
setTimeout(resolve, parseInt(retryAfter) * 1000)
);
}
throw new Error('Max retries exceeded');
}Лимиты для конкретных эндпоинтов
Некоторые эндпоинты имеют дополнительные ограничения:
| Эндпоинт | Дополнительный лимит |
|---|---|
/api/chart/* | 100 визуализаций/час |
/api/calc/batch | 10 пакетных запросов/минуту |
Увеличение лимитов
Свяжитесь со службой поддержки для обсуждения индивидуальных ограничений запросов для вашего приложения.