Inspection API
Operational
POST /api/v1/inspect with a small PDF, plus the health endpoint
99.47% over 90 days (69 measured) 100.00% over 30 days 802 ms mean today
Website (pages served)
Operational
tamperlens.com returns its pages: the home page, the guides, the tool landers
99.49% over 90 days (69 measured) 100.00% over 30 days 362 ms mean today
Free checker (scripts load and parse)
Operational
every script the checker page loads is fetched and parsed, and one of them must assign the globals the page reads on load. This is the check that would have caught the 2026-08-04 outage, where the HTML answered 200 for two days with every script broken
98.85% over 90 days (69 measured) 100.00% over 30 days 1375 ms mean today
Pricing and billing quotes
Operational
GET /api/v1/pricing: what Stripe will charge, in the caller's currency
99.64% over 90 days (69 measured) 100.00% over 30 days 234 ms mean today
Canonical redirect
Operational
www.tamperlens.com must 301 to the apex, and land somewhere healthy
99.24% over 90 days (69 measured) 100.00% over 30 days 502 ms mean today
Incidents
-
Canonical redirect: 15 min
Started 2026-09-28 14:52 UTC · recovered 2026-09-28 15:07 UTC · 1 failed check
www redirected to "", expected https://tamperlens.com/api/v1/health
-
Pricing and billing quotes: 15 min
Started 2026-09-27 18:52 UTC · recovered 2026-09-27 19:07 UTC · 1 failed check
https://tamperlens.com/api/v1/pricing returned 520, expected 200
-
Canonical redirect: 15 min
Started 2026-09-25 16:37 UTC · recovered 2026-09-25 16:52 UTC · 1 failed check
https://www.tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Website (pages served): 15 min
Started 2026-09-25 12:22 UTC · recovered 2026-09-25 12:37 UTC · 1 failed check
https://tamperlens.com/ did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Canonical redirect: 15 min
Started 2026-09-25 07:52 UTC · recovered 2026-09-25 08:07 UTC · 1 failed check
www did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Inspection API: 15 min
Started 2026-09-24 23:52 UTC · recovered 2026-09-25 00:07 UTC · 1 failed check
https://tamperlens.com/api/v1/health returned 520, expected 200
-
Free checker (scripts load and parse): 15 min
Started 2026-09-24 09:52 UTC · recovered 2026-09-24 10:07 UTC · 1 failed check
https://tamperlens.com/ did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Inspection API: 15 min
Started 2026-09-24 09:37 UTC · recovered 2026-09-24 09:52 UTC · 1 failed check
https://tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Inspection API: 30 min
Started 2026-09-24 08:52 UTC · recovered 2026-09-24 09:22 UTC · 2 failed checks
https://tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Canonical redirect: 15 min
Started 2026-09-22 19:52 UTC · recovered 2026-09-22 20:07 UTC · 1 failed check
www redirected to "", expected https://tamperlens.com/api/v1/health
-
Website (pages served): 15 min
Started 2026-09-22 07:22 UTC · recovered 2026-09-22 07:37 UTC · 1 failed check
https://tamperlens.com/ did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Free checker (scripts load and parse): 15 min
Started 2026-09-22 06:52 UTC · recovered 2026-09-22 07:07 UTC · 1 failed check
/app.js did not answer (The operation was aborted due to timeout (twice, 3s apart))
-
Free checker (scripts load and parse): 15 min
Started 2026-09-21 16:07 UTC · recovered 2026-09-21 16:22 UTC · 1 failed check
/nav.js did not answer (The operation was aborted due to timeout (twice, 3s apart))
-
Canonical redirect: 30 min
Started 2026-09-21 14:37 UTC · recovered 2026-09-21 15:07 UTC · 2 failed checks
www did not answer: The operation was aborted due to timeout (twice, 3s apart)
-
Free checker (scripts load and parse): 15 min
Started 2026-09-21 14:22 UTC · recovered 2026-09-21 14:37 UTC · 1 failed check
https://tamperlens.com/ did not answer: The operation was aborted due to timeout
-
Inspection API: 15 min
Started 2026-09-21 14:22 UTC · recovered 2026-09-21 14:37 UTC · 1 failed check
https://tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
-
Canonical redirect: 15 min
Started 2026-09-21 14:07 UTC · recovered 2026-09-21 14:22 UTC · 1 failed check
https://www.tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
-
Free checker (scripts load and parse): 30 min
Started 2026-09-21 13:22 UTC · recovered 2026-09-21 13:52 UTC · 2 failed checks
/nav.js did not answer (The operation was aborted due to timeout)
-
Website (pages served): 15 min
Started 2026-09-21 13:22 UTC · recovered 2026-09-21 13:37 UTC · 1 failed check
https://tamperlens.com/ did not answer: The operation was aborted due to timeout
-
Canonical redirect: 15 min
Started 2026-09-21 12:52 UTC · recovered 2026-09-21 13:07 UTC · 1 failed check
https://www.tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
-
Inspection API: 15 min
Started 2026-09-21 12:52 UTC · recovered 2026-09-21 13:07 UTC · 1 failed check
https://tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
-
Free checker (scripts load and parse): 15 min
Started 2026-09-21 12:37 UTC · recovered 2026-09-21 12:52 UTC · 1 failed check
/report-render.js did not answer (The operation was aborted due to timeout)
-
Canonical redirect: 15 min
Started 2026-09-21 12:07 UTC · recovered 2026-09-21 12:22 UTC · 1 failed check
https://www.tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
-
Free checker (scripts load and parse): 15 min
Started 2026-09-21 11:22 UTC · recovered 2026-09-21 11:37 UTC · 1 failed check
/theme.js did not answer (The operation was aborted due to timeout); /revision-timeline.js did not answer (The operation was aborted due to timeout)
-
Inspection API: 30 min
Started 2026-09-21 11:07 UTC · recovered 2026-09-21 11:37 UTC · 2 failed checks
https://tamperlens.com/api/v1/health did not answer: The operation was aborted due to timeout
What we commit to
99.5% monthly availability for the inspection API. That is about three and a half hours a month.
The target is set to what this architecture sustains in normal operation: Tamperlens runs on a single server in a single region. Deploys are health-gated and roll back automatically when a new build fails its checks, so a release is not a scheduled risk to the figure above.
How this page is measured
- From a Cloudflare Worker on the edge, never from the server being watched, because a machine cannot meaningfully report its own outage. The schedule asks for every 15 minutes; Cloudflare runs scheduled jobs best-effort and does not backfill a skipped one, so the interval below is what actually happened rather than what was requested.
- This page is a static file rebuilt on each probe and served by Cloudflare, separately from the service it describes. If Tamperlens is down, this page is still up.
- One vantage point, typically 15 minutes apart, at widest 15. The interval is measured over the 200 probes since 2026-10-28 from the recorded timestamps rather than taken from the schedule. Checks are sampled rather than continuous and run from one location, so the figures describe what the probe observed: a change between two checks, or one confined to another region, is outside what this page measures.
- A request that gets no answer within 10 seconds is asked once more, 3 seconds later,
and counts as down only if the second request also gets no answer. history.json
counts the checks that needed the second request, per component and day, as
retried. A wrong answer (a 502, a missing field, a bad redirect) counts as down on the first request. Added on 2026-09-21, after this page recorded about five hours of timeouts that a second monitor and the server's own logs did not show. - Nothing on this page is edited by hand. The numbers are what the probe recorded.
Raw data: history.json · incident feed · security posture