Documentation de l'API publique
Tout est en lecture seule, tout se fait par pseudo (la casse n'a pas d'importance), et tout répond en JSON.
Authentification
Ta clé voyage dans l'en-tête x-api-key (ou Authorization: Bearer …). Elle s'utilise depuis ton serveur, jamais depuis une page ou une application mobile : une clé lue par un visiteur est une clé perdue.
curl -H "x-api-key: pkm_..." \ https://public.pokemania.top/api/public/v1/whoami
Chaque réponse porte X-RateLimit-Limit et X-RateLimit-Remaining. Au-delà du quota, l'API répond 429 avec un Retry-After : mets en cache plutôt que de boucler.
Annuaire public
Ces données sont déjà visibles en jeu par tout le monde : ta clé suffit.
| Route | Accès requis | Ce que ça renvoie |
|---|---|---|
| GET/whoami | — | Les accès accordés à ta clé. Utile pour vérifier ton branchement. |
| GET/player/:pseudo | player.exists | Existence du compte, date d'arrivée, temps de jeu. |
| GET/player/:pseudo/village | player.village | Village du joueur et ses membres. |
| GET/player/:pseudo/bank | player.bank | Solde, niveau et totaux du compte en banque. |
| GET/player/:pseudo/stats | player.stats | Statistiques de jeu : combat, blocs, pêche, élevage, Pokémon. |
| GET/player/:pseudo/grade | player.grade | Grade VIP/MVP, booster, copaing, bêta-testeur. |
| GET/player/:pseudo/online | player.online | Présence en jeu et serveur courant. |
| GET/player/:pseudo/names | player.name | Historique des pseudos. |
| GET/player/:pseudo/discord | player.discord | Identifiant Discord lié, s'il y en a un. |
| GET/player/:pseudo/shiny-chain | player.shinychain | Chaîne shiny en cours et record. |
| GET/player/:pseudo/pokedex | pokedex.read | Espèces capturées, shinies, progression. |
| GET/player/:pseudo/badges | badges.read | Badges d'arène obtenus. |
| GET/player/:pseudo/jobs | jobs.read | Niveaux, XP et talents des métiers. |
| GET/player/:pseudo/discovery | discovery.read | Carnet de découvertes : minerais, créatures, biomes. |
Données du serveur
| Route | Accès requis | Ce que ça renvoie |
|---|---|---|
| GET/players | player.directory | Annuaire paginé des pseudos (25 par page). |
| GET/players/search?q= | player.directory | Les 10 pseudos les plus proches d'une saisie. |
| GET/villages | village.directory | Liste des villages : recherche, tri, pagination. |
| GET/villages/:tag | village.directory | Fiche d'un village par tag, nom ou identifiant. |
| GET/market/listings | market.read | Annonces en vente à l'hôtel des ventes. |
| GET/market/summary | market.read | Statistiques de prix, objet par objet. |
| GET/status | server.status | Joueurs connectés par serveur et maintenances en cours. |
Au nom d'un joueur
Envoie le joueur sur le portail de connexion avec ton client_id, les accès demandés et une URL de retour déclarée dans ta demande :
https://login.pokemania.top/authorize ?client_id=app_... &redirect_uri=https://ton-site/callback &scope=player.bank%20player.village &state=ton-etat
Le joueur s'identifie (Discord ou code en jeu), voit ton logo et la liste exacte de ce que tu demandes, puis accepte ou refuse. Au retour, ton URL reçoit ?code=ac_…&state=… (ou ?error=access_denied). Échange ce code sous deux minutes :
curl -X POST https://public.pokemania.top/api/public/v1/oauth/token \
-H "x-api-key: pkm_..." \
-H "content-type: application/json" \
-d '{"code":"ac_..."}'Tu récupères un access_token (pat_…) à conserver : il s'envoie ensuite dans x-player-token, en plus de ta clé, sur les routes /me…. Un jeton n'est valable qu'avec la clé qui l'a obtenu, et le joueur peut le révoquer à tout moment.
| Route | Accès requis | Ce que ça renvoie |
|---|---|---|
| POST/oauth/token | — | Échange le code reçu au retour contre un jeton joueur. |
| POST/oauth/revoke | — | Rend le jeton d'un joueur inutilisable. |
| GET/me | player.exists | Le joueur qui a accordé l'accès. |
| GET/me/… | l'accès correspondant | Mêmes chemins que /player/:pseudo/…, au nom du joueur. |
| GET/me/bank/history | bank.history | Transactions bancaires détaillées. Jamais lisible par pseudo. |
Les accès
Ne demande que ceux dont ton application se sert réellement.
Donnée de joueur, lisible par pseudo
player.exists
Vérifier qu'un pseudo existe
Existence du compte, pseudo, date d'arrivée et temps de jeu.
player.village
Lire le village d'un joueur
Village du joueur : nom, tag, niveau, rôle et liste des membres.
player.bank
Lire le solde bancaire d'un joueur
Solde du compte en banque, niveau et totaux déposés/retirés.
player.stats
Lire les statistiques d'un joueur
Statistiques de jeu : temps de jeu, captures, pêche, élevage, blocs, combats.
player.grade
Lire le grade d'un joueur
Grade VIP/MVP et statuts booster, copaing et bêta-testeur.
player.online
Voir si un joueur est en ligne
Présence en jeu et serveur sur lequel le joueur est connecté.
player.name
Lire l'historique des pseudos
Anciens pseudos du compte et date de chaque changement.
player.discord
Lire le Discord lié d'un joueur
Identifiant Discord lié au compte, s'il y en a un.
player.shinychain
Lire la chaîne shiny d'un joueur
Chaîne shiny en cours (espèce et compteur) et meilleur record.
pokedex.read
Lire le Pokédex d'un joueur
Espèces capturées, shinies obtenus et progression du Pokédex.
badges.read
Lire les badges d'un joueur
Badges d'arène obtenus et date d'obtention.
jobs.read
Lire les métiers d'un joueur
Niveau et XP de chaque métier, points de talent gagnés et dépensés.
discovery.read
Lire le carnet de découvertes
Minerais, créatures et biomes découverts par le joueur.
Donnée privée : accord du joueur obligatoire
bank.history
Lire l'historique bancaire d'un joueur
Historique des transactions bancaires : montants, types et dates.
Donnée du serveur, sans joueur particulier
village.directory
Lire l'annuaire des villages
Liste et fiche des villages du serveur, hors joueur particulier.
market.read
Lire l'hôtel des ventes
Annonces en vente et statistiques de prix, hors joueur particulier.
server.status
Lire l'état des serveurs
Nombre de joueurs connectés par serveur et maintenances en cours.
player.directory
Lire l'annuaire des pseudos
Liste paginée des pseudos du serveur et recherche de pseudos proches.
Erreurs
401— clé absente, inconnue ou révoquée ; jeton joueur manquant ou révoqué.403— ta clé n'a pas cet accès, ou le joueur ne l'a pas accordé.404— joueur, village ou route inconnus.429— quota dépassé. AttendsRetry-Aftersecondes.
Tu venais de api.pokemania.top ?
L'API publique a son propre domaine : https://public.pokemania.top. Les chemins n'ont pas bougé — seul l'hôte change. L'ancienne adresse redirige (308) le temps de la transition ; change-la dès que tu peux.