About Poké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. This API powers the Average at Best Battle League platform, providing all the Pokémon data used for team building, draft preparation, and competitive analysis.

Using this API, you can access comprehensive information on Pokémon, their moves, abilities, types, egg groups, and much more—everything you need to excel in competitive Pokémon battles.

How is this used in the Average at Best Battle League?

The Average at Best Battle League platform integrates this API to power core features:

  • Pokédex - Browse and search all Pokémon with detailed stats and information
  • Team Builder - Access move sets, abilities, and type data for team construction
  • Draft Preparation - Research Pokémon before draft day with complete data access
  • Matchup Analysis - Analyze type effectiveness and base stats for strategic planning
  • Competitive Research - Explore moves, abilities, and Pokémon mechanics

Coaches can also use this API documentation to build custom tools, integrate data into their own workflows, or understand how the league platform accesses and displays Pokémon information.

Who built the Average at Best Battle League platform?

The Average at Best Battle League platform and this documentation site were built by Simeon Bowman, a league member and the league's foremost app developer. Simeon architected and developed the entire ecosystem—including the Next.js application, server infrastructure, battle integration, and this API documentation site—specifically for the Average at Best Battle League community.

This comprehensive platform was developed under MOODMNKY LLC, bringing together modern web technologies, battle simulation infrastructure, and comprehensive Pokémon data to create a complete competitive league management system.

The platform integrates PokéAPI data with custom league features including draft management, team rosters, match scheduling, standings tracking, and seamless Discord integration—all designed to enhance the competitive experience for league coaches.

What is an API?

An API (Application Programming Interface) is a contract that allows developers to interact with an application through a set of interfaces. In this case, the application is a database of thousands of Pokémon-related objects, and the interfaces are URL links.

A RESTful API is an API that conforms to a set of loose conventions based on HTTP verbs, errors, and hyperlinks. This makes it easy to access Pokémon data programmatically for use in applications, tools, or integrations like the Average at Best Battle League platform.

Why use a centralized API?

Having a single source of Pokémon data ensures consistency and accuracy across all applications that use it—including the Average at Best Battle League platform.

When new Pokémon games or updates are released, this API is updated once, and all consuming applications (like the league platform) automatically have access to the latest information. This eliminates inconsistencies and ensures coaches always have accurate, up-to-date data for competitive play.

The overall benefit is better collaboration, consistency, and reliability across all Pokémon applications and tools. It's good for developers, coaches, and the entire competitive community!

How much information is available?

A comprehensive database covering all aspects of competitive Pokémon.

We currently have tens of thousands of individual items in our database, including:

  • Moves (with power, accuracy, type, and effects)
  • Abilities (with descriptions and effects)
  • Pokémon (including various forms and variants)
  • Types (with effectiveness charts)
  • Egg Groups
  • Game Versions
  • Items (including held items)
  • Pokédexes
  • Pokémon Evolution Chains
  • Base Stats
  • And much more!

All of this data is essential for competitive play in the Average at Best Battle League. To see all the different types of data available, check out the complete API documentation.

The API is missing something!

We know! Feel free to contribute to open issues on GitHub. The PokéAPI project is open source and community-driven, with contributions from developers worldwide.

If you find data that's missing or incorrect, especially data relevant to competitive play, your contributions help improve the API for everyone—including the Average at Best Battle League community.

So who built this?

PokéAPI 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.

During summer 2018, Paul decided to hand over the project to the community. This is where Tim Malone, Mark Tse, Sargun Vohra, Charles Marttinen, Alessandro Pezzé, Alberto Oliveira da Silva, and Lucio Merotta came together and started planning how to change the infrastructure in order to improve performance and cut down on hosting costs. An important step was to convert the API to serve static JSON files, which was made possible by Sargun and his excellent PokeAPI/ditto tool. The frontend website was also re-built by Charles at the same time. The whole process was completed in October 2018.

After this massive redesign, PokéAPI gained many new consumers due to its new blazing fast performance. To give a quick reference, the loading of the infamous Magikarp pokemon resourcepassed from seconds to ~80ms. An important milestone for the PokéAPI project happened shortly after in summer 2020, when its GitHub repository reached 2000 stargazers and in a single month fulfilled 100 million API calls.

In August 2020 the PokéAPI community decided to temporarily fork veekun/pokedex, which was the primary and only source of data. This operation was planned in order to add new generation-8 data, which Veekun lacked. The following people contributed to fetching and formatting generation-8 and newer data: Alessandro Pezzé, Hoang Quoc Trung, Chandler Mahkorn, André Sousa, Alexander Whan, Austin Jones, tomi-912, Eric Donders, Gaël Dottel,Parnassius and Anh Thang.

In January 2023 bitomic, Kohki Miki, Paul-Émile, tillfox scraped generation 9 data from the web and added it here.

The current owners of the PokéAPI project are Paul Hallett, Tim Malone and Alessandro Pezzé. Alongside them other core maintainers include Charles Marttinen and Sargun Vohra.

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

League Platform Implementation: The Average at Best Battle League platform's custom implementation of this API, including this documentation site, was developed by Simeon Bowman under MOODMNKY LLC. This self-hosted instance ensures optimal performance and reliability for league operations, with custom theming and integration specifically designed for the competitive league environment.

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 Pokéapi.
  • Generation 8 data is scraped from different resources which are considered to be trustful. Later on the data was integrated with the official one released by Veekun.

We'd also like to thank:

  • Laven Pillay, who scraped together most of the sprites used on the site.
  • Alessandro Pezzé, who worked tirelessly to add the Sun/Moon updates.
  • Simeon Bowman of MOODMNKY LLC, who developed and maintains the Average at Best Battle League platform and this custom API documentation site, bringing comprehensive Pokémon data to the competitive league community.

What's the technology stack?

Up until November 2018, the API and website were built together in a single Python project using the Django framework and paired with a PostgreSQL database to store the data. Django REST Framework was used to expose the data through a RESTful API. The entire stack was deployed at DigitalOcean, initially paid by Paul and then sponsored directly by DigitalOcean itself.

In October 2018, the API was converted to serve static JSON files in a fully backwards compatible manner. This allowed PokéAPI to move its hosting to a cheap static hosting solution (Firebase Hosting + Cloudflare Caching), which increased performance and stability by a huge margin.

The move to static hosting was solved by introducing a build step before deployment performed by CircleCI, our build system. This build step starts a local Django copy of PokeAPI/pokeapi and saves each possible endpoint as a JSON file using PokeAPI/ditto. All these JSON files are then uploaded to Firebase and served to the public through a Firebase function actioned by CircleCI.

This website now uses React Static and the code lives in its own GitHub project at PokeAPI/pokeapi.co. Again, CircleCI takes care of deploying it on Firebase as static files.

Average at Best Battle League Platform: The league platform and this documentation site were architected and developed by Simeon Bowman under MOODMNKY LLC. The platform uses a self-hosted instance of PokéAPI for optimal performance and reliability, ensuring fast data access for all league features. The implementation includes a Next.js application with Supabase backend, Docker-based service orchestration, battle simulation infrastructure, Discord integration, and this custom-themed API documentation site—all designed specifically to enhance the competitive experience for Average at Best Battle League coaches.