Тарифы и покупка API-ключа — на отдельной странице: Тарифы API →

Документация

Ознакомление

API даёт программный доступ к списку ваших серверов DayZ и их данным: онлайн, игроки, пинг, карта, моды, строка подключения connect. Подходит для виджетов на сайт, ботов, своих страниц мониторинга и игровых лаунчеров — встроить список серверов и кнопку «Подключиться».

Обновление данных: на нашей стороне данные в API (онлайн, игроки, пинг, время на сервере, моды и т.д.) обновляются по тарифу: базовые тарифы — каждые 30 секунд, премиум (75+ серверов) — каждые 15 сек, топ (125+ серверов) — каждые 10 сек. Для актуального списка достаточно запрашивать API с той же частотой; чаще — данные не обновятся.

Лимит запросов: до 200 000 000 запросов в день на один ключ (подходит для лаунчеров и мониторинга с постоянными вызовами). При превышении лимита API вернёт 429; счётчик обнуляется в полночь по московскому времени (МСК).

Три шага до первого запроса

  1. 1Получите API-ключ — на странице Тарифы API выберите тариф и оплатите. Ключ выдаётся после оплаты и действует навсегда.
  2. 2Добавьте ключ в заголовок — в каждом запросе передавайте X-API-Key: ваш_ключ или Authorization: Bearer ваш_ключ.
  3. 3Отправьте GET-запрос — на https://malibutrade.ru/api/v1/server/servers. В ответ придёт JSON с массивом ваших серверов.
curl -X GET "https://malibutrade.ru/api/v1/server/servers" \
  -H "X-API-Key: ВАШ_КЛЮЧ" \
  -H "Accept: application/json"
Как получить ключ →

Как внедрить

Если не разбираешься в API — вот коротко и по делу.

Простыми словами

API — это способ, чтобы твоя программа или сайт могли запросить у нас список серверов и данные по ним (онлайн, пинг, карта, строка подключения). Ты отправляешь запрос с ключом — мы отдаём JSON. Всё.

Куда можно встроить: виджет на свой сайт, бот (Discord/Telegram), лаунчер, свою страницу мониторинга — везде, где нужно показывать сервера или кнопку «Подключиться».

Как внедрить по шагам (если ты не разработчик — передай это тому, кто пишет код):

  1. Купить ключ — на странице Тарифы API выберите тариф и оплатите, ключ приходит после оплаты. Хранить ключ в секрете, не светить в публичном коде.
  2. В каждом запросе к API добавлять заголовок с ключом: X-API-Key: ваш_ключ или Authorization: Bearer ваш_ключ.
  3. Отправить GET-запрос на https://malibutrade.ru/api/v1/server/servers — в ответ придёт JSON с массивом серверов. Данные обновляются у нас раз в 30 секунд, запрашивать чаще смысла нет.
  4. Для кнопки «Подключиться» использовать из ответа поле connect — это готовая строка для подключения игрока.

Дальше: Попробовать запрос (ввести ключ и отправить самому), Аутентификация, Примеры кода.

Попробовать запрос

Введите API-ключ (и при необходимости ID сервера), нажмите «Отправить» — получите ответ API в виде JSON. Так можно проверить ключ и формат ответа без своего кода.

Введите API-ключ, при необходимости — ID сервера, нажмите «Отправить» и получите ответ API (JSON). Так можно проверить ключ и формат ответа без своего кода.

Аутентификация

Передавайте API-ключ в заголовке:

  • X-API-Key: <ключ>
  • Authorization: Bearer <ключ>

Базовый URL

Текущая версия — v1. Все запросы:

https://malibutrade.ru/api/v1/

Эндпоинты

GET/api/v1/server/servers
Список серверов (JSON). По ключу владельца — только ваши; по ключу сайта — все одобренные. Данные (онлайн, игроки, пинг и т.д.) обновляются каждые 30 секунд.
GET/api/v1/server/servers/:id
Один сервер по id. По ключу владельца — только свой; по ключу сайта — любой одобренный.

Объект сервера: за что отвечает каждое поле

В ответе приходит массив объектов (или один объект для /servers/:id). Полная расшифровка полей:

