DEV Community

earnnova-dev
earnnova-dev

Posted on

Your job feed is lying: detecting silent JSON API breakage (a stdlib-only GitHub Action)

I consume a lot of public JSON APIs, and the worst failure mode is the one that never throws: the feed still returns HTTP 200 but the shape has quietly changed. A field gets renamed. The item count drops from 800 to 12 overnight. A salary key disappears. An endpoint starts returning an empty array. None of it is an error — your HTTP client is happy — so a plain status-code health check says "all good" while your data is already broken.

That is the gap jobfeed-watchdog (JFW) fills: a stdlib-only GitHub Action and CLI that polls a JSON API and detects the failures a 200 status hides — schema drift (a field added, removed, or changed type), count collapse (record count drops sharply, the "silent outage"), and full outage. Python standard library only: no dependencies, runs in CI, alerts only on a real regression (not normal feed growth).

A liveness ping proves the server is up. It tells you nothing about whether the data is still the shape your pipeline expects. For a job feed, a data vendor, a market-price API, or any JSON source you parse positionally, a 200 with the wrong body is worse than a 500 — the 500 at least pages you at 3am.

JFW snapshots the structure and record counts of each response and compares against a baseline, flagging drift and collapse as actionable alerts.

pip install jobfeed-watchdog
jobfeed-watchdog https://api.example.com/v1/jobs --baseline baseline.json
Enter fullscreen mode Exit fullscreen mode

Free and open. If you watch any public JSON API in production, which "silent" failure mode caught you most? The best ones make great test cases.

Top comments (0)