API contract monitor
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.

Other monitored APIs