A toolkit for building Web APIs on top of Django, with serialization, authentication policies, viewsets, and a browsable API.
PokeAPI/pokeapi
A RESTful and GraphQL API serving structured data about Pokémon, their species, moves, types and more.
- Stars
- 5,454
- Forks
- 1,186
- Open issues
- 141
- Last commit
- 2 days ago
What is it?
PokeAPI is a free, public web API that provides detailed data about the Pokémon franchise, including Pokémon, species, moves, abilities, types, games and sprite and cry resources. Developers can query it over HTTP to build apps, games, bots or teaching material without maintaining their own dataset.
The repository is a Python/Django project that builds a database from CSV data files and serves it through a REST API at /api/v2/. A beta GraphQL endpoint is also available, backed by Hasura in the Docker Compose setup. The project can be run locally with uv and make, or deployed with Docker Compose or Kubernetes manifests included in the repo.
The repo also links to a set of official and community wrapper libraries in languages such as JavaScript, Python, Go, Rust and Kotlin, so client code can be written in the language of your choice.
Key features
- 01Provides REST endpoints under /api/v2/ for Pokémon data.
- 02Offers a beta GraphQL endpoint with example queries.
- 03Builds the database from CSV files in data/v2/csv.
- 04Includes sprite and cry resource URLs in responses.
- 05Can be run locally with Docker Compose or deployed to Kubernetes.
Use cases
- Building a Pokédex or companion app that displays Pokémon stats and sprites.
- Teaching students how to consume a public REST or GraphQL API.
- Prototyping a game or bot that needs Pokémon data without creating a dataset.
- Hosting a private copy of the API for internal testing.
Quick start
- 1
Clone the repository and initialize the cries submodule
git clone https://github.com/PokeAPI/pokeapi.git && cd pokeapi && git submodule update --init data/v2/cries - 2
Install the requirements (uv must be installed first)
make install - 3
Set up the local development environment
make setup - 4
Run the server on port 8000
make serve
Things to know
- The local setup needs the uv tool and a Python environment, so it takes some manual steps.
- Building the database from CSV data is required before the API returns data.
- The sprites submodule is over 10 GB if cloned fully, though it is optional.
In collections
Topics
FAQ
- What is pokeapi?
- A RESTful and GraphQL API serving structured data about Pokémon, their species, moves, types and more. PokeAPI is a free, public web API that provides detailed data about the Pokémon franchise, including Pokémon, species, moves, abilities, types, games and sprite and cry resources. Developers can query it over HTTP to build apps, games, bots or teaching material without maintaining their own dataset.
- Is pokeapi free to use? What license does it have?
- pokeapi is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is pokeapi still maintained?
- Actively maintained. The last commit to pokeapi was on Nov 5, 2026.
- What can I use pokeapi for?
- Building a Pokédex or companion app that displays Pokémon stats and sprites. Teaching students how to consume a public REST or GraphQL API. Prototyping a game or bot that needs Pokémon data without creating a dataset. Hosting a private copy of the API for internal testing.
- How do I install pokeapi?
- Clone the repository and initialize the cries submodule: git clone https://github.com/PokeAPI/pokeapi.git && cd pokeapi && git submodule update --init data/v2/cries Install the requirements (uv must be installed first): make install Set up the local development environment: make setup Run the server on port 8000: make serve
- Where can I get pokeapi?
- The source code and installation instructions are on GitHub: https://github.com/PokeAPI/pokeapi
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source, self-hosted headless CMS in TypeScript that generates REST and GraphQL content APIs from your content models.
Wraps any SQL database with instant REST and GraphQL APIs, a visual admin Studio, and a native MCP server for AI agents.
A PHP framework for building REST and GraphQL APIs with automatic docs, an admin UI, and generated Next.js, Nuxt, or React Native clients.
Go-based API service for classical Chinese poetry, offering REST and GraphQL endpoints over a corpus of nearly 400,000 poems in simplified and traditional Chinese.
Headless CMS PHP app for managing content collections and serving it via REST and GraphQL APIs to any frontend.