Changelog

New features, improvements, and fixes in UptimeHunt.

Improved

Alert Rule Timing Knobs & Public Status Control

You can now configure per-service confirmation and recovery periods to fine-tune when incidents open and close, and control how single-location failures appear on your public status page. The confirmation period delays incident opening after the automatic burst confirms a failure; the recovery period delays incident closure after the healing burst confirms recovery. Both default to zero (immediate), preserving the fast incident detection you're already relying on. The public status visibility setting controls how a location-specific failure (when only one probe reports a problem) appears on your status page's component status — by default it shows as degraded, never as full downtime, and you can switch it to fully hidden or counted as complete downtime per service.

Learn more →
New

Status Page Branding: Uploads, Appearance Modes and a Heading Font

Upload your logo and fonts directly to your status page instead of linking them from your own site — we host the files, so your branding keeps rendering even when your site is down. You can also set a separate typeface for headings, style light and dark appearances independently with their own color palettes, and give each appearance its own logo.

New

Game server monitoring adds BZFlag and Armagetron Advanced

The Game Server check type now supports BZFlag and Armagetron Advanced alongside the existing Quake III-family, Source/GoldSrc, and Minecraft protocols. Both games are queried on their native status ports (5154 for BZFlag, 4534 for Armagetron), with the same player-count, response-time, and assertion support as every other supported game.

Learn more →
Fixed

Quake Live monitoring fixed, Tremulous default port corrected

Quake Live checks never returned data: the servers were being asked with the Quake III getstatus query, which Quake Live does not answer — it answers Valve's A2S. Quake Live now uses A2S and reports player counts, map and response time like any other game.

Tremulous also pre-filled the wrong query port (27960); it is now 30720, the game's actual default. The game picker's port field is now labelled "query port" so it is clear which port to enter for games where the query port differs from the game port.

Learn more →
Improved

Every check now reads as the story of the request

Opening a check in the Probe Log now walks you through what the probe did, step by step — the name it resolved, the connection it opened, the TLS handshake it completed, the request it sent and the response it read — instead of three parallel tables of numbers you had to reassemble yourself. The certificate has a real viewer: a readable fingerprint that no longer runs off the edge, and the subject and issuer broken out field by field rather than as one clipped line. The request and response headers and the response body are visible for the first time, so a wrong redirect, a missing cache header or an error page reads on the spot rather than needing a reproduction from your own machine.

A specific check also has its own link now. Open one and the address bar carries it, so "this check, from Helsinki, at 23:44" is something you can paste into an incident thread and have the other person land on exactly what you were looking at.

Learn more →
Improved

A more accurate uptime percentage

Status-page uptime percentages now account for degraded periods, not just full outages — a confirmed partial or regional problem moves the number, where before only a total outage did. A one-off failure that no other probe location corroborates still doesn't count against you, and time covered by a maintenance window is still excluded entirely.

The percentage is also now measured strictly over the days that actually had checks to count, rather than assuming a fixed 90-day window — so a newly added component's uptime reflects only the time it's actually been monitored, and a day with nothing to count doesn't skew the result either way.

Learn more →
New

A plain-text IP list for firewall allowlists

Allowlisting UptimeHunt no longer means copying addresses out of a table by hand. app.uptimehunt.io/ips.txt returns every address our monitoring locations connect from — IPv4 and IPv6, one per line, no authentication, nothing else in the body — so it pipes directly into a firewall script. The Probe locations page now links it too.

The list includes locations that are currently offline or not yet connected, on purpose: a location that reconnects must never find itself blocked, because those checks would fail and look like an outage of your own service. Re-fetch it periodically (the response is cacheable for 5 minutes) so new locations are allowed before they start probing.

Learn more →
Improved

Smarter history colours, and new detection for location-specific problems

Zoomed-out bucket colours (the Services list History column, cron run strips, status-page bars, and service-detail status strips) now require a real share of a window's checks to have failed before turning amber — a couple of stray failures inside a 12-hour bucket of thousands of checks no longer paints it. Confirmed short outages are unaffected and still colour correctly.

