Ressources

API & intégrations votes

Récompense tes joueurs avec le même modèle mental que NuVotifier : poll, claim, webhook, et des packages officiels en un clic.

Packages téléchargeables

Starters officiels à dézipper, coller le token depuis Mes serveurs, puis démarrer. Mis à jour avec l’API v1.

Documentation API v1

API destinée aux plugins, bots et sites owners. Remplis les champs ci-dessous pour tester les GET (token requis pour les endpoints votes).

Authentification : header Authorization: Bearer TOKEN ou query server_token. Token visible dans Mes serveurs.

Page vote joueur : https://game-rank.com/serveurs/{slug}/voter?pseudo=PlayerName

Votes

GEThttps://game-rank.com/api/v1/votesToken requis

Liste des votes non réclamés

Retourne les votes non claimés du serveur. Avec username, ajoute can_vote et next_vote_at (cooldown 1 h sur le pseudo).

ParamètreTypeDescription
server_token *stringToken votes (query ou Bearer).
usernamestringOptionnel. Filtre + statut de vote pour ce pseudo.

Succès

{
  "server": "mon-slug",
  "votes": [
    { "id": 12, "username": "Steve", "voted_at": "2026-09-12T08:00:00+00:00" }
  ],
  "can_vote": false,
  "next_vote_at": "2026-09-12T09:00:00+00:00"
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/votes/rankingToken requis

Classement des meilleurs voteurs

Classement par pseudo pour le mois en cours (current) ou le mois précédent (previous).

ParamètreTypeDescription
server_token *stringToken votes.
periodstringcurrent (défaut), previous ou all.
limitnumber1–100 (défaut 50).

Succès

{
  "server": "mon-slug",
  "period": "current",
  "ranking": [
    { "rank": 1, "username": "Steve", "votes": 42 },
    { "rank": 2, "username": "Alex", "votes": 17 }
  ]
}

Envoyer une requête exemple

POSThttps://game-rank.com/api/v1/votes/{id}/claimToken requis

Réclamer un vote

Marque un vote comme réclamé après livraison de la récompense in-game.

ParamètreTypeDescription
id *numberIdentifiant du vote (GET /votes).

Succès

{
  "message": "Vote réclamé",
  "vote": {
    "id": 12,
    "username": "Steve",
    "claimed_at": "2026-09-12T08:05:00+00:00"
  }
}

Serveur

GEThttps://game-rank.com/api/v1/servers/{slug}

Informations d’un serveur

Fiche publique : votes, joueurs, rank, score, description, réseaux, avis agrégés.

ParamètreTypeDescription
slug *stringSlug du serveur.

Succès

{
  "slug": "mon-slug",
  "name": "Mon Serveur",
  "game": "minecraft",
  "votes": 120,
  "players": 10,
  "max_players": 64,
  "online": true,
  "rank": 3,
  "gamerank_score": 66.2,
  "discord_url": "https://discord.gg/example",
  "review_count": 4
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/servers/{slug}/reviews

Avis d’un serveur

Liste des avis visibles (max 50).

ParamètreTypeDescription
slug *stringSlug du serveur.

Succès

{
  "server": "mon-slug",
  "reviews": [
    {
      "id": "1",
      "author": "Alex",
      "rating": 5,
      "comment": "Super serveur",
      "created_at": "2026-09-01T12:00:00+00:00"
    }
  ]
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/servers/{slug}/stats

Stats d’un serveur

Votes et clics sur la période day, week ou month.

ParamètreTypeDescription
slug *stringSlug du serveur.
periodstringday | week | month (défaut month).

Succès

{
  "server": "mon-slug",
  "period": "week",
  "votes": 18,
  "clicks": 40,
  "avg_rank": null,
  "avg_players": 12.5,
  "max_players": 64
}

Envoyer une requête exemple

Découverte

GEThttps://game-rank.com/api/v1/games

Liste des jeux

Tous les jeux référencés sur GameRank.

Succès

{
  "games": [
    { "slug": "minecraft", "name": "Minecraft" },
    { "slug": "fivem", "name": "FiveM" }
  ]
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/games/{game}/servers

Classement des serveurs d’un jeu

Listing public trié (votes). Query limit et plateforme.

ParamètreTypeDescription
game *stringSlug du jeu.
limitnumber1–100 (défaut 100).
plateformestringFiltre cross-platform (ex. pc).

Succès

{
  "game": "minecraft",
  "platform": null,
  "servers": [
    {
      "rank": 1,
      "slug": "hypixel",
      "name": "Hypixel",
      "votes": 120,
      "online": true,
      "platform": "pc"
    }
  ]
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/statistics

Statistiques plateforme

Compteurs globaux réels (serveurs, votes jour/semaine/mois).

Succès

{
  "servers": 1200,
  "games": 8,
  "players_online": 4500,
  "votes_today": 320,
  "votes_week": 2100,
  "votes_month": 8000
}

Envoyer une requête exemple

GEThttps://game-rank.com/api/v1/rankings

Top global

Classement global (sort=votes|score).

ParamètreTypeDescription
limitnumber1–100.
sortstringvotes (défaut) ou score.

Succès

{
  "data": [ /* ServerResource */ ],
  "meta": { "sort": "votes", "count": 25 }
}

Envoyer une requête exemple

FiveM (resource packagée)

Préfère le ZIP ci-dessus. Sinon, crée une resource qui poll l’API toutes les 30–60 s, donne une récompense au joueur connecté dont le pseudo correspond à username, puis claim le vote.

-- server.lua (extrait)
CreateThread(function()
  while true do
    local votes = PerformHttpRequestAwait(
      'https://game-rank.com/api/v1/votes?server_token=' .. Config.Token,
      'GET'
    )
    -- pour chaque vote non claimé : GiveItem / notification puis
    -- POST https://game-rank.com/api/v1/votes/{id}/claim
    Wait(30000)
  end
end)

Minecraft (polling NuVotifier-style)

Le package Minecraft contient un script bash + Skript d’exemple. Pas besoin d’un listener NuVotifier réseau : poll GET /api/v1/votes, exécute ta commande reward, puis claim.

# Pseudo-code
votes = http.get("https://game-rank.com/api/v1/votes", bearer=TOKEN)
for vote in votes:
  run("give {username} diamond 1")
  http.post("https://game-rank.com/api/v1/votes/{id}/claim", bearer=TOKEN)

Webhook Discord

Colle une URL https://discord.com/api/webhooks/... dans le champ webhook de ton serveur. Chaque vote envoie un embed Discord automatiquement. Pour un bot commandes (status / lien vote), vois /bot ou docs/discord-bot.md.