PokéData - Static Pokémon API
Table of Contents
- 1. Features
- 2. Installation
- 3. Roadmap
- 4. Links
- 5. License
The main difference, apart from the simplified API format (less calls are needed for getting more info), is that the PokéData API doesn't need a server to work and can be served offline, since it is based purely on static JSON files structured directories similar to RESTFul naming patterns. This is perfect for single-page static webapps capable of working offline or for any kind of project that doesn't want to rely on an external API server.
- Static API based on JSON files
- Veekun Pokédex support as data source
- Intuitive and optimized API schema
- Embedded icon sprites for Pokémon and Items (the API provides base64 encoded images)
- API documentation based on the Open API 3.0 specification
- Docker builds for every release
You can download the generated static API files or install the project following one of the next options.
If you want to contribute to this project, you will need these requirements in your computer:
- MacOS or Linux
- PHP 7.3+
- gettext or gettext-base (needed for envsubst)
Cloning the project and setting up the environment:
git clone https://github.com/capsulemonsters/pokedata.git cd pokedata src/Resources/scripts/install.sh
After the project is installed, the build scripts can be used to generate the API. The most important ones are:
src/Resources/scripts/build-api.sh: Builds the API under the
src/Resources/scripts/build-api-docs.sh: Builds the API docs under the
src/Resources/scripts/build-src-yaml.sh: Builds the YAML files under the
There are also other scripts under the
src/Recources/scripts directory, but they are mainly used by Travis CI
and other scripts, so most of the time there is no need to call them manually.
You can also run
make locally to generate the API, the API docs and the
pokedata-api docker image,
which provides a container with the generated API, served with nginx.
Optionally, you also have the option to consume the API with a ready-to use Docker container, which already contains the generated API and it is served with nginx.
The API will be found under the
/api base URL, while the docs under
/docs, just like in the official project
To start a new API instance simply run
docker run -d itsjavi/pokedata-api.
You can check the list of available builds in Docker Hub.
The docker image versions always match the project semver tags.
The generated API is also available as NPM package
and can be installed using
npm i pokedata.
Apart from the current TO-DO's list, these are some of the goals of this project:
- Timecapsule for consulting data of past and future generations.
- Static Pokémon API using JSON files and the Open API (Swagger) spec.
- Markdown-based Pokédex reference pages, to have an offline Pokédex that can be used anytime.
- CSS Sprite-sheet for all icons of Pokémon and items.
- Use YAML for adding/removing/editing data instead of complicated table structures, so new data can be added easier without depending on external data sources.
- Bring consistency to the different popular Pokémon projects and make them interoperable using common identifiers (e.g.: veekun, showdown, smogon).
- Become a standard resource for building any kind of fan-made Pokémon project, to keep inter-compatibility.
- Support for Smogon and Showdown identifiers.
- Port of Pokémon Showdown data e.g.: pokemon changelog through generations, move effects, pokemon tiers, pokemon movesets, etc.
- Add Pokémon GO data (pokemon stats and moves).
- Add Pokémon Let's GO Pikachu/Eevee data.
- Add Pokémon Sword and Shield data (starting from December 2019).
This software is copyrighted and licensed under the MIT license.
This software comes bundled with data and graphics extracted from the Pokémon series of video games. Some terminology from the Pokémon franchise is also necessarily used within the software itself. This is all the intellectual property of Nintendo, Creatures, inc., and GAME FREAK, inc. and is protected by various copyrights and trademarks.
The authors believe that the use of this intellectual property for a fan reference is covered by fair use and that the software is significantly impaired without said property included. Any use of this copyrighted property is at your own legal risk.
This software is not affiliated in any way with Nintendo, Pokémon or any other game company.
A complete revision history of this software is available from https://github.com/capsulemonsters/pokedata