Issue Nº 02 — Aug 13, 2026
PokéAPI: the Pokémon dataset with no key and (almost) no limit
Issue two covers a RESTful catalogue of species, moves, abilities, and evolution chains that's been keyless since launch. We re-checked every claim this week, including the fair-use policy that replaced its old rate limit.
What it covers
PokéAPI is a single RESTful dataset spanning every mainline Pokémon game: species, moves, abilities, held items, types, egg groups, and full evolution chains, plus the sprite artwork the games shipped. Coverage runs from Generation I through Generation IX; we pulled the species record for Sprigatito, one of the newest starters, and its generation field pointed straight at generation-ix. Resources cross-reference each other too, so Pikachu's species record links to its own evolution chain and egg groups instead of making a client guess at IDs.
We called both of the hero endpoints recorded on GreatAPIs this week with a browser-style Origin header: GET /api/v2/pokemon/{id}/ and GET /api/v2/type/{id}/. Both came back over HTTPS with an access-control-allow-origin: * header, matching the CORS support already on file.
No key required, but there's a catch
Every one of those calls worked with no API key, no login, and no User-Agent header. It's a read-only API, only GET is exposed, so there's nothing to authenticate in the first place. The real gate is the fair use policy: the docs ask every developer to cache responses locally instead of re-requesting them, and warn that an IP ignoring that will be banned outright. Hard rate limiting itself was removed back in 2018, when the project moved to static hosting, so what's left now reads more like a request for good manners than a technical wall.
JSON now, GraphQL if you want it
Every response comes back as plain JSON; there's no XML or CSV option baked into the API itself. If a tree of REST calls feels wasteful for a given screen, a beta GraphQL endpoint at graphql.pokeapi.co/v1beta2 takes POST queries and ships its own in-browser console, though the docs say plainly that it's rate-limited and still subject to change, unlike the wide-open REST side. Four SDKs cover JavaScript, Node.js, Python, and Kotlin, each documented as shipping with automatic caching built in, and the project's own docs list more than a dozen further community wrappers in languages from Swift to Go.
Why it's worth a look
For anything that just needs structured game data without setup friction, a Discord bot or a weekend project, PokéAPI clears the two usual hurdles in one move: no signup, no key, and enough cross-linked detail that most casual integrations never need a second source. A production backend under real load is a worse fit. It's a shared host with no published SLA, and the fair use policy exists to protect exactly that shared capacity. The project's GitHub repository ships the same dataset as an open-source, self-hostable build for anyone who outgrows the public instance, but for a hobby project or a classroom exercise, calling the public host directly is about as easy as fetching Pokémon data gets.
Pokéapi, by the numbers
No hard limit — fair-use policy, cache responses locally
- GET/api/v2/pokemon/{id}/
- GET/api/v2/type/{id}/