VX PlatformPublic API v1

API ДЛЯ БОТОВ И ИНТЕГРАЦИЙ

Данные VX Platform
в вашем боте.

Серверы, онлайн, расписания, лидерборды, игроки и банлисты через read-only API. Владелец проекта сам выдаёт приложению только нужные права.

Bearer 24 часа120 запросов/минОнлайн: 2 запроса / 30 секScope + подпискаJSONRead-only
POST /v1/auth/register
curl -X POST https://api.vx-platform.ru/v1/auth/register \
  -H "User-Agent: vxapp_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "application_id":"vxapp_xxx",
    "secret":"vxsec_xxx"
  }'
→ в ответе придёт Bearer token, действующий 24 часа. application_id и secret можно передать JSON body или query parameters; для secret безопаснее body.

Авторизация

Создайте приложение ниже. application_id можно использовать как идентификатор приложения. secret показывается один раз и должен храниться только на серверной стороне вашего бота или интеграции.

При получении токена передавайте User-Agent: application_id. Во всех защищённых запросах передавайте Authorization: Bearer TOKEN и тот же User-Agent.

Безопасность

Public API v1 работает только на чтение: через него нельзя выполнить RCON-команду, kick, изменить бан, перезапустить сервер или поменять настройки проекта.

Доступ к каждому методу определяется одновременно scope приложения и доступом проекта по подписке. Secret можно перевыпустить — ранее выданные токены этого приложения перестанут работать.

METHODS

Методы API

Каждый метод ниже содержит параметры, описание placeholder'ов, минимальный тариф и пример запроса. Нажмите на метод, чтобы раскрыть детали.

GET/v1/projectОсновная информация о проекте
project:readFREE+

Возвращает проект, к которому привязано API-приложение: название, slug, оформление поддержки и публичную ссылку страницы поддержки.

Параметры

Параметров нет.

Основные поля ответа

project.id
Внутренний ID проекта VX.
project.name
Название проекта.
project.slug
Slug публичной страницы поддержки.
project.supportUrl
Готовая публичная ссылка вида https://support.vx-platform.ru/....

Пример

curl "https://api.vx-platform.ru/v1/project" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
GET/v1/serversВсе активные серверы и их live-статус
servers:readFREE+

Возвращает активные серверы проекта и последнюю известную информацию мониторинга.

Параметры

Параметров нет.

Поля сервера

id
ID сервера. Используйте его как {serverId} в запросах ниже.
name
Название сервера в VX.
map
Техническое имя карты DayZ.
status
Последнее состояние сервера, например ONLINE или OFFLINE.
players
Текущее число игроков по последней проверке.
maxPlayers
Количество слотов.
checkedAt
Когда VX последний раз проверил статус.

Пример

curl "https://api.vx-platform.ru/v1/servers" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
GET/v1/server/{serverId}Один сервер по ID
servers:readFREE+

Возвращает состояние конкретного сервера из текущего проекта.

Параметры этого запроса

{serverId}PATH · required

ID сервера VX. Возьмите значение servers[].id из GET /v1/servers. Это не IP, не query-port и не название сервера.

Пример

curl "https://api.vx-platform.ru/v1/server/cm_server_123" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
GET/v1/server/{serverId}/schedulesПубличные расписания сервера
schedules:readLITE+

Возвращает только активные расписания, которые владелец сервера разрешил публиковать: рестарты, техработы, ивенты и другие события расписания.

Параметры этого запроса

{serverId}PATH · required

ID сервера VX из GET /v1/servers. Метод работает только для сервера того проекта, которому принадлежит API-приложение.

Поля расписания

kind
Тип события.
title
Публичное название.
description
Описание, если задано.
recurrence
Тип повторения.
intervalMinutes
Интервал в минутах для интервального расписания.
timeOfDay
Время запуска для расписания по времени суток.
weekdays
Дни недели.
timezone
Часовой пояс расписания.
GET/v1/leaderboards?metric=PLAYER_KILLS&limit=10Лидерборды и игровые метрики
leaderboards:readLITE+

Возвращает один выбранный лидерборд либо все доступные лидерборды, если metric не передан. Значение metric регистронезависимо: player_kills и PLAYER_KILLS равнозначны.

Параметры этого запроса

metricQUERY · optional

Код метрики из списка ниже. Если не указан — API вернёт все метрики.

limitQUERY · optional

Сколько строк запрашивать на одну метрику. По умолчанию 10. API принимает значение до 100, при этом лидерборд ограничивает фактическую выдачу максимум 25 строками на метрику.

Доступные metric

PLAYER_KILLSУбийства игроковКоличество PvP-убийств, засчитанных игроку.
DEATHSСмертиОбщее число зафиксированных смертей игрока.
SUICIDESСуицидыКоличество смертей, классифицированных как самоубийство.
LONGEST_HITСамое дальнее попаданиеМаксимальная дистанция успешного попадания, в метрах.
LONGEST_KILLСамое дальнее убийствоМаксимальная дистанция убийства другого игрока, в метрах.
ZOMBIE_KILLSУбийства заражённыхКоличество убитых зомби/заражённых, попавших в статистику VX.
ANIMAL_KILLSУбийства животныхКоличество убитых животных.
PLAYTIMEВремя на сервереСуммарное игровое время. Числовое значение value передаётся в секундах.
LONGEST_LIFEСамая длинная жизньМаксимальная продолжительность одной жизни игрока. value — секунды.

