API VoteServeur v1
Ricompense per i voti dei 68 giochi del catalogo. Stessa API ovunque: server_token + un solo campo identità (username, Steam o Discord — rilevato automaticamente).
URL base
https://voteserveur.fr/api/v1
JSON UTF-8. Rate-limit IP: ~90 req / min sugli endpoint pubblici di lettura; i claim sono più stretti.
Autenticazione
Il server_token (40–64 car.) è visibile solo al proprietario (gestione server). Da tenere segreto.
- Parametro query:
?server_token=TOKEN - Intestazione:
X-Server-Token: TOKEN - Intestazione:
Authorization: Bearer TOKEN
Senza token valido → 404 (non rivela se lo slug esiste).
Percorso giocatore (passo dopo passo)
- Crea la scheda su /it/serveurs/nouveau.
- Scarica il pack su /it/plugins/{game} (token già iniettato).
- Installa il plugin / avvia il poller (vedi
INSTALL.txtnello ZIP). Intervallo consigliato: 10 minuti. - Il giocatore vota con la casella ricompensa spuntata e inserisce un solo identificativo (username / Discord / Steam) — riceve un codice claim (es.
/vsclaim ABC123). - Lo script chiama
GET /votes/pendingpoiGET /votes/claim?identity=…→ seclaimed = 1, assegna la ricompensa una sola volta. Oppure il giocatore reclama viaclaim-code. - Opzionale:
votes/playerper i livelli mensili (5 / 10 / 30 voti…).
GET /votes/claim (consigliato)
Claim unificato: un solo parametro identity. L’API rileva auto username / SteamID64 / Discord. Gli endpoint claim-username / claim-steam / claim-discord restano disponibili (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
Stesso schema claimed 0 / 1 / 2 dei claim storici.
GET /votes/claim-username
Reclama un voto delle ultime 2 ore via username o nome-cognome. Impossibile iniettare un voto.
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": "Voto reclamato"
}
claimed: 0— nessun voto idoneoclaimed: 1— reclamato ora → assegna la ricompensaclaimed: 2— già reclamato
Le varianti di username (Bob, Bob!, B o b, Jean Dupont / JeanDupont) sono unite (stesso giocatore).
GET /votes/claim-steam
GET https://voteserveur.fr/api/v1/votes/claim-steam?server_token=TOKEN&steam_id=76561198000000000
Stesso schema di risposta di claim-username.
GET /votes/claim-discord
Reclama via ID Discord (snowflake 17–20 cifre). Utile per Discord, Habbo collegato a Discord, bot, ecc.
GET https://voteserveur.fr/api/v1/votes/claim-discord?server_token=TOKEN&discord_id=123456789012345678
Accetta anche il formato menzione <@123…>. Stesso schema di risposta di claim-username.
GET /votes/claim-code
Reclama via il codice monouso mostrato dopo il voto (6 car., valido 2 h). Comando in-game consigliato: /vsclaim ABC123.
GET https://voteserveur.fr/api/v1/votes/claim-code?server_token=TOKEN&code=ABC123
Stesso schema claimed 0/1/2. Se il voto aveva uno username, la risposta può includere playername.
GET /votes/check
Verifica senza consumare: 0 non ha votato · 1 già reclamato · 2 votato non reclamato.
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
Indica se l’IP del client HTTP ha un voto recente (anti-abuso lato plugin). Token obbligatorio.
GET https://voteserveur.fr/api/v1/votes/check-ip?server_token=TOKEN
GET /votes/last
Ultimi voti (finestra ~1 h) — debug / overlay Discord.
GET https://voteserveur.fr/api/v1/votes/last?server_token=TOKEN
GET /votes/pending
Voti non reclamati nella finestra di claim (2 h), casella ricompensa spuntata. Una sola richiesta per tutto il server — polling ogni ~10 minuti — l’API restituisce in blocco tutti i votanti non reclamati.
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 }
]
}
Poi chiama claim?identity=… per ogni giocatore online corrispondente.
GET /votes/top
Classifica giocatori aggregata. 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 di un giocatore (mese / totale) — utili per i livelli del poller universale.
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
Info pubbliche della scheda collegata al 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
Codici ed errori
200— OK (anche se claimed: 0)400— parametri mancanti / non validi404— token sconosciuto429— rate-limit
Script e plugin
Pack ZIP generato per ogni gioco (nativo e/o poller universale), token iniettato, riservato al proprietario:
- Indice plugin — una guida di installazione per gioco
- GTA: FiveM + RageMP + SA-MP nello stesso ZIP
- Guide server passo passo: /it/guides
Esempio curl
# Claim
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/claim-username?playername=Nayvroxi'
# Stats mese (livelli)
curl -s -H 'X-Server-Token: TOKEN' \
'https://voteserveur.fr/api/v1/votes/player?playername=Nayvroxi'