Repolode
PokeAPI

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. 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. 2

    Install the requirements (uv must be installed first)

    make install
  3. 3

    Set up the local development environment

    make setup
  4. 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