Квоты и лимиты
API защищено двумя уровнями ограничений: квотой аккаунта (настраивается тарифом) и защитными лимитами (фиксированные, против злоупотреблений).
Квота аккаунта
- Счётчик ведётся на уровне пользователя: несколько ключей одного аккаунта делят одну квоту.
- Окна: час (с начала текущего часа) и сутки (с начала суток).
- Итоговые лимиты определяются по цепочке: индивидуальные настройки → тариф → без ограничений. Если лимит не задан — ограничение не применяется, но использование всё равно учитывается.
- Ключи виджета не получают 429 от квоты аккаунта (чтобы ограничения не ломали сайты клиентов), но их запросы учитываются в статистике.
| Ключ | Значение |
|---|---|
api_requests_per_hour | запросов в час (пусто — без ограничения) |
api_requests_per_day | запросов в сутки (пусто — без ограничения) |
max_api_keys | максимум API-ключей аккаунта |
max_servers | максимум тестовых серверов, назначаемых ключам |
Для бесплатного тарифа обычно действуют: 5 запросов в час, 50 в сутки и до 3 ключей. Точные значения для вашего аккаунта возвращает GET /api/v2/servers (поле limits).
Что учитывается в квоте
GET /api.php?action=get-serversс валидным ключом;POST /api.php?action=submit-result(после успешных проверок);GET /api/v2/servers;- отправка результата агентом мониторинга.
Не учитывается: анонимные запросы без ключа, публичная статистика network-quality, служебные обращения агентов (heartbeat и опрос команд).
Ответ 429
HTTP/1.1 429 Too Many Requests
Retry-After: <секунды>
json{
"success": false,
"error": "rate_limit_exceeded",
"message": "API request limit exceeded",
"limit": 5,
"period": "hour",
"retry_after": 2145
}
limit— превышенный лимит,period—hourилиday;retry_after— секунд до конца окна (дублируется в заголовкеRetry-After).- Не повторяйте запрос до истечения
retry_after: сначала сбрасывается часовое окно, затем суточное.
Защитные лимиты
| Действие | Ключ | Лимит |
|---|---|---|
submit-result | IP | 50 в час |
При превышении защитных лимитов возвращается 429 с текстовым сообщением (например, You are submitting results too frequently.).
Техническая деталь
Счётчики обновляются атомарно, поэтому при одновременных запросах ровно limit запросов получают разрешение, остальные — отказ. Порядок проверки — сначала часовой лимит, затем суточный. Завершённые окна очищаются автоматически. Применение квоты может быть временно отключено сервисом — тогда ведётся только учёт.