Logo

Documentation ServerBoost

Guide d'utilisation et referencement serveur

Cette documentation explique l'API vote, les endpoints publics et les bonnes pratiques pour integrer correctement ton serveur prive sans erreurs de suivi.

Essai (token + IP)

Teste uniquement GET /api/v1/servers/<SERVER_TOKEN>/votes/<IP>. Ça n’ajoute aucun vote : c’est une route de lecture.
URL principal : https://localhost
/api/v1/servers/<SERVER_TOKEN>/votes/<IP>
{ "hint": "Clique sur Tester…" }
Interprétation :
success: true → l’IP est en cooldown (attendre next_vote_seconds)
success: false → pas de vote récent, vote possible
Pass-through : si une règle “Advanced” a l’option Pass-through, la réponse reste 200 et un champ firewall est injecté.

Exemples téléchargeables (owners)

Exemples prêts à l’emploi pour vérifier un vote et créditer des coins via SQL (requêtes préparées). Pense à rendre la récompense idempotente (une seule fois par vote/IP/période).
Ces exemples sont génériques. Adapte l’accès DB, les noms de tables/colonnes et la logique de vérification selon ton serveur.

Endpoints

Tous les endpoints ci-dessous sont disponibles en GET et utilisent le même token serveur. Le firewall “advanced” s’applique via le contexte server-api.
Langage
curl -s "/api/v1/servers/<SERVER_TOKEN>/votes/1.2.3.4"
Response
{
  "success": true,
  "data": {
    "username": null,
    "voted_at": 1765755290,
    "is_connected": true,
    "is_subscriber": false,
    "next_vote_seconds": 3803
  }
}
{
  "success": false,
  "message": "Pas ou déjà voté",
  "data": {
    "username": null,
    "voted_at": null,
    "is_connected": false,
    "is_subscriber": false,
    "next_vote_seconds": 0
  }
}
Infos
Vérifie si une IP est en cooldown (fenêtre 24h).
Firewall (pass-through) : si une règle correspond, tu peux recevoir en plus : {"firewall":{"error":"...","reason":"adv_rate_limit","retryAfterSec":30,"ruleId":"ar_xxx"}}
Langage
curl -s "/api/v1/servers/<SERVER_TOKEN>/statistics"
Response
{
  "success": true,
  "data": {
    "server": { "id": 123, "slug": "mon-serveur", "name": "Mon Serveur" },
    "rank": 7,
    "votes_total": 1234,
    "votes_month": 56,
    "clicks_month": 789,
    "reviews_total": 12,
    "rating_avg": 4.6
  }
}
Infos
Statistiques publiques (rang, votes total/mois, clics mois, avis total, moyenne).
Langage
curl -s "/api/v1/servers/<SERVER_TOKEN>/subscribers"
Response
{
  "success": true,
  "data": [
    { "id":"sub_abc", "username":"player", "plan":"premium", "active":true, "visible":true, "createdAt":"2025-12-15T00:00:00.000Z" }
  ]
}
Infos
Liste des abonnés (gérée côté admin). visible:false n’apparaît pas.
Langage
curl -s "/api/v1/servers/<SERVER_TOKEN>/voters"
Response
{
  "success": true,
  "data": [
    { "username": "player", "ip": "1.2.*.*", "votes": 12 }
  ]
}
Infos
Top voteurs du mois (IP masquée).

Erreurs & codes

200 : succès (ou “success:false” selon l’endpoint).
400 : requête invalide.
404 : serveur introuvable / banni / token invalide.
429 : bloqué par firewall (reason, retryAfterSec, ruleId).
500 : erreur serveur.