Developer documentation / v1

Meet the Meridian API.

Three public, read-only endpoints. JSON responses.
Try them directly from this page.

Getting started

The API is available at the same origin as this site. All endpoints are public and require no credentials. They expose only this service’s status and deployment metadata.

Read a fresh status snapshot:

curl -i /api/v1/status

The example above uses this page’s origin. Status responses are never cached.

Endpoints

GET/api/v1/status

Returns service, status, checked_at, started_at, uptime_seconds, and a checks array. Each check includes id, name, status, and duration_ms.

200 when every check is operational; 503 when the overall state is degraded and at least one check is unavailable. A 503 still contains a complete status snapshot.

GET/api/v1/version

Returns service, version, and built_at. Build time identifies the release artifact; it does not change on each request or restart.

GET/api/v1/regions

Returns regions and total. Each configured location has an id and name. An unconfigured deployment returns {"regions": [], "total": 0}. No location is inferred from visitors or the server’s IP.

API explorer

Send a request to this instance. The response below comes from the server, with no example data substituted.

Ready to send
Choose an endpoint and send a request.
Response headers
No response yet.

Response behavior

HTTP behavior
RequestResponse
GETJSON for API routes; HTML for pages.
HEADSame status and headers as GET, without a response body. Live values may change between requests.
OPTIONS on a known route204 with Allow: GET, HEAD, OPTIONS.
Other methods on a known route405 with the same Allow header.
Unknown path404. API paths receive JSON; other paths receive an HTML error page.
Conditional GET / HEADPages, assets, version and regions support ETag and If-None-Match. An unchanged response returns 304 with no body. Status always returns a fresh snapshot.

API errors use this shape:

{"error": {"code": "not_found", "message": "This resource does not exist."}}

Timestamps use UTC in ISO 8601 format. Query parameters are currently ignored. This API is same-origin; cross-origin browser access is not enabled.

What the checks tell you

The status endpoint reads the files needed for the website, documentation, status page, and static assets. It reports a failed check if a file is missing, empty, or unreadable. A successful request also confirms that the API process handled that request.

It does not test external services, regional connectivity, TLS at a reverse proxy, or historical availability. The configured locations endpoint is inventory, not a health check. Process uptime measures time since this server process started.