When your app breaks at 2am, know in 5 seconds if it's your bug or their outage. Real checks against real endpoints — no vendor spin.
Official status feeds + real latency probes, measured from your browser right now.
90% of vendor StatusPages show "operational" during partial outages. APIDoctor probes the actual API surface — the same one your code hits — so you see reality, not marketing.
One 500 is a fluke. A latency spike across every probe is an incident. The Pulse Board's verdict engine aggregates every probe to tell you whether the problem is isolated to you.
Exponential backoff with jitter. Never hammer a degraded API — you'll make their incident worse and get yourself rate-limited on top of it.
delay = min(cap, base * 2**attempt)
sleep(delay/2 + random()*delay/2)If a vendor's p95 is 400ms, a 30s timeout is a hang, not patience. Set timeouts at 3–5× healthy p95 and fail fast into your fallback path.
timeout = clamp(p95 * 4, 1s, 8s)Queue writes, serve stale caches for reads, and degrade features instead of pages. Your users should learn about vendor outages from your changelog — not your error page.
Timestamp, endpoint, latency, status codes. When the vendor's postmortem lands, you'll have receipts — and a case for SLA credits.