API VoteServeur v1
Нагороди за голоси для 68 ігор у каталозі. Та сама API скрізь: server_token + одне поле ідентифікації (нік, Steam або Discord — визначається автоматично).
Базовий URL
https://voteserveur.fr/api/v1
JSON UTF-8. Ліміт IP: ~90 зап. / хв на публічних ендпоінтах читання; claim суворіші.
Автентифікація
server_token (40–64 симв.) бачить лише власник (керування сервером). Тримайте в секреті.
- Запит:
?server_token=TOKEN - Заголовок:
X-Server-Token: TOKEN - Заголовок:
Authorization: Bearer TOKEN
Без валідного токена → 404 (не розкриває, чи існує slug).
Шлях гравця (покроково)
- Створіть картку на /ua/serveurs/nouveau.
- Завантажте пакунок на /ua/plugins/{game} (токен уже вбудовано).
- Встановіть плагін / запустіть поллер (див.
INSTALL.txtу ZIP). Рекомендований інтервал: 10 хвилин. - Гравець голосує з позначеною галочкою нагороди і вводить один ідентифікатор (нік / Discord / Steam) — отримує код claim (напр.
/vsclaim ABC123). - Скрипт викликає
GET /votes/pending, потімGET /votes/claim?identity=…→ якщоclaimed = 1, видайте нагороду один раз. Або гравець забирає черезclaim-code. - Опційно:
votes/playerдля місячних рівнів (5 / 10 / 30 голосів…).
GET /votes/claim (рекомендовано)
Єдиний claim: один параметр identity. API сама визначає нік / SteamID64 / Discord. Ендпоінти claim-username / claim-steam / claim-discord лишаються (сумісність).
GET https://voteserveur.fr/api/v1/votes/claim?server_token=TOKEN&identity=Pseudo
GET https://voteserveur.fr/api/v1/votes/claim?server_token=TOKEN&identity=76561198000000000
GET https://voteserveur.fr/api/v1/votes/claim?server_token=TOKEN&identity=123456789012345678
Та сама схема claimed 0 / 1 / 2, що й у старих claim.
GET /votes/claim-username
Забирає голос за останні 2 години за ніком або ім’ям-прізвищем. Підставити голос неможливо.
GET https://voteserveur.fr/api/v1/votes/claim-username?server_token=TOKEN&playername=Pseudo
GET https://voteserveur.fr/api/v1/votes/claim-username?server_token=TOKEN&playername=Jean%20Dupont
{
"code": 200,
"success": true,
"claimed": 1,
"message": "Голос отримано"
}
claimed: 0— немає підхожого голосуclaimed: 1— отримано зараз → видайте нагородуclaimed: 2— вже отримано
Варіанти ніка (Bob, Bob!, B o b, Jean Dupont / JeanDupont) об’єднуються (один гравець).
GET /votes/claim-steam
GET https://voteserveur.fr/api/v1/votes/claim-steam?server_token=TOKEN&steam_id=76561198000000000
Та сама схема відповіді, що й у claim-username.
GET /votes/claim-discord
Забір за ID Discord (snowflake 17–20 цифр). Зручно для Discord, Habbo з Discord, ботів тощо.
GET https://voteserveur.fr/api/v1/votes/claim-discord?server_token=TOKEN&discord_id=123456789012345678
Також приймає формат згадки <@123…>. Та сама схема відповіді, що й у claim-username.
GET /votes/claim-code
Забір за одноразовим кодом після голосування (6 симв., діє 2 год). Рекомендована команда в грі: /vsclaim ABC123.
GET https://voteserveur.fr/api/v1/votes/claim-code?server_token=TOKEN&code=ABC123
Та сама схема claimed 0/1/2. Якщо в голосі був нік, у відповіді може бути playername.
GET /votes/check
Перевірка без списання: 0 не голосував · 1 вже отримано · 2 голосував, не отримано.
GET https://voteserveur.fr/api/v1/votes/check?server_token=TOKEN&playername=Pseudo
GET /votes/check-steam
GET https://voteserveur.fr/api/v1/votes/check-steam?server_token=TOKEN&steam_id=7656119…
GET /votes/check-discord
GET https://voteserveur.fr/api/v1/votes/check-discord?server_token=TOKEN&discord_id=123456789012345678
GET /votes/check-ip
Чи має IP HTTP-клієнта нещодавній голос (антиаб’юз для плагіна). Потрібен токен.
GET https://voteserveur.fr/api/v1/votes/check-ip?server_token=TOKEN
GET /votes/last
Останні голоси (вікно ~1 год) — налагодження / Discord-оверлей.
GET https://voteserveur.fr/api/v1/votes/last?server_token=TOKEN
GET /votes/pending
Незабрані голоси у вікні claim (2 год), галочка нагороди. Один запит на весь сервер — опитувати приблизно кожні ~10 хвилин — API одразу віддає всіх незабраних.
GET https://voteserveur.fr/api/v1/votes/pending?server_token=TOKEN&limit=50
{
"success": true,
"votes": [
{ "id": "…", "playername": "Pseudo", "steam_id": null, "discord_id": "123…", "created_at": "…", "created_ts": 1710000000 }
]
}
Потім викличте claim?identity=… для кожного відповідного онлайн-гравця.
GET /votes/top
Агрегований рейтинг гравців. Params: period=month|day|all, limit (макс. 50).
GET https://voteserveur.fr/api/v1/votes/top?server_token=TOKEN&period=month&limit=10
GET /votes/player (аліас /votes/stats)
Статистика гравця (місяць / усього) — для рівнів універсального поллера.
GET https://voteserveur.fr/api/v1/votes/player?server_token=TOKEN&playername=Pseudo
GET https://voteserveur.fr/api/v1/votes/stats?server_token=TOKEN&steam_id=7656119…
{
"success": true,
"player_name": "Pseudo",
"votes_month": 12,
"votes_total": 48
}
GET /server
Публічна інформація картки, прив’язаної до токена.
GET https://voteserveur.fr/api/v1/server?server_token=TOKEN
GET /servers/{token}
Варіант шляху: /servers/{token}, /full, /stats, /advices, /players-ranking.
GET https://voteserveur.fr/api/v1/servers/TOKEN
GET https://voteserveur.fr/api/v1/servers/TOKEN/full
GET https://voteserveur.fr/api/v1/servers/TOKEN/stats
GET https://voteserveur.fr/api/v1/servers/TOKEN/advices
GET https://voteserveur.fr/api/v1/servers/TOKEN/players-ranking
Коди та помилки
200— OK (навіть якщо claimed: 0)400— відсутні / невірні параметри404— невідомий токен429— ліміт запитів
Скрипти та плагіни
ZIP-пакунок для кожної гри (нативний і/або універсальний поллер), токен вбудовано, лише власник:
- Індекс плагінів — гайд встановлення на кожну гру
- GTA: FiveM + RageMP + SA-MP в одному ZIP
- Покрокові гайди по серверах: /ua/guides
Приклад curl
# Claim
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/claim-username?playername=Nayvroxi'
# Статистика за місяць (рівні)
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/player?playername=Nayvroxi'