TL;DR
PokeAPI is the definitive source for Pokémon data, covering every creature, move, ability, type, and game mechanic across all main series games. Query any Pokémon by name or national Pokédex number to get its base stats, type(s), abilities, evolution chain, egg groups, sprites, and game locations. The dataset is incredibly detailed — it even includes which moves a Pokémon learns at which level and what TMs it can use.
Quick start: https://pokeapi.co/api/v2/pokemon/ditto
No API key needed — just make a request!
How to Use This API
1. Get a Pokémon by Name
https://pokeapi.co/api/v2/pokemon/ditto
Returns Ditto's full data: base stats (all 48s), abilities (Limber, Imposter), type (Normal), sprites (front/back/shiny), and held items. Replace "ditto" with any name or Pokédex number.
2. Get a Pokémon by National ID
https://pokeapi.co/api/v2/pokemon/1
Returns Bulbasaur. IDs 1-1010 are currently available across 9 generations.
3. Get All Pokémon (Paginated)
https://pokeapi.co/api/v2/pokemon?limit=20&offset=0
Returns a paginated list with names and URLs. Use limit (max 100000) and offset for browsing.
4. JavaScript — Pokédex Search
async function getPokemon(nameOrId) {
const resp = await fetch(
`https://pokeapi.co/api/v2/pokemon/${nameOrId}`
);
const p = await resp.json();
return {
name: p.name,
id: p.id,
types: p.types.map(t => t.type.name),
stats: p.stats.reduce((acc, s) => {
acc[s.stat.name] = s.base_stat;
return acc;
}, {}),
sprite: p.sprites.front_default,
height: p.height / 10 + 'm',
weight: p.weight / 10 + 'kg'
};
}
getPokemon(6).then(charizard => {
console.log(`${charizard.name} (#${charizard.id})`);
console.log('Types:', charizard.types.join(', '));
console.log('Stats:', charizard.stats);
});
5. Python — Compare Two Pokémon
import requests
def get_pokemon(name):
resp = requests.get(f'https://pokeapi.co/api/v2/pokemon/{name}')
data = resp.json()
return {
'name': data['name'].title(),
'types': [t['type']['name'] for t in data['types']],
'stats': {s['stat']['name']: s['base_stat']
for s in data['stats']},
'weight': data['weight'] / 10
}
pikachu = get_pokemon('pikachu')
eevee = get_pokemon('eevee')
print(f"{pikachu['name']}: {pikachu['weight']}kg")
print(f"{eevee['name']}: {eevee['weight']}kg")
print(f"Speed diff: {pikachu['stats']['speed'] - eevee['stats']['speed']}")
https://pokeapi.co/api/v2/pokemon/ditto
Frequently Asked Questions
- How many Pokémon are in the API?
- Currently 1,010 Pokémon entries covering all 9 generations (up to Pokémon Scarlet & Violet). This includes alternate forms and Megas where applicable.
- Does it include sprites/images?
- Yes! The API returns front default, front shiny, back default, back shiny, and various other sprites via the
spritesobject. These are official game sprites hosted on the Pokémon Data platform. - Can I get evolution chain data?
- Yes, through the
/evolution-chain/{id}endpoint. Each Pokémon's species endpoint (/pokemon-species/{id}) has a URL to its evolution chain, showing all branches and trigger conditions. - Does it include move data?
- Yes, both
/move/{id}for move details (power, accuracy, PP, type, damage class, effect) and per-Pokémon move lists in the main endpoint including learn methods and level requirements. - What about type effectiveness?
- Use
/type/{name}to get damage relations — which types it's strong/weak/resistant/immune to. For example,/type/watershows Water's strengths (Fire, Ground, Rock) and weaknesses (Electric, Grass). - Are there rate limits?
- PokeAPI has no documented rate limits and is known to be extremely stable and reliable. It's been serving Pokémon data for over a decade without major issues.
API Details
- API URL
https://pokeapi.co/api/v2- Documentation
- pokeapi.co
- Category
- Fun
- Authentication
- Not Required
- Geographic Coverage
- Global
What You Can Build
- Interactive Pokédex with stat charts, type matchups, and sprites
- Team builder showing type coverage and weaknesses
- Evolution chain visualizer with trigger conditions
- Pokémon battle simulator using stat and move data
- Quiz game — "Who's That Pokémon?" using sprite silhouettes