Информация о сервере Майнкрафт через JSON API

MinecraftServers JSON API

Планируете отображать онлайн, пинг, версии, виджеты голосования или другие параметры вашего сервера Minecraft на вашем сайте? Вы можете воспользоваться нашим JSON API
Базовый эндпоинт

Для получения публичного API-токена перейдите на страницу управления вашим сервером в мониторинге:

Подставьте токен вашего сервера. Пример: https://minecraftservers.ru/web/json-exampletoken.json
Структура ответа
{
  "serverid": 12345,
  "gamename": "Minecraft",
  "ip": "example.host",
  "port": 25565,
  "status": 1,	// 1 - онлайн, 0 - оффлайн
  "players": 24,
  "maxplayers": 100,
  "recordplayers": 88,
  "servername": "MyMinecraftServerName",
  "short_description": "Краткая сводка сервера",
  "version": "1.21.9",
  "votes": 18,
  "ping": 16,
  "location_code": "ru",
  "last_info_update": 1759523426,	// формат UNIX time
  "last_success_update": 1759523426,	// формат UNIX time
  "icon": "https://иконка-сервера",
  "protocol_version": 47,
  "version_name": "Версия, указанная сервером",
  "raw_name": "Название, установленное сервером",
  "motd": "Motd установленный сервером"
}

Обратите внимание: поля version_name, raw_name, motd могут содержать разметку Майнкрафт в соответствии с настройками указанными на вашем сервере (§-коды, &x). Для корректного отображения на вашем сайте используйте конвертер в HTML (ниже есть готовые функции в SDK).


Быстрый старт (JS, HTML)

<script>
(async () => {
  const url = "https://minecraftservers.ru/web/json-exampletoken.json";
  const r = await fetch(url, { cache: "no-store" });
  if (!r.ok) throw new Error("HTTP " + r.status);
  const data = await r.json();

  const version = data.version_from ? `${data.version_from}–${data.version}` : (data.version || "—");
  document.getElementById("my-server").textContent =
	`${data.servername} · ${data.players}/${data.maxplayers} · ${version}`;
})();
</script>

<div id="my-server">Загрузка...</div>
Пример работы с ETag/304 (fetch)
<script>
let etag = null;
async function load() {
  const headers = etag ? { "If-None-Match": etag } : {};
  const r = await fetch("https://minecraftservers.ru/web/json-exampletoken.json", { headers });
  if (r.status === 304) return;
  etag = r.headers.get("ETag");
  const data = await r.json();
  console.log("updated", data);
}
load();
setInterval(load, 60_000);
</script>

Использование на бэкэнде

Node.js (fetch)
import fetch from "node-fetch";
const r = await fetch("https://minecraftservers.ru/web/json-exampletoken.json");
if (!r.ok) throw new Error("HTTP " + r.status);
const data = await r.json();
console.log(data.servername, data.players);
PHP (cURL)
<?php
$ch = curl_init("https://minecraftservers.ru/web/json-exampletoken.json");
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 5]);
$body = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) { http_response_code(502); exit("upstream error"); }
curl_close($ch);
$data = json_decode($body, true);
echo $data["servername"] ?? "—";

Готовые виджеты (MCSRV SDK)

Вставьте один скрипт — и используйте готовые блоки: карточки, баннеры, строки, бейджы, виджеты голосования. Виджеты по умолчанию кешируют данные в localStorage (1 минута), поддерживают тёмную и системную тему (data-dark-theme).

Подключение:
<script src="https://minecraftservers.ru/sdk/v1.1.2/msrv-sdk.min.js" defer></script>
<!-- Светлая тема (по умолчанию) -->
<div class="msrv-card" data-token="exampletoken" data-url-enabled></div>

<!-- Баннер сервера (Тёмная тема) -->
<div class="msrv-banner" data-token="exampletoken" data-dark-theme="true" data-url-enabled></div>

<!-- Строка с информацией о сервере (Тема определяемая OS) -->
<div class="msrv-row" data-token="exampletoken" data-dark-theme="auto" data-url-enabled></div>

<!-- Бейдж со статусом сервера -->
<div class="msrv-badge" data-token="exampletoken" data-dark-theme="auto"></div>

<!-- Виджет голосования -->
<div class="msrv-vote" data-token="exampletoken" data-dark-theme="auto"></div>

Коды ответов API
  • 200 — валидный токен
  • 304 — содержание не изменилось (по ETag)
  • 400 — неверный токен

Пример виджетов SDK: