Static JSON data for Pokémon, games, Pokédexes, box presets, and related PokéPC metadata.
The package also includes TypeScript helpers, Zod schemas, and an OpenAPI description for serving the dataset as a static JSON API.
pnpm add @pokepc/datasetExample imports:
import bulbasaur from '@pokepc/dataset/data/pokemon/bulbasaur'
import { pokemonSchema } from '@pokepc/dataset/lib/schemas'
const pokemon = pokemonSchema.parse(bulbasaur)JSON imports depend on your runtime or bundler configuration. In this repository, the raw files are
always available under data/.
The OpenAPI docs and static JSON API are hosted on GitHub Pages:
- API client (Swagger UI) https://pokepc.github.io/dataset/
- OpenAPI spec: https://pokepc.github.io/dataset/openapi.json
Apart from being able to use it in your code with validators or generators, when combined with AI agents, it unlocks many extras:
-
Tool calling / agent usage: The LLM can know what endpoints exist and how to call them.
-
Code generation: It can generate typed clients, fetch wrappers, SDK helpers, Zod schemas, etc.
-
Documentation Q&A: Users can ask natural-language questions and the LLM can map them to the right endpoint/schema.
-
Safer answers: Enums like language IDs, generation IDs, region IDs, ribbon IDs, etc. reduce hallucinations.
-
Dataset exploration: The LLM can inspect available resources without manually reading every file.
data/
abilities.json
games/
indices/
metadata/
pokedexes/
pokemon/
boxpresets/
classic/
modern/
Root JSON files are collection files. games/, pokedexes/, and pokemon/ contain one JSON file
per entity. indices/ controls the order of those per-entity files.
Requirements: Node.js 24 and pnpm 11.
pnpm install
pnpm format:check
pnpm typecheck
pnpm test
pnpm buildWhen changing data, run the tests before opening a PR. When changing the static API docs, run
pnpm build:pages and check the local Swagger UI with pnpm dev:openapi.
Build a GitHub Pages-ready artifact:
pnpm build:pagesThis writes:
dist-pages/
index.html
openapi.json
data/
Preview the Swagger UI locally:
pnpm dev:openapiThe dev server runs at http://localhost:4173/ by default. Override the port with
PORT=4174 pnpm dev:openapi or node src/openapi/dev.ts --port=4174.
Edit this checkout's data/ with the local maintainer app:
pnpm dev:editorThe editor runs on http://127.0.0.1:3003 without external-directory configuration.
pnpm dev:openapi starts only the OpenAPI preview, and pnpm dev runs both in parallel. See the
editor guide for editing rules, builds and disposable browser tests.
This dataset uses public data from:
Thanks to everyone who collects and maintains public Pokémon game data.