Открытый API · v1

API мониторинга CS-TOP

Открытые данные мониторинга: серверы Counter-Strike, карты, онлайн, проекты. Ключ и регистрация не нужны — просто отправляйте запрос.

Адрес
https://api.cs-top.uz
Формат
JSON, UTF-8, только GET
Лимит
60 запросов в минуту
Методов
14

Начало

У всех методов одна оболочка ответа. Проверьте ok — и дальше работайте с data. Списки отдают meta с количеством и страницей.

{
  "ok": true,
  "data": [ … ],
  "meta": { "total": 385, "page": 1, "per_page": 20 }
}

Самый короткий запрос:

curl https://api.cs-top.uz/v1/stats

Серверы

GET /v1/servers

Список серверов

Серверы мониторинга с фильтрами и постраничным выводом. Забаненные не отдаются никогда.

Параметр Тип Описание Пример
game string string Слаг игры: cs16, csgo, css, cs2 cs16
q string string Поиск по названию, карте и адресу zombie
map string string Точное имя карты de_dust2
mode string string Слаг режима, см. /v1/modes zombie
country string string Код страны, две буквы UZ
tasix bool bool Только сеть Tas-IX 1
online bool bool Только отвечающие серверы 1
sort string string players, votes, name, added players
page int int Страница, с единицы 1
limit int int Записей на страницу, 1–100 20
GET /v1/servers/{address}

Карточка сервера

Один сервер по адресу вида ip:порт. Дополнительно отдаются режимы.

GET /v1/servers/{address}/players

Игроки на сервере

Кто сейчас играет: имя, счёт, время в игре. Данные из последнего опроса.

GET /v1/servers/{address}/pulse

Онлайн за сутки

24 точки по часам: средний онлайн сервера в каждый час.

Карты

GET /v1/maps

Популярные карты

Во что играют прямо сейчас: карта, сколько серверов и людей на ней.

Параметр Тип Описание Пример
game string string Слаг игры cs16
tasix bool bool Только Tas-IX 1
limit int int Сколько карт, 1–100 25
GET /v1/maps/{map}/servers

Серверы на карте

Где сейчас идёт эта карта.

Параметр Тип Описание Пример
game string string Слаг игры cs16
limit int int Записей, 1–100 20

Статистика

GET /v1/stats

Сводка мониторинга

Сколько серверов и игроков сейчас — всего и по каждой игре.

GET /v1/stats/pulse

Пульс за сутки

Онлайн всего мониторинга по часам за последние сутки.

Параметр Тип Описание Пример
game string string Слаг игры, иначе все cs16

Справочники

GET /v1/games

Игры

Справочник игр со слагами, которые ждут остальные методы.

GET /v1/modes

Режимы

Режимы игры и сколько серверов в каждом.

Параметр Тип Описание Пример
game string string Считать только по этой игре cs16
GET /v1/countries

Страны

Страны, где стоят серверы, и сколько их.

Проекты

GET /v1/projects

Список проектов

Проекты (сообщества серверов): публичный номер из 8 цифр, название, сайт, постоянная ссылка на логотип, ссылка на Telegram (пусто, если не указан), время правки и серверы проекта с режимом. Скрытые и забаненные не отдаются.

GET /v1/projects/{id}

Карточка проекта

Один проект по публичному номеру (8 цифр). Режим сервера — первый режим, как на сайте; язык названий режимов — параметр lang.

GET /v1/projects/{id}/news

Новости проекта

Опубликованные новости проекта: закреплённые первыми, затем новые. Текст дважды — html (очищенный, как на сайте) и text (простой текст с переносами строк). image и image_preview (640×360) — постоянные ссылки на cs-top.uz, пусто, если картинки нет. url ведёт на новость на сайте. В карточке и списке проектов есть news_count и news_at — дата последней новости, чтобы не опрашивать этот адрес зря.

Параметр Тип Описание Пример
page int int Страница, с 1 1
limit int int Сколько на странице, 1–50 (по умолчанию 20) 10

Ограничения

Считаем по адресу: 60 запросов в минуту. В каждом ответе есть заголовки с остатком.

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 1790454300

Превысили — придёт 429 и заголовок Retry-After. Ответы кэшируются на 30–60 секунд: серверы опрашиваются раз в минуту, чаще свежих данных всё равно нет.

Ключи появятся позже: часть возможностей будет выдаваться по ключу из кабинета на cs-top.uz. Всё, что описано здесь, останется открытым.

Ошибки

{
  "ok": false,
  "error": { "code": "not_found", "message": "…" }
}
HTTPcodeКогда
400bad_requestПараметр не подходит
404not_foundНет такого метода или сервера
405method_not_allowedЗапрос не GET
429rate_limitedПревышен лимит
500internalОшибка на нашей стороне

Вопросы и пожелания по API: admin@cs-top.uz