Separately, UptimeHunt now detects when a single probe location keeps failing a service for a sustained stretch while every other location stays healthy — a symptom of a route, ISP, or location-specific problem rather than a real outage. This opens a warning-level incident naming the affected location, so it shows up in your incident list instead of going unnoticed. See How Detection Works for the full picture.

Learn more →
Improved

The fastest available check interval is now 30 seconds

The quickest cadence a service can be configured to run at is now 30 seconds, down from 10. Existing services already configured faster keep running — they are simply never checked faster than the floor — and are only rejected if you next try to lower the interval further.

Learn more →
Improved

Pick whole continents as monitoring locations

A service's Specific locations can now mix whole continents with individual countries in one list — an All of Europe chip keeps adopting new European probe locations automatically as we add them, while a country chip stays pinned to exactly that country. Switching from All locations now seeds one chip per continent instead of freezing every current country, and a saved continent selection stays a continent — it is no longer silently rewritten into fixed country pins on the next save. The separate "Informational locations" (watch-only) list was removed: pick where the check runs, and every selected location counts.

Learn more →
Improved

A redesigned service editor with a visual rules builder

Creating and editing a monitoring service now happens on a full, dedicated page instead of a cramped popup, built around a visual rules builder where every expected-results rule can use its check type's full set of comparison operators — "at least," "in range," "is one of," "matches regex," and more — instead of one fixed phrase. HTTP checks also gained three new TLS certificate rules (hostname match, chain trust, issuer), and choosing monitoring locations simplified to a plain "All locations" or "Specific" choice.

Learn more →
Improved

Configurable check timeouts, enforced HTTP transport settings, and automatic retry

HTTP and ping checks now support a configurable per-check timeout (1–120 seconds), overriding the platform default. The HTTP transport settings — redirect-following and TLS certificate verification — are enforced end-to-end, including across every redirect hop. An optional TLS-expiry threshold automatically adds a warning assertion to a service's expectations. Transient scheduled-check failures (timeout, connection, DNS, TLS) now get one automatic retry before being recorded as down.

Learn more →
Improved

Kubernetes auto-discovery — Ingress-recreation adoption and per-path expected status

The Kubernetes auto-discovery operator now recognizes a deleted-and-recreated Ingress (common in GitOps/CI reconciles) as the same endpoint it was already monitoring, and keeps the existing check instead of creating a duplicate alongside it — check history and incident links are preserved. The expect-status annotation also gained an optional per-path grammar (/hook=403;/health=200,204;500), so one Ingress with several paths can declare different healthy-status codes for each; the existing plain comma-separated list still works unchanged.

Learn more →
Improved

Performance charts over long ranges now load in about a second

Wide time ranges on the service-detail performance chart — a month of history on a busy monitor spans millions of raw checks — now render in about a second instead of crawling, and the services-list sparklines got faster the same way. Chart values are unchanged: same buckets, same averages, same status colours.

Learn more →
Improved

Performance charts now show where the time actually goes, for every check type

The service detail performance graph is now a bucketed, status-coloured chart on every check type, with a Mean/p95/p99/Max selector and click-to-scope into the Probe Log. HTTP checks break each bucket down into where response time actually goes — TCP connect, TLS handshake, pre-transfer, time to first byte, and download. PING checks chart latency as a floating min-max band per bucket, so an unstable network path shows up as a tall band even when the average looks fine, with a thin marker for the average. DNS, SMTP, SSH, and game-server checks now render the same bucketed, status-coloured columns with incident overlays, replacing the plain trend line that showed no reachability context.

Learn more →
New

Custom domains for status pages

Point your own domain — either a subdomain like status.acme.com or the apex acme.com — at your UptimeHunt status page. UptimeHunt automatically provisions a TLS certificate and serves the page from your custom domain, and the page keeps serving during platform outages.

Learn more →
New

Block and unblock organization members

Organization Owners can now block and unblock members as an alternative to permanent removal — a blocked member has no access but keeps their role and settings, and can pick up exactly where they left off once unblocked.

New

Monitor IPv4 and IPv6 separately — Per-IP-family checks

