statusas docs
Reference

Status Page Reference

Complete technical specification for statusas status page configuration.

A status page is a dedicated web interface that publicly displays the operational status of your services and systems. It serves as a transparent communication tool during incidents and for showcasing overall service health.

Key features:

  • Real-time service status updates.
  • Incident communication and history.
  • Customisable branding and domain.
  • Multiple access control options.
  • Multi-language support with a locale switcher.
  • Configurable status trackers, history window, and uptime calculation.

Configuration

statusas provides several configuration options to customise your status page's appearance, accessibility, and functionality.

Slug

Type: String (required) Format: URL-friendly string (e.g., my-service-status)

A unique identifier that forms part of your status page's default URL. For example, a slug of status will result in a URL like https://status.statusas.lt.

Custom domain

Type: String (optional) Format: Valid domain name (e.g., status.example.com)

Lets you host your status page on a domain you own. Once it is working, the page is served at https://your-custom-domain.com with a certificate we obtain and renew for you — there is nothing to install and nothing to renew.

DNS configuration:

Domain typeRecordNameValueTTL
Subdomain (e.g., status.example.com)CNAMEstatuscname.statusas.lt3600
Apex domain (e.g., example.com)CNAME (or ALIAS / ANAME)@cname.statusas.lt3600

Add the record before saving the domain in the dashboard. The certificate is issued once the name resolves to us, so a record that does not exist yet simply leaves the page pending.

Note

Plain DNS does not allow a CNAME at the apex. Most providers offer ALIAS, ANAME or "CNAME flattening" for exactly this; if yours does not, use a subdomain such as status.example.com.

If your DNS is on Cloudflare, connect it in the dashboard instead: Status page → Settings → Custom domain → Connect Cloudflare. You approve the request on Cloudflare's own consent screen, and we add the records for you — including the one that lets the certificate renew by itself. We ask for zone.read, dns.read and dns.write, and nothing else, and you can revoke it at any time from your Cloudflare profile.

Certificate renewal: the certificate renews automatically. If you manage DNS yourself, keep the CNAME in place — removing it stops renewal, and the page will start failing TLS when the current certificate expires.

Propagation: a record that already existed and pointed somewhere else is cached by resolvers for as long as its previous TTL says. Until that expires, some visitors will still reach the old host. Lowering the TTL before you make the change shortens that window.

Troubleshooting: the dashboard shows the domain's live state — Pending verification while the record has not reached us yet, Invalid configuration when it points somewhere else, Valid configuration once the certificate is issued.

Password (basic auth)

Type: String (optional)

Enables basic password protection for your status page. If a password is set, users will be redirected to a login page (/login) to gain access. The password is stored in a cookie upon successful authentication.

Sharing with password: you can provide direct access by appending the password as a URL search parameter: https://[slug].statusas.lt/?pw=your-secret-password. This method is also useful for authenticating private RSS feeds.

Type: Boolean (add-on feature)

Restricts access to your status page to users with approved email domains. Users receive a magic link via email, which, upon clicking, authenticates them via a session token. This feature is typically available as a paid add-on for specific plans.

IP restriction (network auth)

Type: String (add-on feature)

Restricts access to your status page based on client IPv4 addresses. You provide a comma-separated list of CIDR ranges (e.g., 192.168.1.0/24, 10.0.0.0/8), and only requests from those networks can view the page. Single IPs without a subnet mask are treated as /32.

Visitors from outside the allowed ranges are redirected to a static "Access Restricted" page — there is no login flow since IP-based access cannot be changed by the user.

Configuration:

  • Set the access type to IP restriction in the dashboard, or access_type to PAGE_ACCESS_TYPE_IP_RESTRICTED via the ConnectRPC StatusPageService.
  • Provide allowed_ip_ranges as a comma-separated list of IPv4 CIDR ranges (we automatically append /32 to single IPs).
  • IPv6 is not supported.
  • The deprecated v1 REST API does not expose this access type — its accessType field accepts only public, password, and email-domain.

Note: this feature is available as a paid add-on for Starter and Pro plans.

Favicon

Type: Image file (.ico, .png, .svg)

Allows you to upload a custom favicon that will appear in browser tabs and bookmarks for your status page. SVG files are sanitized server-side and must be under 100KB.

Theme

Type: Enum (optional, defaults to default)

Selects one of the community themes for your status page. Browse and preview them in the Theme Explorer, or contribute your own.

Appearance mode

Type: Enum (optional, defaults to system)

Whether the page follows the visitor's OS preference or is pinned to one mode.

  • system — follow the visitor's prefers-color-scheme.
  • light / dark — force that mode for every visitor and hide the toggle.

Custom theme

Type: Per-mode CSS variable overrides (included on Pro and Scale, available as a paid add-on on Starter)

Overrides individual CSS variables of the selected theme, separately for light and dark mode. Custom values take precedence over the theme; every variable you leave unset falls back to the theme's value.

Configuration: in the dashboard, the editor provides a Light and a Dark tab. Each accepts one declaration per line:

--primary: oklch(0.6 0.1 250);
--radius: 0.5rem;

