ℹ️ Important :
- Format : tous les endpoints retournent du JSON (
Content-Type: application/json) - Auth : pour les routes AUTH, inclure
Authorization: Bearer <token JWT>dans les headers - Token : obtenu via
POST /api/auth/connexion - Rate limiting : 100 requêtes/min par IP (anonyme), 300/min (authentifié)
- Erreurs : code HTTP 4xx/5xx + JSON
{ "error": "message" }
🔐 Authentification
POST
/api/auth/inscription
Créer un nouveau compte. Email vérification requise.
Body : { username, email, password, prenom, ville, pays, rgpd_consent, turnstile_token }
POST
/api/auth/connexion
Se connecter. Retourne un token JWT (24h).
Body : { email, password, turnstile_token }
Réponse : { token, joueur: { id, username, email, role, ... } }
GET
/api/auth/profil-public?username=X
Profil public d'un joueur (stats, palmares, équipes, badges).
🏆 Tournois
GET
/api/tournois
Liste de tous les tournois publics. Retourne aussi
mesInscriptions si auth.
GET
/api/tournois/:id
Détails d'un tournoi : participants, dates, prix, statut.
GET
/api/tournois/:id/bracket
Bracket du tournoi avec matchs, scores, vainqueurs.
POST
/api/tournois/:id/inscrire
AUTH
S'inscrire à un tournoi (solo). Body optionnel :
{ invitation_token } pour les privés.
DELETE
/api/tournois/:id/inscrire
AUTH
Se désinscrire d'un tournoi.
📊 Stats publiques
GET
/api/stats-publiques
Stats agrégées (joueurs, tournois, matchs, équipes). Cache 5 min.
GET
/api/stats-detaillees
Stats détaillées + top 5 joueurs + top 5 jeux + inscriptions par mois.
GET
/api/stats-joueur/:username/evolution
Stats avancées d'un joueur : évolution 12 mois, top jeux, heatmap.
GET
/api/stats-joueur/vs/:u1/:u2
Comparateur head-to-head entre 2 joueurs.
🎮 Communauté
GET
/api/equipes
Liste des équipes actives. Filtres :
?q=search&jeu=X.
GET
/api/equipes/:id
Détails d'une équipe + membres.
GET
/api/badges
Catalogue des 24 badges débloquables.
GET
/api/badges/joueur/:username
Badges débloqués par un joueur.
GET
/api/pronostics/leaderboard
Top 20 pronostiqueurs publics.
GET
/api/jeux
Catalogue des 27+ jeux supportés.
GET
/api/recrutement
Annonces de recrutement actives. Filtres :
?type=X&jeu=Y.
GET
/api/polls
Polls (sondages) communautaires actifs avec totaux.
🤖 Assistant d'aide
POST
/api/aide-chat/chat
Pose une question au chatbot. Retourne réponse + articles pertinents + quick-replies.
Body : { message, contexte? }
Réponse : { reponse, articles: [...], quick_replies: [...], ai_utilisee: bool }
📚 Ressources
- Sitemap XML : toutes les pages publiques + tournois + articles + équipes
- robots.txt : règles d'indexation
- CGU : conditions d'utilisation
- Confidentialité : RGPD + Loi 09-08
- Contact : support
🚀 Besoin d'un endpoint qui n'est pas listé ? Contacte le support via /contact.