ПолеЗа что отвечает
idЧисловой идентификатор сервера.
nameНазвание сервера (из опроса DayZ).
mapКарта: Chernarus, Livonia, Sakhal и т.д.
connectСтрока подключения для клиента: IP:port_game (подставить в лаунчер / «Подключиться»).
ipIP-адрес сервера.
port_gameПорт игры (для подключения игрока).
port_queryПорт запроса A2S (для опроса сервера).
players_connectedТекущее количество игроков на сервере.
playersСписок игроков из A2S_PLAYER: массив объектов с полями name (никнейм), score, time (время на сервере в минутах).
players_maxМаксимальное количество слотов.
players_queueОчередь на подключение (число).
pingПинг до сервера, мс.
onlineСервер доступен по запросу (true/false).
timeИгровое время на сервере (строка, например 12:35).
versionВерсия игры (например 1.28.161464).
passwordТребуется пароль для входа (boolean).
officialОфициальный сервер DayZ (boolean).
first_personТолько от первого лица (boolean).
dlc_enabledНужен DLC Livonia (boolean).
modsМассив модов: объекты с полями id (Steam Workshop), title (название).
day_accelerationУскорение дневного времени (число).
night_accelerationУскорение ночного времени (число).
image_urlURL картинки сервера или null.
siteСсылка на сайт сервера или null.
vkСсылка на VK или null.
discordСсылка на Discord или null.
telegramСсылка на Telegram или null.
descriptionОписание сервера (текст) или null.
votesCountКоличество голосов за сервер.
ratingPointsБаллы рейтинга.
qaCountКоличество вопросов/ответов.
reviewsCountКоличество отзывов.
snowПризнак зимней карты (boolean).

Лимиты и обновление данных

  • Запросов в день: до 200 000 000 на один API-ключ. Счётчик обнуляется в 00:00 по московскому времени (МСК). При превышении — ответ 429 с полями error, limit, retryAfter: "midnight".
  • Частота обновления данных серверов: базовые тарифы — данные обновляются раз в 30 сек; тарифы 75+ серверов — раз в 15 сек; тарифы 125+ серверов — раз в 10 сек. Запрос GET /servers/:id по премиум-ключу может вернуть более свежие данные (при необходимости сервер опрашивается по запросу).

Коды ответов

  • 200 — успех, тело JSON.
  • 401 — нет или неверный ключ. Тело: { "error": "Unauthorized" }
  • 404 — сервер не найден или нет доступа по тарифу.
  • 429 — превышен дневной лимит запросов. Тело: { "error": "...", "limit": N, "retryAfter": "midnight" }. Повторять запросы после полуночи.
  • 500 — ошибка сервера.

Примеры кода

Готовые куски кода: подставьте свой API-ключ вместо YOUR_API_KEY и используйте в своём проекте.

curl (терминал)

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

curl -X GET "https://malibutrade.ru/api/v1/server/servers" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Accept: application/json"

Один сервер по id:

curl -X GET "https://malibutrade.ru/api/v1/server/servers/1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

JavaScript (fetch)

const apiKey = "YOUR_API_KEY";
const res = await fetch("https://malibutrade.ru/api/v1/server/servers", {
  headers: { "X-API-Key": apiKey, "Accept": "application/json" }
});
const servers = await res.json();  // массив серверов

Python (requests)

import requests

api_key = "YOUR_API_KEY"
r = requests.get(
    "https://malibutrade.ru/api/v1/server/servers",
    headers={"X-API-Key": api_key, "Accept": "application/json"}
)
servers = r.json()  # список серверов

PHP (cURL)

$apiKey = "YOUR_API_KEY";
$ch = curl_init("https://malibutrade.ru/api/v1/server/servers");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => [
        "X-API-Key: " . $apiKey,
        "Accept: application/json"
    ],
    CURLOPT_RETURNTRANSFER => true
]);
$body = curl_exec($ch);
curl_close($ch);
$servers = json_decode($body, true);  // массив серверов

Node.js (fetch)

const apiKey = "YOUR_API_KEY";
const res = await fetch("https://malibutrade.ru/api/v1/server/servers", {
  headers: { "X-API-Key": apiKey, "Accept": "application/json" }
});
const servers = await res.json();  // массив серверов

C# (HttpClient)

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", "YOUR_API_KEY");
client.DefaultRequestHeaders.Add("Accept", "application/json");
var response = await client.GetAsync("https://malibutrade.ru/api/v1/server/servers");
var json = await response.Content.ReadAsStringAsync();
var servers = System.Text.Json.Nodes.JsonNode.Parse(json);  // массив серверов

Go (net/http)

apiKey := "YOUR_API_KEY"
req, _ := http.NewRequest("GET", "https://malibutrade.ru/api/v1/server/servers", nil)
req.Header.Set("X-API-Key", apiKey)
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
// затем resp.Body и json.Decode — массив серверов

Как получить ключ

Перейдите на страницу Тарифы API, выберите тариф и нажмите «Купить», либо войдите в аккаунт. После оплаты выдаётся API-ключ — подставляйте его в заголовок запроса (см. «Аутентификация»).