HTTP and PING checks now support per-IP-family monitoring via the new address family option: auto (default), ipv4, ipv6, or both. In "both" mode, probes dial both families independently and report per-family reachability and response time, with matching per-family assertions, so you can see IPv6 breakage the moment AAAA goes live, without false alarms disrupting IPv4 users. Perfect for AAAA rollouts and dual-stack infrastructure validation.

Learn more →
Improved

Settings reorganized around you vs your workspace

Settings are now reorganized to clarify the distinction between personal account settings and workspace configuration. Every workspace — including your personal workspace — now has its own Workspace settings with plan, member management, and API tokens. Account settings gained a new Preferences tab so you can customize your UI experience (like your preferred service list layout) across all your workspaces.

Learn more →
New

Cron drift detection and editable autodiscovered monitors

Cron monitors can now opt in to duration-drift detection, flagging a run whose duration strays far from its own recent history — a sign of a hung or degrading job. Choose a percentage of baseline (default 50%) or a fixed number of seconds, and the baseline itself is the average of the last several successful runs (default 5). A drift is always a warning, never an incident on its own. For long-running jobs that sometimes legitimately take time, set an optional max runtime to cap how long a run can stay running before it alerts as stuck — leave it empty and long runs never alert on duration alone. Kubernetes autodiscovered monitors are now fully editable: the operator keeps the schedule/timezone in sync while your drift, runtime, and alerting settings made directly in UptimeHunt persist across every reconcile — unless you configure those same settings via annotation on the CronJob itself.

Improved

Redesigned monitoring lists with grouped projects and view modes

The lists across Services, Cron Monitoring, and Status Pages have been redesigned with a shared, calmer look: each project sits in its own quiet grouped box, and history strips pack each check cycle more densely while staying easy to scan. Pick Normal, Dense, or Cards view mode under Settings → Preferences — Normal for scanning with latency and last-check info, Dense for high service counts, or Cards for a visual grid — and your choice is saved and carried across every list in the app.

Learn more →
Improved

Multi-monitor status page components, real groups, and a unified incident timeline

Status page components can now be backed by more than one monitor — bundle an HTTP check and a DNS check into one "Website" component and it reports the worst of the two, with merged 90-day history and a deliberately conservative (never inflated) uptime percentage. Groups are now a real, reorderable, renameable part of the page rather than free text, and every public incident shows one chronological timeline that interleaves published updates with internal-only notes your visitors never see.

Learn more →
Improved

A calmer dashboard that only shouts about new problems

The dashboard now separates "just broke" from "still broken": a dedicated panel surfaces services that failed in the last six hours, while long-running and flapping issues collapse into a quiet needs-attention shelf and grouped incident rows instead of drowning the feed. The probe map moved into the Probe Fleet card in the right rail and now colors dots by real probe-infrastructure health — offline or stale results only — never by how many of your services happen to be failing.

Learn more →
New

Public status pages

You can now publish a public status page for your organization — pick which services and cron jobs to show, group and order them, and publish at a <slug>.status.uptimehunt.io URL that keeps serving even if the rest of the platform goes down. Scheduling a maintenance window suppresses alerts for the components it covers and shows a banner on the page, and every page ships an embeddable status badge plus an RSS/JSON feed of incident and maintenance announcements.

Learn more →
New

Cron job and heartbeat monitoring

You can now monitor scheduled jobs that don't have a URL to probe — backups, migrations, report generators — by having them ping UptimeHunt on start/success/fail instead. A missing ping opens an incident through your existing alerts, with full per-run history including captured logs and duration. Kubernetes CronJobs are picked up automatically by the zero-touch operator with no script changes, and an existing crontab can be bulk-imported in one pass.

Learn more →
Improved

Leaner cron run reads, plus a dedicated run log endpoint

Cron monitor run list and detail responses no longer embed the captured log body, making both reads noticeably leaner. Fetch a run's full captured log on demand from the new GET /cron-monitors/{id}/runs/{rid}/log endpoint — log_bytes/truncated on the run itself still tell you whether (and how much) log there is to fetch.