Values accept any valid CSS value (colors in oklch, hsl, hex, lengths, etc.). Each value is limited to 256 characters, and the characters <, {, }, ; and ASCII control characters are not allowed inside a value.

Supported CSS variables

Base — the shadcn/ui color tokens used across the page:

VariableDescription
--radiusCorner radius of cards, buttons and inputs (e.g. 0.625rem)
--backgroundPage background
--foregroundDefault text color
--cardCard background
--card-foregroundCard text color
--popoverPopover/dropdown background
--popover-foregroundPopover/dropdown text color
--primaryPrimary buttons and accents
--primary-foregroundText on primary elements
--secondarySecondary buttons and surfaces
--secondary-foregroundText on secondary elements
--mutedMuted surfaces
--muted-foregroundMuted/secondary text
--accentHover and highlight surfaces
--accent-foregroundText on accent surfaces
--borderBorder color
--inputInput border color
--ringFocus ring color

Status colors — used for component and system status indicators:

VariableDescription
--successOperational status (green)
--warningDegraded status (yellow)
--infoMonitoring/maintenance status (blue)
--destructiveOutage/error status (red)

Charts — differentiate the response-time percentiles on the public monitor charts:

VariableDescription
--chart-1First percentile series
--chart-2Second percentile series
--chart-3Third percentile series
--chart-4Fourth percentile series
--chart-5Fifth percentile series

Regions — differentiate the monitoring regions on the public monitor charts. Optional; the defaults cover all regions:

--rainbow-1, --rainbow-2, --rainbow-3, --rainbow-4, --rainbow-5, --rainbow-6, --rainbow-7, --rainbow-8, --rainbow-9, --rainbow-10, --rainbow-11, --rainbow-12, --rainbow-13, --rainbow-14, --rainbow-15, --rainbow-16, --rainbow-17

Components and uptime display

Type: Object (optional)

Controls how each component's status tracker renders and how uptime is computed. Configured on the Components page in the dashboard; see Configure your status page.

FieldValuesDefaultDescription
typeabsolute, manualabsoluteBar type. absolute draws each day proportionally; manual shows only the most significant status of the day.
valueduration, requests, manualrequestsWhat the hover card and uptime percentage are derived from. Only meaningful when type is absolute.
uptimebooleantrueWhether the uptime percentage is shown at all.
days30, 4545Number of days of history rendered on the bars.

See Uptime calculation and shared values for what each mode actually measures.

Type: String (optional)

Two optional URLs shown in the status page header.

  • Homepage URL — your logo links here instead of to the status page root.
  • Contact URL — renders a message icon linking to a contact page. A mailto: URL works too, e.g. mailto:support@example.com.

Search engine indexing

Type: Boolean (optional, defaults to true)

When enabled the page is indexable. Disable it to serve a noindex directive and keep the page out of search results — useful for an internal or pre-launch page. Available on paid plans.

Feeds

Type: Read-only endpoints

Every status page publishes its events in three machine-readable formats, reached by appending a path to the page URL:

PathFormatContents
/feed/jsonJSONFull page state: components, status reports, maintenances, and the deprecated monitor fields below.
/feed/rssRSS 2.0Status reports and maintenances as feed entries, for readers and automations.
/feed/atomAtom 1.0The same entries in Atom.

Example: https://status.statusas.lt/feed/json

On a password-protected page the feeds are protected too; append ?pw=your-secret-password to read them from a feed reader.

Deprecation notice:

The following fields are deprecated and will be removed in a future version:

  • monitors (top-level) — use pageComponents instead, which provides a more flexible component-based structure that supports both monitor-linked and static components.
  • maintenances[].monitors — use maintenances[].pageComponents instead, which references page component IDs rather than monitor IDs.
  • statusReports[].monitors — use statusReports[].pageComponents instead, which references page component IDs rather than monitor IDs.

These deprecated fields are currently maintained for backward compatibility but may be removed in future versions.

SSH command

Type: Command-line utility

Allows you to quickly check the current status page status directly from your terminal using an SSH command.

Usage:

ssh [slug]@ssh.statusas.lt

Example: ssh my-service@ssh.statusas.lt

Translations (i18n)

Type: Per-page configuration (paid plans only)

Enables multi-language support for your status page. You can set a default locale and optionally enable a locale switcher so visitors can choose their preferred language.

Supported locales: en (English), fr (Français), de (Deutsch), tr (Türkçe), hi (हिंदी), ko (한국어), ja (日本語)

Configuration:

  • Default locale — the fallback language for your status page (defaults to en).
  • Locale switcher — when enabled, visitors see a language dropdown. You select which locales to offer.

Routing: the default locale is omitted from the URL (as-needed prefix). Non-default locales appear in the path (e.g., /fr/events).

See How to translate your status page for setup instructions and contributing new translations.

White label

Type: Boolean (add-on feature)

Removes the "powered by statusas.lt" footer from your status page, providing a fully branded experience. This feature is typically available as a paid add-on for Starter and Pro plans and is enabled via your workspace settings, affecting all status pages within that workspace.

On this page