api-lite.gnrbot.ru

API Lite

Лёгкий read-only API для быстрого preview игровых серверов. Без личного кабинета, без БД и без записи данных.

Лимиты

Глобальный лимит: 20 запросов в секунду на весь сервис. При превышении API вернёт HTTP 429 и заголовок Retry-After.

Запрос

GET https://api-lite.gnrbot.ru/api/query?ip=46.174.52.93
GET https://api-lite.gnrbot.ru/api/query?address=46.174.52.93:27015&game=cs16
ip / host
Можно передать только IP или домен. API попробует само найти игру и порт.
address
Адрес в формате host:port. Можно вместо него передать host/ip и port.
game
Игра: cs16, garrysmod, minecraft, rust, cs2, css, tf2 и др.
port
Если порт не указан, но указана игра, берётся порт по умолчанию для этой игры.

Автоопределение

Если игра не указана, API пробует ограниченный набор популярных игр и портов. В ответе всегда есть game, gameLabel, detectedGame и detectedPort.

Примеры

curl "https://api-lite.gnrbot.ru/api/query?ip=46.174.52.93"
curl "https://api-lite.gnrbot.ru/api/detect?ip=46.174.52.93"
curl "https://api-lite.gnrbot.ru/api/query?host=46.174.52.93&port=27015&game=cs16"
fetch("https://api-lite.gnrbot.ru/api/query?address=46.174.52.93:27015")
  .then((r) => r.json())
  .then(console.log)

Ответ

{
  "success": true,
  "data": {
    "name": "Server name",
    "ip": "46.174.52.93:27015",
    "host": "46.174.52.93",
    "port": 27015,
    "game": "cs16",
    "gameLabel": "Counter-Strike 1.6",
    "detectedGame": "cs16",
    "detectedGameLabel": "Counter-Strike 1.6",
    "detectedPort": 27015,
    "map": "de_dust2",
    "players": 12,
    "maxplayers": 32,
    "latencyMs": 94,
    "playerList": [{ "name": "Player", "score": 10, "duration": 4 }]
  }
}

Health

GET https://api-lite.gnrbot.ru/api/health