Case 001

We verified every documented call in a public API. All 11 passed.

Open Brewery DB's documentation is accurate. We are publishing that unchanged — including the false positive our own tool produced first, and how it was caught before it would have reached a client.

Result

11 / 11 verified · 0 defects

Every documented call executed against the live API. Every one of the 16 documented response fields checked for presence and for the exact type the docs state.

$ node bin/proofpath.mjs contracts/openbrewerydb.json ProofPath — Open Brewery DB v1 https://api.openbrewerydb.org/v1 ✓ List Breweries 200 144ms ✓ List Breweries — per_page 200 108ms ✓ List Breweries — by_city filter 200 248ms ✓ List Breweries — by_type filter 200 59ms ✓ List Breweries — by_country filter 200 48ms ✓ List Breweries — pagination 200 97ms ✓ Random Brewery 200 279ms ✓ Search Breweries 200 378ms ✓ Metadata 200 238ms ✓ Single Brewery by obdb-id 200 39ms ✓ Unknown brewery id → 404 404 272ms 11/11 documented calls verified findings: 0 high · 0 medium · 0 low

longitude and latitude are documented as number or null — a field pair where APIs very often return strings instead. Theirs return numbers, exactly as written.

One neutral observation

/breweries/meta documents its query parameters but has no response-fields table. The shape it returns — total, by_state, by_country, by_type, page, per_page — is undocumented.

That is not a defect in anything they claim. It is a gap in what they claim. A developer integrating against it is reading the JSON to find out.

The mistake we made

Our first run reported three defects: total, page and per_page returning numbers where the docs said string.

That finding was false. Manual verification showed the docs specify no response fields for that endpoint at all. The string types existed only in our own contract. We had invented a claim, then reported the API for failing to meet it.

This is exactly the failure this service exists to prevent, committed by the service itself on its first run. It is also why no finding reaches a client without manual verification against the vendor's own published words. The tool proposes; a person disposes. We caught it in minutes because that rule was already in place — and it is in this case study because a verification company that hides its own errors is selling something it does not practise.

What you receive

Book a sprint