PokémaniaDéveloppeurs
Référence

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.

RouteAccès requisCe que ça renvoie
GET/whoamiLes accès accordés à ta clé. Utile pour vérifier ton branchement.
GET/player/:pseudoplayer.existsExistence du compte, date d'arrivée, temps de jeu.
GET/player/:pseudo/villageplayer.villageVillage du joueur et ses membres.
GET/player/:pseudo/bankplayer.bankSolde, niveau et totaux du compte en banque.
GET/player/:pseudo/statsplayer.statsStatistiques de jeu : combat, blocs, pêche, élevage, Pokémon.
GET/player/:pseudo/gradeplayer.gradeGrade VIP/MVP, booster, copaing, bêta-testeur.
GET/player/:pseudo/onlineplayer.onlinePrésence en jeu et serveur courant.
GET/player/:pseudo/namesplayer.nameHistorique des pseudos.
GET/player/:pseudo/discordplayer.discordIdentifiant Discord lié, s'il y en a un.
GET/player/:pseudo/shiny-chainplayer.shinychainChaîne shiny en cours et record.
GET/player/:pseudo/pokedexpokedex.readEspèces capturées, shinies, progression.
GET/player/:pseudo/badgesbadges.readBadges d'arène obtenus.
GET/player/:pseudo/jobsjobs.readNiveaux, XP et talents des métiers.
GET/player/:pseudo/discoverydiscovery.readCarnet de découvertes : minerais, créatures, biomes.

Données du serveur

RouteAccès requisCe que ça renvoie
GET/playersplayer.directoryAnnuaire paginé des pseudos (25 par page).
GET/players/search?q=player.directoryLes 10 pseudos les plus proches d'une saisie.
GET/villagesvillage.directoryListe des villages : recherche, tri, pagination.
GET/villages/:tagvillage.directoryFiche d'un village par tag, nom ou identifiant.
GET/market/listingsmarket.readAnnonces en vente à l'hôtel des ventes.
GET/market/summarymarket.readStatistiques de prix, objet par objet.
GET/statusserver.statusJoueurs 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.

RouteAccès requisCe que ça renvoie
POST/oauth/tokenÉchange le code reçu au retour contre un jeton joueur.
POST/oauth/revokeRend le jeton d'un joueur inutilisable.
GET/meplayer.existsLe joueur qui a accordé l'accès.
GET/me/…l'accès correspondantMêmes chemins que /player/:pseudo/…, au nom du joueur.
GET/me/bank/historybank.historyTransactions 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é. Attends Retry-After secondes.

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.

Gérer mon application