Learn more →
New

Delete your account

You can now permanently delete your UptimeHunt account directly from Settings → Security → Danger zone — no need to contact support. The deletion removes your personal workspace and all its monitors, and revokes all sessions and tokens in one step.

Learn more →
Improved

A live world map of your probe fleet

The dashboard header now shows a world map of your probe fleet with each probe colour-coded by its current health. A radar blip animates on each new check result, and hovering a probe shows its last-seen time. Clusters display the worst status across all their services.

Learn more →
New

Run your own probes and trigger checks on demand

You can now register private probes that run in your own infrastructure and report back to UptimeHunt. Each probe shows a live Online/Offline badge, and you can trigger an immediate check from any service detail page without waiting for the next scheduled run. Probe management — including token rotation — is available in the app, API, and MCP.

Learn more →
New

A brand-new documentation site

The documentation site has been rebuilt and reorganized around what you're trying to do — tutorials, how-to guides, concepts, and reference each in their own section, with full-text search across all of it. New pages cover DNS, SMTP, SSH, and game-server monitoring, and a changelog feed is now live here.

Learn more →
New

Sign in with GitHub (SSO)

Connect your GitHub organization to UptimeHunt so members sign in with their GitHub account. Access is gated by GitHub org membership, and a visual editor maps GitHub teams to UptimeHunt roles — so permissions stay in sync as your team changes. You can also require that members use a dedicated GitHub account separate from their personal one.

Learn more →
New

Organization service tokens

Service tokens belong to the organization, not an individual — so they survive staff changes and carry only the capabilities you grant them. Create tokens for scripts and CI pipelines, rotate them to swap a leaked secret, and revoke them without affecting any person's account. All token management is available through Org Settings, the REST API, and MCP.

Learn more →
New

Merge duplicate accounts and manage login methods

If you have separate accounts for password and social sign-in, you can now merge them into one through an in-app wizard. Multiple sign-in methods — password, GitHub, Google, OIDC, and SAML — can all be linked to a single account, and you can manage all your verified email addresses from Account Settings.

Learn more →
New

Enforce SSO with a lock-out preview

Once you have SSO configured, you can require it for every member. Before enforcing, a preview lists exactly who would lose password access so there are no surprises. A break-glass rule ensures the last org owner is never locked out, and owners can grant individual members a password bypass for emergencies.

Learn more →
Improved

The whole app now works on phones and tablets

The app now adapts to any screen size. On mobile, the sidebar slides in as a drawer, wide tables reflow to prioritize the most important columns, and per-row actions collapse into a tap-friendly overflow menu. Every page — including service details, incident feeds, and org settings — is usable from a phone.

New

A different contact email for each organization

You can now configure a different email address for each organization you belong to — useful when you want alerts routed to a work inbox for one org and a personal inbox for another. The per-org email shows on member lists and is pre-filled when an admin resends your invitation.

Learn more →
New

Personal workspaces

Every UptimeHunt account now comes with a personal workspace — a private org just for you. New users are walked through a one-time setup that lets them start in a personal space or immediately create a team organization. You can belong to multiple organizations and switch between them from the header.

Learn more →
New

Single sign-on with SAML, OIDC, and Google Workspace

Single sign-on is now available for SAML 2.0, generic OIDC, and Google Workspace. Members are provisioned automatically on first sign-in (JIT), IdP groups map to UptimeHunt roles, and a Test button validates your configuration against the live IdP before you enable it — so you can confirm everything works before flipping the switch.

Learn more →
New

Organization audit log

Every significant action in your organization — member logins, SSO events, role changes, invitations, and account merges — is recorded in an append-only audit log. Filter by person or event type, export as CSV, and pull events programmatically via the REST API or MCP.

Learn more →
New

Organizations — teams, members, and roles

UptimeHunt is now fully multi-tenant. Create named organizations, invite members by email, assign Owner/Admin/Member roles, and verify your domain for SSO routing. All services, projects, and alerts are scoped to an organization. Organization management is available in the app, REST API, and MCP.

Learn more →
New

Long-lived API tokens

