API MineList позволяет твоему серверу проверять, голосовал ли игрок, выдавать награду ровно один раз и получать публичную статистику. Все методы возвращают JSON и работают через обычные HTTPS-запросы GET, поэтому подходят для любого языка программирования.
Как получить ключ API
Добавь свой сервер, подтверди права на него и открой панель владельца. Ключ API показан на странице настроек сервера. Храни его в тайне, ведь он идентифицирует твой сервер. Если ключ утёк, создай новый в панели и обнови плагин или скрипт.
Базовый адрес всех методов — https://minelist.eu.
Проверка голоса
GET /api/v1/vote?key=API_KEY&username=NICK
Показывает, голосовал ли игрок сегодня и была ли награда уже получена.
{"voted":true,"claimed":false,"next_vote_utc":"2026-10-31T00:00:00Z"}
voted— true, если у этого ника есть голос за твой сервер в текущие сутки по UTC.claimed— true, если этот голос уже отмечен как полученный.next_vote_utc— время, когда игрок сможет проголосовать снова.
Отметка голоса как полученного
GET /api/v1/vote/claim?key=API_KEY&username=NICK
Отмечает сегодняшний голос как полученный. Вызывай этот метод прямо перед выдачей награды, чтобы игрок не мог получить её дважды. Возможные ответы:
| Ответ | Значение |
|---|---|
{"voted":true,"claimed":true} | Голос действителен и теперь отмечен как полученный. Выдай награду. |
{"voted":true,"claimed":false,"already_claimed":true} | Голос был отмечен как полученный раньше. Ничего не выдавай. |
{"voted":false,"claimed":false} | Игрок сегодня не голосовал. |
Список голосов за месяц
GET /api/v1/votes?key=API_KEY
Возвращает все голоса, которые твой сервер получил в текущем месяце. Это удобно для наград лучшим голосующим за месяц и для таблиц лидеров на твоём сайте.
Публичная статистика сервера
GET /api/v1/server/<slug>
Этому методу ключ не нужен. Slug — это последняя часть адреса сервера на MineList. Примеры полей ответа:
| Поле | Описание |
|---|---|
name | Название сервера |
url | Сайт сервера |
ip | Адрес для подключения |
online | Была ли последняя проверка успешной |
players | Игроков онлайн при последней проверке |
max_players | Количество слотов для игроков |
version | Версия сервера |
votes_month | Голоса за этот месяц |
votes_total | Голоса с момента добавления сервера |
uptime_30 | Аптайм за последние 30 дней в процентах |
rating | Средняя оценка |
last_check | Время последней проверки |
Пример с curl
Это вся логика в виде команды для оболочки. То же самое делает любой язык, который умеет отправлять HTTP-запросы, например Java, PHP, Python или Node.js.
curl -s "https://minelist.eu/api/v1/vote/claim?key=API_KEY&username=Steve"
Разбери JSON, и если claimed равно true, выполни команду выдачи награды, например give Steve diamond 3.
Поддержка NuVotifier
Если хочешь выдавать награды мгновенно, без опроса API, MineList может передавать голоса на твой сервер через NuVotifier. Поддерживаются обе версии протокола. Версия 1 использует публичный ключ RSA, версия 2 использует токен.
- Установи NuVotifier на сервер и перезапусти его.
- В панели владельца укажи хост, порт (по умолчанию 8192) и публичный ключ (v1) или токен (v2).
- Нажми Отправить тестовый голос и проверь, что сервер записал голос в лог.
Если тест не прошёл, убедись, что порт Votifier открыт в файрволе, а ключ скопирован без пробелов и переносов строк.
Живой баннер
У каждого сервера есть живой баннер размером 468x60 пикселей, который показывает текущий статус и число игроков:
https://minelist.eu/banner/<slug>.png
Пример встраивания в HTML:
<a href="https://minelist.eu/ru/server/vash-slug">
<img src="https://minelist.eu/banner/vash-slug.png" width="468" height="60" alt="Голосуй за нас на MineList">
</a>
Полезные советы
- Кэшируй публичную статистику хотя бы на минуту, а не обращайся к API при каждом просмотре страницы.
- Никогда не размещай ключ API в клиентском коде или в публичном репозитории.
- Вызывай метод отметки голоса только один раз на одну награду.