Пример: топ PvP-убийств

curl "https://api.vx-platform.ru/v1/leaderboards?metric=player_kills&limit=10" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
Важно: в ответе каждая строка содержит value — исходное числовое значение и valueText — уже отформатированное VX значение для отображения.
GET/v1/server/{serverId}/players/onlineТекущий список игроков онлайн
players:readFREE+

Получает актуальный список игроков через GameDig / DayZ Steam Query. Подходит для розыгрышей и других сценариев, где нужны именно игроки, находящиеся на сервере в момент запроса.

Параметры этого запроса

{serverId}PATH · required

ID сервера VX из GET /v1/servers.

Поля ответа

online
Количество игроков, которое сообщает DayZ query.
listedPlayers
Сколько записей игроков вернул GameDig.
players[].steamId64
SteamID64 игрока из ответа GameDig.
players[].name
Текущий ник игрока из ответа GameDig.
incompletePlayers
Количество записей, в которых query-ответ не содержал SteamID64 или ника.
observedAt
Время выполнения GameDig-запроса.
source
Источник списка — GAMEDIG.
cached
true, если использован короткий кэш предыдущего запроса.
Лимит: не более 2 запросов за 30 секунд на bearer-токен. Это отдельный лимит поверх общего лимита Public API. На сервере должен быть настроен Query Port / Steam Query. Результат GameDig кэшируется примерно на 5 секунд, чтобы параллельные запросы не создавали лишние UDP-query. На FREE чтение списка игроков разрешено.

Пример

curl "https://api.vx-platform.ru/v1/server/cm_server_123/players/online" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
GET/v1/player/{identifier}Досье игрока проекта
players:readFREE+

Ищет игрока только среди игроков текущего проекта. Поддерживается поиск по SteamID64, BattlEye GUID и CFTools ID.

Параметры этого запроса

{identifier}PATH · required

Один из идентификаторов игрока: SteamID64 (17 цифр), BE GUID или CFTools ID. Передавайте само значение без префикса steam: или cftools:.

Статистика player.stats

playerKills
PvP-убийства.
deaths
Смерти.
suicides
Суициды.
zombieKills
Убийства заражённых.
animalKills
Убийства животных.
totalPlaySeconds
Суммарное игровое время в секундах.
longestLifeSeconds
Самая длинная жизнь в секундах.
longestHitMeters
Максимальная дистанция попадания в метрах.
longestKillMeters
Максимальная дистанция убийства в метрах.

Пример

curl "https://api.vx-platform.ru/v1/player/76561198000000000" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"
GET/v1/banlistsБан-листы проекта
banlists:readFREE+

Возвращает активные бан-листы проекта и количество записей в каждом списке.

Параметры

Параметров нет.

Основные поля

id
ID бан-листа. Используйте его как {banListId} в запросе списка банов.
name
Название списка.
description
Описание.
isPublic
Отмечен ли список как публичный.
verificationStatus
Состояние верификации списка.
banCount
Количество записей в списке.
GET/v1/banlists/{banListId}/bans?limit=100Активные баны выбранного списка
banlists:readFREE+

Возвращает действующие записи выбранного бан-листа. Истёкшие и неактивные баны в результат не входят.

Параметры этого запроса

{banListId}PATH · required

ID бан-листа из поля banlists[].id ответа GET /v1/banlists.

limitQUERY · optional

Максимальное количество записей. По умолчанию 100, допустимый диапазон 1–200.

Что приходит в бане

category
Категория бана.
reason
Причина.
startsAt
Дата начала.
expiresAt
Дата окончания либо null.
permanent
true, если бан бессрочный.
player
SteamID64, BE GUID, CFTools ID, имя и известные алиасы игрока.
targets
Цели применения бана и состояние enforcement.

Общий формат защищённого запроса

curl "https://api.vx-platform.ru/v1/servers" \
  -H "Authorization: Bearer vxt_xxx" \
  -H "User-Agent: vxapp_xxx"

Bearer token берётся из POST /v1/auth/register. User-Agent должен совпадать с application_id приложения.

↗

ОГРАНИЧЕНИЯ API

Лимиты и подписка

120запросов в минутуСтандартный лимит на один Bearer-токен.
2 / 30 секдля списка игроков онлайнОтдельный лимит для живого запроса к DayZ-серверу.
Scope + тарифоба условия обязательныРазрешение приложения не открывает функции, которых нет в подписке проекта.
402 функция не входит в текущий тариф 423 проект приостановлен
!

HTTP-ОТВЕТЫ

Ошибки

400Неверные параметры
401Нет токена или он недействителен
402Нужен другой тариф
403Нет нужного доступа
404Ресурс не найден
409Источник данных не настроен
423Проект приостановлен
429Слишком много запросов
503Живой источник временно недоступен
500Внутренняя ошибка API

Для 403 проверьте токен, secret, User-Agent и разрешения приложения.

APPLICATIONS

Приложения вашего проекта

Здесь владелец проекта создаёт application_id, выдаёт scopes и перевыпускает secret.

Проверяем авторизацию…