Open data
Does the PokeAPI match its OpenAPI spec?
Partly16 of 20 operations we tested match PokeAPI's published OpenAPI spec; 4 return responses that drift from it (last run 1 Nov 2026).
pokeapi.contract[*]
Spec match
80%
16 of 20 operations
Mismatches
6
distinct findings
First response
0.13s
median of tested calls
Last run
1 Nov
05:52 UTC
Contract vs. published spec
- GET /pokemon/{id}past_abilities[].abilities[].ability is null; the spec requires an object
- GET /pokemon/{id}held_items[] lacks the required "pokemon" property (the spec reuses the wrong schema)
- GET /pokemon/{id}moves[].version_group_details[].order is null; the spec says integer
- GET /item/{id}fling_effect is null; the spec says object and is not nullable
- GET /move/{id}effect_chance is null; the spec says integer
- GET /type/{id}sprites does not match its schema
Vendor-reported status · 45 days
PokeAPI doesn't publish a machine-readable status feed.
Test the PokeAPI yourself
Portman turns the published spec into contract tests and runs them with Newman.
Star Portman685Portman is open source. A star helps other teams find it.
Questions
- Does the PokeAPI match its OpenAPI spec?
- Partly. 16 of 20 operations we tested match PokeAPI's published OpenAPI spec; 4 return responses that drift from it (last run 1 Nov 2026). For example: GET /pokemon/{id}: past_abilities[].abilities[].ability is null; the spec requires an object.
- Where is the PokeAPI OpenAPI spec?
- PokeAPI publishes its OpenAPI description at https://github.com/PokeAPI/pokeapi/blob/master/openapi.yml.
- Is the PokeAPI down?
- PokeAPI does not publish a machine-readable status feed. Our last contract run got responses on 1 Nov 2026.
- How can I contract-test the PokeAPI myself?
- Run Portman against the spec: npx @apideck/portman -u https://raw.githubusercontent.com/PokeAPI/pokeapi/master/openapi.yml --runNewman. Portman generates contract tests for every operation and checks status codes, content types and response schemas.