CIVWATCH

What's running

Every public URL in the CIVWATCH inventory, checked automatically. A listed route is a claim; this page records what each server actually returned.

Loading the latest check.

What the results mean

Responding
The server returned a 2xx response of the expected type: a page for routes, JSON for API endpoints.
Up, asks for input
The endpoint is deployed and replied with a validation message, because a bare check sends no address, ID or query.
Up, needs authorization
The endpoint is deployed and answered 401 or 403, so it needs credentials that a public check does not send.
Up, key not set
The endpoint is deployed but the server is missing an API key for its upstream source, so it cannot return data yet.
Not found
The URL is listed in the inventory but the server returned 404. Either the inventory is ahead of the deployment or the route was removed.
Server error or unreachable
The server failed, timed out after 45 seconds, or could not be reached.
Not probed
Pattern routes that need a real record ID, and endpoints that only accept POST. A GET check would not tell you anything true about them.

How checks run

A GitHub Actions job requests each URL with a plain GET every six hours and whenever this site is published. Hosts on Render's free tier sleep when idle, so each one is woken first and a cold start is not reported as an outage.

Response bodies are not stored. The job keeps the status code, response time, content type and, for JSON, a short status or error message. No credentials are sent. Everything after a # in a link stays in your browser and is never part of a check.

The list of URLs is data/endpoints.json, taken from the project's master URL inventory. The checker is scripts/site/probe.mjs.