PokéAPI
PokéAPI (pokeapi.co) is a free, open-source RESTful and GraphQL API serving comprehensive Pokémon data — including Pokémon species, abilities, moves, items, types, locations, evolution chains, encounters, berries, contests, games, and machines. Built as an educational tool licensed under BSD-3-Clause, it is community-funded via Open Collective and GitHub Sponsors, requires no authentication, and is hosted with a fair-use policy encouraging clients to cache responses locally. The API powers tutorials, fan apps, machine-learning experiments, and game tooling worldwide and consistently serves one billion-plus requests per month.
APIs
PokéAPI REST API v2
The PokéAPI v2 REST API exposes the canonical Pokémon dataset across 12 resource families and roughly 60 endpoints — Pokémon, Pokémon Species, Abilities, Moves, Types, Items, Be...
PokéAPI GraphQL API (Beta)
The PokéAPI GraphQL beta exposes the same Pokémon dataset as the REST API through a single endpoint with field-level selection, joins, and filtering. It is well suited to client...
Collections
PokéAPI
OPENGraphQL
PokéAPI GraphQL API
The PokéAPI GraphQL beta exposes the same Pokémon dataset as the REST API through a single endpoint with field-level selection, joins, and filtering. It is well suited to client...
GRAPHQLFeatures
All endpoints are publicly accessible without API keys, tokens, or signup.
Choose REST under /api/v2 or GraphQL at beta.pokeapi.co/graphql/v1beta — same dataset, two access patterns.
Roughly 60 endpoints covering Pokémon, species, moves, abilities, items, berries, types, locations, encounters, evolution chains, contests, games, and machines.
Data spans every released generation of Pokémon games with version-specific and version-group-specific resource variants.
Names, flavor text, and descriptions are returned in multiple languages selectable via the Language utility resource.
Resources are immutable game data — responses are highly cacheable, and the fair-use policy actively encourages clients to cache locally.
Companion sprites repo (PokeAPI/sprites) provides every official artwork, sprite, and shiny variant referenced by the REST responses.
PokeAPI/api-data publishes a static JSON snapshot of every resource for offline / build-time use cases.
Docker image, Kubernetes Kustomize manifests, and Firebase deployment scripts let teams run a private mirror.
Source code, sprites, GraphQL schema, and client wrappers are open source.
Use Cases
Build mobile, web, or desktop Pokédex applications that render species, abilities, moves, and sprites.
Power competitive team-builder, damage-calculator, and battle-simulator tools with type matchups, base stats, and movesets.
PokéAPI is widely used in tutorials teaching REST, GraphQL, caching, pagination, and client-side data binding.
Researchers use the static dataset to train and benchmark recommendation, embedding, and image-classification models on Pokémon entities.
A favorite first example for MCP servers, agent demos, and tool-use tutorials — the data is rich, recognizable, and unauthenticated.
Provide reference data for fan-built wikis, trading marketplaces, and card-collection trackers.
Integrations
Browser-friendly async JavaScript wrapper with built-in cache.
Node.js / TypeScript promise-based client.
Python 3 wrapper covering all v2 endpoints.
Alternative Python wrapper for PokéAPI.
Kotlin Multiplatform client for PokéAPI.
Companion repo of sprite images served alongside REST responses.
GitHub-hosted JSON snapshot for offline / build-time consumption.
Numerous community MCP servers wrap PokéAPI as agent tools (poke-mcp, pokeapi-mcp-server, MCP_Pokemon, pokedex-mcp, etc.).