Attestwire status
Live availability of everything we run, checked every 5 minutes with real requests to the same URLs you use.
Last checked .
- HomepageGET / Operational 19 ms –
- Rule page BR-02GET /rules/BR-02 Operational 18 ms –
- HomepageGET / Operational 19 ms –
- Health endpointGET /api/health Operational 7 ms –
- Health endpointGET /v1/health Operational 25 ms –
- Authenticated validationPOST /v1/validate Operational 850 ms –
- Status boardGET / Operational 204 ms –
- Data freshnessGET /api/status.json Operational 198 ms –
Uptime columns fill in as data accrues — monitoring began 2026-08-09. We do not backfill history we did not measure, so a window longer than that shows “–”.
Incident history
Every status change we have recorded, newest first. Nothing here is edited or removed after the fact.
No status changes recorded yet. Every time a check moves between operational, degraded and down, it will be listed here — including the ones that make us look bad.
What each check does
| Service | Check | Pass condition |
|---|---|---|
| attestwire.com | Homepage | GET / — must return 200 and render the site. |
| attestwire.com | Rule page BR-02 | GET /rules/BR-02 — one real rule page, so a broken build is visible. |
| check.attestwire.com | Homepage | GET / — must return 200 and serve the checker page. |
| check.attestwire.com | Health endpoint | GET /api/health — must return ok:true. |
| api.attestwire.com | Health endpoint | GET /v1/health — must return ok:true. |
| api.attestwire.com | Authenticated validation | POST /v1/validate with a real key and a known-good invoice — must return valid:true. |
| vies.attestwire.com | Status board | GET / — must return 200 and render the board. |
| vies.attestwire.com | Data freshness | GET /api/status.json — generatedAt must be less than 15 minutes old. |
JSON API
Current status, latency and uptime for every service and check. CORS-open, cached 60 seconds, no key and no signup.
curl https://status.attestwire.com/api/uptime.json
Served at /api/uptime.json rather than /api/status.json: this host used to serve the VIES monitor, and /api/status.json here still permanently redirects to vies.attestwire.com/api/status.json so third-party dashboards that were polling it keep getting the VIES data they asked for.
How this is measured
A Cloudflare Worker runs every 5 minutes and makes real requests to the surfaces listed above — the same URLs a customer uses, not internal health pings. Each check states its own pass condition: a 200 is not enough if the body is wrong. The rule page check fails if the page stops containing its own rule ID; the VIES check fails if the monitor's JSON is more than 15 minutes stale, even though the endpoint is answering; the API check posts a known-good invoice and fails if the verdict comes back anything other than valid: true.
Operational means the check passed inside its latency threshold. Degraded means it passed but was slow, or we were rate limited. Down means it failed: a timeout, a 5xx, an unexpected status, or a response that did not contain what the check requires.
Uptime is (operational + degraded) ÷ (operational + degraded + down). Checks we could not run — a missing probe credential, a throttled check that was not due — are excluded from the denominator rather than counted as either success or failure. We have been collecting since 2026-08-09; we do not backfill, so windows longer than that read “–” instead of showing a number we did not measure.
The authenticated API check runs every 480 minutes rather than every cycle, because each run consumes one document from a free-tier key we minted for this purpose (status-probe@attestwire.com, 100 documents a month). If that key runs out, the check reports QUOTA_EXCEEDED as degraded, not down — it is our measurement budget expiring, not the API failing.
What this page cannot tell you
Every measurement is taken from Cloudflare's network. That is the same network that serves these services, so this page is blind to the class of problem where our origin is fine and the route from your network is not. It is also a sample every 5 minutes: an outage shorter than that can pass unrecorded. And a page that says everything is operational is a claim about eight specific checks, listed above with their URLs — not a promise about every code path we ship.
Monitoring someone else
We also run vies.attestwire.com, a live monitor of VIES — the European Commission's VAT number validation service — across all 27 member states. Same measurement discipline, applied to a service we do not control. It used to live on this hostname; every one of its old URLs still redirects there.
Building EU invoicing?
Attestwire is an EN 16931 validation API — post an invoice as JSON, get back the rule it breaks and the fix. Free tier, 100 documents a month, no card.