You can now create named API tokens that don't expire, making them suitable for scripts, CI pipelines, and integrations. Manage your tokens — and see which OAuth applications are connected to your account — from Settings. Tokens are shown once at creation and never again.

Learn more →
New

Everything updates in real time

The dashboard now streams live updates over a persistent connection. Status badges flip, performance graphs extend, sparklines tick, and the incident feed updates the moment a check result arrives. If your connection drops, the app reconnects automatically and catches up — no manual refresh needed.

Learn more →
New

Alert rules, incidents, and test notifications

Alert rules let you define when to notify, and incidents track the lifecycle from trigger to resolution. UptimeHunt opens one incident per outage rather than flooding you with repeated alerts. A Test button on every alert rule verifies delivery immediately — you don't have to wait for a real outage to find out a webhook is broken.

Learn more →
New

Manage UptimeHunt with Claude (MCP server)

UptimeHunt now exposes a remote MCP server that AI clients — including Claude on claude.ai and Claude Code — can connect to with OAuth. Once connected, you can query service status, browse incidents, manage alert rules and integrations, and control probes through natural language. The server is read-only by default; write access requires the explicit write OAuth scope.

New

Get alerts in nine channels

Choose from nine notification channels: Slack, Discord, Microsoft Teams, Google Chat, Mattermost, PagerDuty, Opsgenie, email, or a generic webhook. Each integration has its own configuration options and a built-in Test button. All stored credentials and secrets are encrypted at rest.

Learn more →
New

Filter and explore recent checks

The service detail page now has a facet rail on the left side of the check table. Filter recent checks by status, ISP, country, and probe — and watch the performance graph update to match your selection.

Learn more →
Improved

A refreshed, more accessible design

Cards now use soft elevation instead of heavy borders, body text is larger for easier reading, and status badges pair an icon with colour so the meaning is clear even without colour vision. Contrast ratios have been checked and corrected throughout the app to meet WCAG AA.

New

Service expectations and assertions

Expectations let you specify what a passing check looks like — an HTTP status code, a response-time limit, a string present in the body, a valid TLS certificate, or a protocol-specific assertion. Every change is saved as a new version, so you can see the history and restore a previous configuration at any time.

Learn more →
New

New check types — DNS, SMTP, SSH, and game servers

Four new check types expand what you can monitor. DNS checks validate that a domain resolves to the expected records. SMTP and SSH checks verify that your mail and shell servers are accepting connections. Game-server checks monitor Quake 3, Source engine, and Minecraft servers for player counts and availability. Each type has its own configuration options and assertion support.

Learn more →
Improved

Clearer performance graphs

Performance graphs now show a legend with distinct colours per metric, a dashed trailing bucket to mark the current in-progress interval, and shaded incident bands overlaid on the timeline. Correlating a latency spike with an outage is now visual rather than manual.

Learn more →
Improved

Richer HTTP checks with a request waterfall

HTTP checks now capture per-phase timing — DNS lookup, TCP connect, TLS handshake, and server response — along with response headers and body. The check detail view presents these as a waterfall so you can pinpoint exactly where latency is coming from.

Learn more →
Improved

A redesigned service form

The service creation and edit form has been redesigned for speed. The HTTP method selector sits inside the URL bar, check intervals offer sensible presets with a custom option, and monitoring locations are now a searchable region/country tree with country flags. The icon picker opens directly from the service name field.

Learn more →
New

Kubernetes auto-discovery

Install the UptimeHunt Kubernetes operator and it automatically creates a monitor for every Ingress host it finds in your cluster. Tune monitoring behaviour per-Ingress with annotations — HTTP method, which status codes count as healthy, check interval, and more. The operator is add/update-only by design: a vanished Ingress raises an alert rather than silently deleting your monitor.

Learn more →
New

Dark mode

A theme toggle in the navigation bar switches the entire app between light and dark mode. The preference is remembered in this browser, so it stays applied the next time you visit.

New

Projects for grouping services

Projects let you organize related services into named groups that appear as collapsible sections in the service list. Create a project per application, environment, or team — however makes sense for your setup.

Learn more →