Skip to content

Publish a public status page

DeploymentsImpreza documentationRead as Markdown ↗

A status page shows your visitors whether an application is up, without giving them anything else about you or your servers. It is off for every app until you publish it, and you can withdraw it at any time.

What visitors see

The page shows only:

  • the public name you choose (not the app's internal name);

  • the current state:

    State Meaning
    Operational At least two measurement regions reach the app.
    Major outage At least two regions fail to reach it for the window of your uptime rule.
    Degraded Fewer than two measurement regions are currently healthy, so the state cannot be confirmed. This describes our measurement, not necessarily your app.
    Not monitored yet There is no uptime measurement for this app (see Before you start).
  • availability over the last 24 hours, 7 days and 90 days, as a percentage of successful checks from all regions together, or "No data yet";

  • the incident list: when each outage started, when it ended (or "ongoing") and how long it lasted, up to the last 15.

It never shows your domain, an IP address, the app or account ID, your e-mail, or which regions measure it. The page loads no third-party resources, sends no referrer and sets no cookie. The same data is available as JSON with ?format=json or Accept: application/json.

Before you start

  • An uptime rule on the app. The page is built from the external uptime checks, which run only for apps with an enabled external unreachable alert rule (metric uptime). Without it the page shows "Not monitored yet" and no availability. Add it in My Apps → Advanced → Metrics & alerts, or with impreza_set_alert_rule.
  • A public HTTPS domain or an .onion address. The checks reach the app on its own domain over HTTPS (port 443), or on its .onion over Tor. Apps reachable only over HTTP, on another port or by IP address are not checked.

The checks run once a minute from several regions. Samples are kept for 48 hours, hourly totals and state changes for 90 days.

Publish the page

Portal: open the app in My Apps → Advanced, card Public status page, type the Public name and choose Publish status page. The card is offered for custom apps; for a catalog app, use the API or MCP. Only a login that may manage the account's apps sees these controls.

REST (scope manage):

PUT /v1/platform/deployments/custom/{deployment_id}/status-page
{"public_name": "My service", "enabled": true}

MCP: impreza_set_status_page with deployment_id and public_name, on the hosted connector or the local impreza-mcp 0.56.0 or later. impreza_get_status_page (scope read) shows whether the page is on, its name and its address.

The answer contains the page address, https://api.imprezahost.com/status/stp_…. The token after /status/ is random: it says nothing about you or the app. Anyone who has the address can open the page, so share it only where you want it seen.

Rename, rotate or withdraw

  • Rename: publish again with a new public_name, or Save name in the portal. The address does not change.
  • Rotate the address: POST /v1/platform/deployments/custom/{deployment_id}/status-page/rotate, Rotate address in the portal, or impreza_set_status_page with rotate_token: true (the name stays as it is). A new random address is created and the old one answers 404.
  • Withdraw: DELETE /v1/platform/deployments/custom/{deployment_id}/status-page, Withdraw in the portal, or impreza_set_status_page with enabled: false. The address answers 404. Publishing again later creates a new address.

After a rotation or a withdrawal the old address answers 404 from the next request. A page is served with a one-minute cache, so a copy fetched just before can still be shown for up to 60 seconds. Unknown, malformed and withdrawn addresses all answer the same 404.

Limits

  • One page per app. The public name has 1 to 80 characters.
  • Visitors are rate limited per network address (60 requests a minute by default; 429 with Retry-After above that). The limiter keeps only a daily-rotated keyed hash of the address, for two minutes.
  • Apps with an .onion address: while the page is published, requests for /status/… on the app's own addresses are answered by the status page service, so the app's own /status/ path is not reachable there. The address the API returns is always the clearnet one.
  • Availability counts every region's check. One region that cannot reach the app lowers the percentage even while the state stays Operational.