A curated list of high-quality Pokémon APIs, datasets, libraries, and developer tools — covering REST APIs, GraphQL, TypeScript packages, and open data sources for building competitive Pokémon applications.
Maintained by the community. Pull requests welcome — see CONTRIBUTING.md.
Last updated: 2026-04-08 · Regulation G (2025 Season)
- REST APIs
- GraphQL APIs
- JavaScript / TypeScript Libraries
- Python Libraries
- Raw Data & JSON Datasets
- Damage Calculation Libraries
- Battle Simulation
- Image & Sprite Resources
- Competitive Data Tools
- Self-Hostable & Open Source
Production-ready REST APIs for querying Pokémon data.
| API | Description | Auth | Rate Limit |
|---|---|---|---|
| PokéAPI | The most comprehensive Pokémon REST API. Covers all generations, moves, abilities, types, and base stats for #001–#1025. Free, no auth required. | None | 100 req/min |
| PokéAPI Mirror (pkmn.cc) | CDN-cached fork of Smogon data with typed responses. Faster for competitive data. | None | Unlimited |
| PokeSprite API | Sprite metadata API with all official Pokémon sprites across generations. | None | N/A |
# Get base stats for Incineroar (#727)
curl https://pokeapi.co/api/v2/pokemon/incineroar
# Get type effectiveness for Fire type
curl https://pokeapi.co/api/v2/type/fire
# Get ability data for Intimidate
curl https://pokeapi.co/api/v2/ability/intimidate| API | Description | Endpoint |
|---|---|---|
| Hasura PokéAPI | Official GraphQL interface for PokéAPI. Supports nested queries across species, moves, abilities, and types. | https://beta.pokeapi.co/graphql/v1beta |
query FastPokemon {
pokemon_v2_pokemonstat(
where: {pokemon_v2_stat: {name: {_eq: "speed"}}}
order_by: {base_stat: desc}
limit: 10
) {
base_stat
pokemon_v2_pokemon { name }
}
}| Package | Description | Install |
|---|---|---|
| @pkmn/data | Typed Pokémon data (stats, moves, items, abilities) for all generations. Used by Pokémon Showdown. | npm i @pkmn/data |
| @pkmn/sim | Pokémon battle simulation engine extracted from PS. Supports Gen 1–9. | npm i @pkmn/sim |
| @pkmn/calc | Damage calculation library implementing the official formula for all generations. | npm i @pkmn/calc |
| pokemon-showdown-client | Official PS web client. Useful reference for battle UI and animation logic. | GitHub only |
| pokedex-promise-v2 | Promise-based Node.js wrapper for PokéAPI with built-in caching. | npm i pokedex-promise-v2 |
import { Generations } from '@pkmn/data';
import { Dex } from '@pkmn/dex';
import { calculate, Pokemon, Move } from '@pkmn/calc';
const gen = new Generations(Dex).get(9);
const result = calculate(
gen,
new Pokemon(gen, 'Koraidon', { nature: 'Adamant', evs: { atk: 252 } }),
new Pokemon(gen, 'Incineroar', { evs: { hp: 252 } }),
new Move(gen, 'Collision Course'),
{ gameType: 'Doubles' }
);
console.log(result.range()); // [min, max] damage| Package | Description | Install |
|---|---|---|
| pokebase | Python wrapper for PokéAPI with smart caching. | pip install pokebase |
| pokepy | Lightweight PokéAPI Python client. | pip install pokepy |
| pykemon | Async Python PokéAPI wrapper (aiohttp-based). | pip install pykemon |
import pokebase as pb
restricted = ['koraidon', 'miraidon', 'kyogre', 'groudon', 'calyrex']
for name in restricted:
poke = pb.pokemon(name)
stats = {s.stat.name: s.base_stat for s in poke.stats}
print(f"{name}: BST={sum(stats.values())} | Spe={stats['speed']}")Ready-to-use JSON and CSV datasets for competitive analysis.
| Resource | Format | Description |
|---|---|---|
| smogon/pokemon-showdown — data/ | JS/JSON | Authoritative competitive Pokémon data: learnsets, formats, move data, item effects |
| PokeAPI/api-data | JSON | Static snapshot of all PokéAPI responses — ideal for offline use or self-hosting |
| fanzeyi/pokemon.json | JSON | Simplified Pokémon data including base stats and types for all 1025 Pokémon |
| pkmn/ps — sets/ | JSON | Curated competitive set data across VGC and Smogon formats |
| Resource | Language | Description |
|---|---|---|
| @pkmn/calc | TypeScript | Full damage formula implementation for Gen 1–9, supports VGC doubles modifiers |
| smogon/damage-calc | TypeScript | The original Smogon damage calculator source. Includes spread move, Tera, and weather modifiers |
| Pokemon Damage Formula | Reference | Bulbapedia official formula documentation with all modifier cases |
For interactive Level 50 VGC damage calculation with all Regulation G modifiers, see the pokestats.cc VGC damage calculator.
| Resource | Language | Description |
|---|---|---|
| smogon/pokemon-showdown | TypeScript | The Pokémon Showdown battle simulator. Full Gen 9 support including Tera types |
| @pkmn/sim | TypeScript | Extracted PS simulation engine — use without the full client |
| Pokemon Showdown (self-host) | TypeScript | Instructions for self-hosting a private PS server |
| Resource | Description | Format |
|---|---|---|
| msikma/pokesprite | Complete Pokémon sprite sheet including all home sprites, forms, and shiny variants | PNG + JSON |
| PokeAPI sprites | Official PokéAPI sprite repository — all Gen 1–9 sprites organized by dex number | PNG |
| pokeres.bastionbot.org | High-res official art for #001–#898, accessed via /{id}.png URL pattern |
PNG |
| Tool | Description |
|---|---|
| Smogon Usage Stats | Monthly usage statistics for all Smogon and VGC formats — updated monthly |
| Pikalytics | VGC usage rates, move data, and item statistics from ranked online battles |
| Limitless VGC Tournament Results | VGC tournament bracket data, team lists, and usage analysis |
| RK9 Tournament Stats | Official Regional and International tournament brackets and team usage |
| pokestats.cc competitive tools | VGC guides, IV/EV calculator, speed tier reference, and damage calculator for Regulation G |
Full projects you can fork and run locally.
| Project | Description | Stack |
|---|---|---|
| PokeAPI | Self-hostable version of the full PokéAPI. Requires Docker. | Django + PostgreSQL |
| pokemon-showdown | Battle simulator — runs via Node.js | Node.js |
| Honko's Damage Calc | Full damage calculator source — deploy as a static site | TypeScript |
See CONTRIBUTING.md for guidelines on adding new APIs, libraries, or tools.
All listed resources must be:
- Actively maintained (last commit within 2 years, or stable and complete)
- Genuinely useful for Pokémon developers or competitive players
- Free or with a meaningful free tier
This list is released under CC0 (Public Domain). Use freely.
