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
  • 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
    Full report →OpenAPI spec last run 1 Nov, 05:52 UTC
    Vendor-reported status

    No 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.