Tamperlens

Status

All systems operational

Last checked 2026-10-30 13:22 UTC

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