API contract monitor
Do popular APIs still match their own OpenAPI spec? Select an API to see each check.
contracts.live[*]
Latest test resultsPROTOTYPE · 1 RUN
APISpec matchLast runFirst responseVendor status · 45 days
- 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 statusNo machine-readable status feed.
4 of 9 testable APIs drift or were downResponses that don't match the vendor's own published OpenAPI spec: wrong types, nulls the spec doesn't allow, missing required fields.
How we testPortman generates contract tests from each published spec and runs read-only GET requests without credentials. Failures caused by our setup are excluded, not blamed on the vendor.
Vendor statusMirrored from each vendor's public Statuspage feed: days with API incidents over the last 45 days. Spec drift and downtime are different signals; we show both.