API IgroServ

Публичные данные мониторинга в JSON. Ограничение: 120 запросов в минуту на IP.

Методы

GET /api/v1/games — активные игры и количество серверов.

GET /api/v1/servers — параметры game, online=1, country, q, per_page.

GET /api/v1/servers/{id} — карточка сервера.

curl "https://igroserv.ru/api/v1/servers?game=rust&online=1&country=RU"

Webhook владельца сервера

После подтверждения сервера в кабинете можно указать публичный HTTPS URL. IgroServ отправляет события server.online и server.offline методом POST.

{
  "event": "server.online",
  "occurred_at": "2026-08-24T15:30:00Z",
  "server": {
    "id": 123,
    "game": "rust",
    "address": "203.0.113.10:28015",
    "status": "online",
    "players": 42,
    "max_players": 100
  }
}

Подпись находится в заголовке X-IgroServ-Signature в виде sha256=<hex>. Вычислите HMAC-SHA256 от исходного тела запроса с секретом webhook и сравнивайте подписи через constant-time функцию.

$expected = 'sha256='.hash_hmac('sha256', $rawBody, $secret);
$valid = hash_equals($expected, $_SERVER['HTTP_X_IGROSERV_SIGNATURE'] ?? '');