The RESTful Pokémon Data API

What is this?

This website provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to Pokémon. We specifically cover the video game franchise, though we'd like to cover the card game too. Using this website, you can consume information on Pokémon, their moves, abilities, types, egg groups and much much more.

What exactly is an API?

This is probably worth clearing up very quickly for those who don't know.
An API (Application Programming Interface) is a set of interfaces (in this case, url links) that are publicly available, that allow developers to interact with an application.
In this instance; the application is a database of thousands of pokemon-related objects.

Aren't there 101 other Pokémon websites already?

Yes and that's exactly the problem!

101 instances of the same website means 101 instances of the same data.

We aim to provide a single database that any number of other websites can consume and use.

Often, and especially when new Pokémon games or updates are released, those 101+ websites take weeks to update as people have to enter the same information in all those different places.

This solves that problem.

If all those sites consumed their data from here, they would have the exact same information that is updated at exactly the same time, with no errors between each website.

The overall benefit is a better collaboration and consistency across all the different Pokémon websites and applications. It's good for all!

How much information is stored here?

We're glad you asked because we've got an impressive amount of data!

We currently have individual items in our database:

  • Moves
  • Abilities
  • Types
  • Egg groups
  • Versions
  • Items
  • Pokedexes
  • Pokémon (includes various forms)

And that's just scratching the surface!

The server has processed 221,612,800 api calls at an average of 83,976 calls per day.

The API is missing stuff!

We know! Feel free to contribute to open issues on GitHub.
Have ideas for new features? We're on Slack! Sign up right here then visit our slack team.

So who built this?

Pokémon V1 was created by Paul Hallett as a weekend project but it quickly became more than a weekend's worth of work. In December of 2014 Paul deprecated V1 in favor of working on V2.

This is where Zane Adickes jumped in. Zane thought the original project was a fantastic idea and wanted to help it grow. With direction from Paul, Zane created the V2 api using an exact mirror of Veekun's data related to the main series of games.

We have a GitHub organisation of contributors that you are welcome to join!

Where did you get all of this data?

We gathered the information on this site from various resources:

  • Veekun has a fantastic Pokedex which is also an open source project containing a ton of csv data. We used this to flesh out the database that powers Pokeapi.
  • Bulbapedia has a tonne of extra information that proved useful when designing models and documenting resources.

We'd also like to thank:

  • Laven Pillay, who scraped together most of the sprites used on the site.
  • Alessandro Pezze, who worked tirelessly to add the Sun/Moon updates.

What's the technology stack?

The website framework is Django, a super awesome framework built around Python.
We use a Postgres database to store all our data.
We use Django REST Framework to expose our data through a RESTful API.
We're hosted on DigitalOcean servers, who cover the cost of the servers, for free! We <3 them.