VX PlatformPublic API v1

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

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

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

Bearer 24 часа120 запросов/мин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 показывается один раз и должен храниться только на серверной стороне вашего бота или интеграции.

При получении токена передавайте 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/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 приложения.

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

120 запросов/мин на bearer-токен по умолчанию. Scope приложения не обходит тариф VX: если функция не входит в текущий доступ проекта, API вернёт 402 subscription_required. При приостановке проекта — 423 project_suspended.

Ошибки

400 неверные параметры · 401 отсутствует токен · 402 нужен другой тариф · 403 токен, secret, User-Agent или scope · 404 ресурс не найден · 423 проект приостановлен · 429 превышен rate limit · 500 внутренняя ошибка.

APPLICATIONS

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

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

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