TapIn Pokémon

REST API

Every HTTP route the game server answers, with its request body and response.

All routes live under /pokemon-api and take a Authorization: Bearer <ID token> header: the same sign-in token the TapIn app already holds. Bodies are JSON. A failed call answers with an HTTP status and { "code": string, "message": string }; the codes are listed in Error codes.

This page is generated from the PokemonRestApi type in net/protocol.ts. Type names link to Data types.

Trainer

RouteBodyResponse
GET /menullMeResponse
POST /starter{ speciesId: number; nickname: string | null }TrainerState
PATCH /settingsPartial<TrainerSettings>TrainerState

Other trainers

RouteBodyResponse
GET /trainers/:userIdnullTrainerSummary & { party: Array<{ uid?: string; speciesId: number; level: number; shiny: boolean; nickname: string | null }>; };
POST /trainers/batch{ userIds: string[] }Record<string, TrainerSummary>
POST /trainers/by-identity{ identities: string[] }Record<string, TrainerSummary>

Pokémon and items

RouteBodyResponse
GET /pokedexnullPokedexEntryState[]
GET /boxnullOwnedPokemon[]
POST /party{ uids: string[] }TrainerState
PATCH /pokemon/:uid{ nickname: string | null }OwnedPokemon
POST /pokemon/:uid/held-item{ item: ItemId | null }TrainerState
DELETE /pokemon/:uidnullTrainerState
POST /center/healnullTrainerState
GET /martnullArray<{ item: ItemId; price: number }>
POST /mart/buy{ item: ItemId; quantity: number }TrainerState
POST /items/use{ item: ItemId; uid: string; moveIndex: number | null }TrainerState
POST /pending/:id{ accept: boolean; replaceMoveIndex: number | null }TrainerState

Communities and leaderboards

RouteBodyResponse
GET /leaderboardnullLeaderboardEntry[]
GET /communities/:handle/gymnullGymView
PATCH /communities/:handle/gym{ type: PokemonType }GymView
GET /communities/:handle/leaderboardnullLeaderboardEntry[]

Trades

RouteBodyResponse
GET /tradesnullTradeView[]
POST /trades{ toUserId: string; offerUid: string; requestUid: string | null }TradeView
POST /trades/:id{ action: "accept" | "decline" | "cancel"; offerUid: string | null }TradeView

Tournaments

RouteBodyResponse
GET /tournaments/:handlenullTournamentView | null

TapIn Pokémon is an unofficial fan project. Pokémon and all related names and artwork are trademarks and © of Nintendo, Game Freak and Creatures. Legal

On this page