API голосов
Публичный API: получить список голосов и проверить, проголосовал ли игрок (по Discord или нику). Подходит для Discord-ботов.
Обновлено 16 июня 2026 г.
Публичный API голосов позволяет вашим интеграциям читать голоса сервера: получать список голосов, проверять, проголосовал ли конкретный игрок, и смотреть статистику. Чаще всего его используют, чтобы Discord-бот выдавал роль или награду тем, кто проголосовал.
Доступ только на чтение — изменить голоса через API нельзя.
Получение API-ключа
- Откройте карточку своего сервера и пройдите верификацию владельца.
- В настройках сервера откройте раздел «API-ключи» и нажмите «Создать ключ».
- Скопируйте ключ вида
rsk_live_…— он показывается один раз. Храните его как пароль.
Ключ можно ограничить одним сервером или выдать на все ваши серверы. Скомпрометированный ключ отзовите в том же разделе и создайте новый.
Важно: не публикуйте ключ в открытом коде, репозитории или конфиге бота в публичном доступе. Если ключ утёк — отзовите его.
Базовый адрес и авторизация
Базовый адрес: https://api.millida.trade/v2/rating/api
Ключ передаётся в заголовке X-Api-Key (или Authorization: Bearer …):
curl https://api.millida.trade/v2/rating/api/stats \
-H "X-Api-Key: rsk_live_ВАШ_КЛЮЧ"
Если ключ выдан на все серверы тенанта, к каждому запросу добавляйте параметр serverId. Для ключа, привязанного к одному серверу, этот параметр можно не указывать.
Проверка голоса игрока
Главный сценарий для Discord-бота: «проголосовал ли этот человек». Эндпоинт GET /votes/check.
Параметры:
discordIdилиnickname— кого проверяем (обязателен один из них);since— за какой период:today(по умолчанию),24h,7d,30d;serverId— обязателен, если ключ выдан на все серверы.
curl "https://api.millida.trade/v2/rating/api/votes/check?discordId=123456789012345678&since=today" \
-H "X-Api-Key: rsk_live_ВАШ_КЛЮЧ"
Ответ:
{
"voted": true,
"voteId": "clx…",
"votedAt": "2026-06-16T10:12:00.000Z",
"discordId": "123456789012345678",
"nickname": "Steve",
"since": "2026-06-16T00:00:00.000Z"
}
Если voted равно true — игрок отдал засчитанный голос за выбранный период. Учитываются только корректные голоса (накрутка и отклонённые голоса не считаются.)
Про проверку по Discord: голос привязывается к Discord-аккаунту, только если игрок указал его в профиле Millida. Если у части игроков Discord не привязан, проверяйте по
nicknameили попросите игроков привязать Discord в профиле.
Список голосов
GET /votes возвращает голоса сервера от новых к старым.
Параметры (все необязательные):
status—VALID(по умолчанию выводятся все), либо отклонённые;discordId,nickname— фильтр по игроку;from,to— диапазон дат в формате ISO;limit— сколько вернуть (1–200, по умолчанию 50);cursor— курсор следующей страницы из поляnextCursor.
curl "https://api.millida.trade/v2/rating/api/votes?status=VALID&limit=100" \
-H "X-Api-Key: rsk_live_ВАШ_КЛЮЧ"
Ответ:
{
"votes": [
{
"id": "clx…",
"serverId": "srv…",
"discordId": "123456789012345678",
"nickname": "Steve",
"status": "VALID",
"votedAt": "2026-06-16T10:12:00.000Z"
}
],
"nextCursor": "eyJ…"
}
Чтобы получить следующую страницу, повторите запрос с cursor, равным nextCursor. Когда nextCursor равен null — данные закончились. IP-адреса голосующих через API не передаются.
Статистика
GET /stats отдаёт сводные счётчики по серверу:
{
"serverId": "srv…",
"validToday": 42,
"valid24h": 50,
"valid30d": 1280,
"totalValid": 9001,
"totalAll": 9500
}
Пример: Discord-бот выдаёт роль за голос
async function hasVotedToday(discordId) {
const res = await fetch(
`https://api.millida.trade/v2/rating/api/votes/check?discordId=${discordId}&since=today`,
{ headers: { "X-Api-Key": process.env.MILLIDA_RATING_KEY } },
);
const data = await res.json();
return data.voted === true;
}
Вызовите эту функцию по команде в Discord и выдайте роль, если игрок проголосовал.
Ограничения
- API только на чтение.
- Частота запросов ограничена — для проверки по команде этого достаточно с запасом. Не опрашивайте API в плотном цикле.
- Ключ видит голоса только ваших серверов.