API VoteServeur v1
Récompenses de votes pour les 68 jeux du catalogue. Même API partout : server_token + un seul champ identity (pseudo, Steam ou Discord — détecté auto).
Base URL
https://voteserveur.fr/api/v1
JSON UTF-8. Rate-limit IP : ~90 req / min sur les endpoints publics de lecture ; les claims sont plus stricts.
Authentification
Le server_token (40–64 car.) est visible uniquement par le propriétaire (gestion serveur). À garder secret.
- Query :
?server_token=TOKEN - Header :
X-Server-Token: TOKEN - Header :
Authorization: Bearer TOKEN
Sans token valide → 404 (ne révèle pas si le slug existe).
Parcours joueur (pas à pas)
- Crée ta fiche sur /fr/serveurs/nouveau.
- Télécharge le pack sur /fr/plugins/{game} (token déjà injecté).
- Installe le plugin / lance le poller (voir
INSTALL.txtdans le ZIP). Intervalle recommandé : 10 minutes. - Le joueur vote avec la case récompense cochée et saisit un seul identifiant (pseudo / Discord / Steam) — il reçoit un code claim (ex.
/vsclaim ABC123). - Ton script appelle
GET /votes/pendingpuisGET /votes/claim?identity=…→ siclaimed = 1, donne la récompense une seule fois. Ou le joueur claim viaclaim-code. - Optionnel :
votes/playerpour les paliers mensuels (5 / 10 / 30 votes…).
GET /votes/claim (recommandé)
Claim unifié : un seul paramètre identity. L’API détecte auto pseudo / SteamID64 / Discord. Les endpoints claim-username / claim-steam / claim-discord restent disponibles (compat).
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
Même schéma claimed 0 / 1 / 2 que les claims historiques.
GET /votes/claim-username
Réclame un vote des 2 dernières heures via pseudo ou nom-prénom. Impossible d’injecter un vote.
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": "Vote réclamé"
}
claimed: 0— aucun vote éligibleclaimed: 1— réclamé maintenant → donne la récompenseclaimed: 2— déjà réclamé
Les variantes de pseudo (Bob, Bob!, B o b, Jean Dupont / JeanDupont) sont fusionnées (même joueur).
GET /votes/claim-steam
GET https://voteserveur.fr/api/v1/votes/claim-steam?server_token=TOKEN&steam_id=76561198000000000
Même schéma de réponse que claim-username.
GET /votes/claim-discord
Réclame via ID Discord (snowflake 17–20 chiffres). Utile pour Discord, Habbo lié Discord, bots, etc.
GET https://voteserveur.fr/api/v1/votes/claim-discord?server_token=TOKEN&discord_id=123456789012345678
Accepte aussi le format mention <@123…>. Même schéma de réponse que claim-username.
GET /votes/claim-code
Réclame via le code one-shot affiché après le vote (6 car., valide 2 h). Commande in-game recommandée : /vsclaim ABC123.
GET https://voteserveur.fr/api/v1/votes/claim-code?server_token=TOKEN&code=ABC123
Même schéma claimed 0/1/2. Si le vote avait un pseudo, la réponse peut inclure playername.
GET /votes/check
Vérifie sans consommer : 0 pas voté · 1 déjà réclamé · 2 voté non réclamé.
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
Indique si l’IP du client HTTP a un vote récent (anti-abus côté plugin). Token requis.
GET https://voteserveur.fr/api/v1/votes/check-ip?server_token=TOKEN
GET /votes/last
Derniers votes (fenêtre ~1 h) — debug / overlay Discord.
GET https://voteserveur.fr/api/v1/votes/last?server_token=TOKEN
GET /votes/pending
Votes non réclamés dans la fenêtre de claim (2 h), case récompense cochée. Une seule requête pour tout le serveur — à poller toutes les ~10 minutes — l’API renvoie en bloc tous les votants non réclamés.
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 }
]
}
Ensuite appelle claim?identity=… pour chaque joueur en ligne correspondant.
GET /votes/top
Classement joueurs agrégé. Params : period=month|day|all, limit (max 50).
GET https://voteserveur.fr/api/v1/votes/top?server_token=TOKEN&period=month&limit=10
GET /votes/player (alias /votes/stats)
Stats d’un joueur (mois / total) — utiles pour les paliers du poller universel.
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
Infos publiques de la fiche liée au token.
GET https://voteserveur.fr/api/v1/server?server_token=TOKEN
GET /servers/{token}
Variante path : /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
Codes & erreurs
200— OK (même si claimed: 0)400— paramètres manquants / invalides404— token inconnu429— rate-limit
Scripts & plugins
Pack ZIP généré pour chaque jeu (natif et/ou poller universel), token injecté, réservé au propriétaire :
- Index plugins — un guide d’install par jeu
- GTA : FiveM + RageMP + SA-MP dans le même ZIP
- Guides serveurs pas-à-pas : /fr/guides
Exemple curl
# Claim
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/claim-username?playername=Nayvroxi'
# Stats mois (paliers)
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/player?playername=Nayvroxi'