---
title: WatchFor changelog
description: New features, improvements, and fixes — everything we ship to make your monitoring better.
canonical: https://watchfor.io/changelog
---

# WatchFor changelog

New features, improvements, and fixes — everything we ship to make your monitoring better.

All 282 entries, newest first. Each links to its own page; the same list as JSON Feed: https://watchfor.io/changelog.json · RSS: https://watchfor.io/changelog/rss.xml

## 2026-10-15 · Improved · v10.7.8 — [API: list the organizations a token can act on](https://watchfor.io/changelog/2026-10-15-api-list-organizations)

An OAuth token can act on every organization its user belongs to, but there was no way to look up the ids that X-WatchFor-Organization expects. GET /api/v1/organizations now lists them with your role in each, the plan, and which one is the default and which one the request used; an API key lists its own organization. SDKs 0.16.0 add organizations.list() and the CLI watchfor organizations.

## 2026-10-15 · Improved · v10.7.6 — [SDKs 0.15.0: choose the organization, plus status pages and bulk actions](https://watchfor.io/changelog/2026-10-15-sdks-0-15-0)

With an OAuth token the SDKs and CLI always worked in your oldest organization, and status-page editing, bulk pause/resume/delete and batch calls needed raw HTTP. Version 0.15.0 of the watchfor package on npm, PyPI and RubyGems takes an organization option (CLI: --organization or WATCHFOR_ORGANIZATION), adds those operations, and reads alerting_state and the uptime response-time series.

## 2026-10-15 · Improved · v10.6.7 — [API: see whether an open incident is still failing or recovering, and a real 24-hour response chart](https://watchfor.io/changelog/2026-10-15-api-engine-state-and-response-series)

Through the API you could see that a monitor had an open incident, but not whether the rule behind it was still failing or the site was already recovering — so an app could only guess. GET /v1/monitors/{id} now carries alerting_state, straight from the alerting engine: still failing, recovering 1 of 3 healthy checks, or a rule confirming 2 of 3 before it alerts. And GET /v1/monitors/{id}/uptime?series=true returns response times on a real time axis, so a chart covers exactly the period it says.

## 2026-10-13 · Security · v10.2.6 — [A password reset now also disconnects connected apps](https://watchfor.io/changelog/2026-10-13-password-reset-disconnects-apps)

If you reset your password because you think someone else got in, only your browser sessions ended — an app or AI agent connected with OAuth kept its access until its token ran out. Now a password reset, and signing out of all sessions, also revoke every connected app's tokens; reconnect the ones you trust through the consent screen. And signing in with Google to an address someone registered but never confirmed now removes that stranger's password.

## 2026-10-12 · Improved · v10.2.4 — [OAuth connections can pick the organization they work in](https://watchfor.io/changelog/2026-10-12-oauth-organization-header)

If you belong to several organizations, an app or agent connected with OAuth could only reach your oldest one. Send the X-WatchFor-Organization header with an organization id to choose another. Your role there applies, just as in the dashboard: members can read, acknowledge incidents and run diagnostics, while changes need an owner or admin.

## 2026-10-12 · Fixed · v10.2.2 — [Resetting a paused monitor keeps it paused](https://watchfor.io/changelog/2026-10-12-reset-keeps-paused)

Resetting the history of a paused monitor made it look active: it soon showed Up, a Pause button and a next-check countdown, although no further checks were running. A reset now leaves a paused monitor paused, so what you see matches what WatchFor is doing.

## 2026-10-12 · Fixed · v10.2.2 — [Report MTBF counts from when monitoring started](https://watchfor.io/changelog/2026-10-12-report-mtbf-from-monitoring-start)

A report's mean time between failures divided the whole report period by the number of incidents, so a monitor added yesterday looked as if it had been watched all week. MTBF now uses the time since monitoring began within the period, divided by the incidents that started in it, and stays empty until there are at least two.

## 2026-10-12 · Fixed · v10.2.2 — [A maintenance window no longer shows as muted alerts](https://watchfor.io/changelog/2026-10-12-maintenance-is-not-a-mute)

During a maintenance window that suppresses alerts, the monitor and its incidents showed Muted with an Unmute button, and pressing Unmute ended the window's suppression while the planned work was still running. Muting a monitor during a window ended it too. Maintenance now shows as In maintenance until its end, with a link to the window, and Mute and Unmute only ever change your own mutes.

## 2026-10-12 · New · v10.2.2 — [Install WatchFor as an app on your phone or desktop](https://watchfor.io/changelog/2026-10-12-install-the-app)

Checking an incident from your phone meant finding the right browser tab first. Now WatchFor installs as an app: one tap on Install app in Chrome, Edge or Samsung Internet, or Share → Add to Home Screen on iPhone and iPad. It opens in its own window, gets incident push notifications (on iPhone and iPad only the installed app can), and shows a short offline notice instead of an error when you lose signal.

## 2026-10-12 · Improved · v10.2.2 — [Dashboard pages open much faster, especially on phones](https://watchfor.io/changelog/2026-10-12-faster-dashboard)

On a phone, the dashboard, Monitors and incident pages could take several seconds before showing anything useful, because they loaded their data only after all of the page's code had arrived. The first screen of every main page now comes with the page itself, rarely used parts load only when you open them, and pages weigh about half as much, so content appears almost at once.

## 2026-10-12 · Security · v10.2.2 — [Delivery errors no longer show a channel's address](https://watchfor.io/changelog/2026-10-12-delivery-errors-hide-endpoints)

When an alert couldn't be delivered, the error shown in the Delivery log and on the incident page could include the full address the channel posts to, and for some channels that address contains its secret token. Every member of the organization could read it. Errors now show the reason without the address, for new and past deliveries alike.

## 2026-10-12 · Improved · v10.2.2 — [The dashboard on your phone, rebuilt for one-handed use](https://watchfor.io/changelog/2026-10-12-dashboard-on-your-phone)

On a phone the dashboard could hide its bottom bar behind the browser's toolbar, open a menu when you only meant to scroll, and lose your place when you pressed Back. Every screen has now been reworked for phones: the bottom bar stays put, menus open on a tap, Back closes the open menu or dialog in Chrome, the keyboard no longer covers Save, and every control is big enough for a thumb, in both themes.

## 2026-10-12 · Fixed · v10.2.2 — [Check details no longer say Passed when an assertion failed](https://watchfor.io/changelog/2026-10-12-check-details-show-failed-assertions)

We showed a green Passed in a check's details whenever the target answered, even if one of your assertions failed or it returned an error status, while the monitor itself was Down. The details now match the Recent checks list: Reachable, with red badges naming what failed, such as Assertion failed or HTTP 503, and Passed only when every check passed.

## 2026-10-11 · Improved · v10.1.8 — [Calmer lists and clearer incident colours across the dashboard](https://watchfor.io/changelog/2026-10-11-dashboard-lists-incidents-polish)

Lists behaved slightly differently from page to page: a row lit up only partly, a near miss next to a checkbox opened the monitor and dropped your selection, and an acknowledged incident looked as urgent as a new one. Now every list works the same, a click beside the checkbox or the ⋯ button stays put, acknowledged incidents are blue, resolved hours keep their colour but fade, and while a failure is being confirmed the monitor page shows the faster checking pace.

## 2026-10-08 · Improved · v9.8.5 — [Browser checks now identify as WatchFor-BrowserCheck](https://watchfor.io/changelog/2026-10-08-browser-check-user-agent)

Browser checks used the same WatchForBot name as our probes, but only the probes' requests carry a Web Bot Auth signature, so bot-management tools could mistake a browser check for someone faking our bot. Browser checks now end their Chrome user agent with WatchFor-BrowserCheck/1.0. If you allow WatchForBot through a WAF for a browser check's test account or staging host, add WatchFor-BrowserCheck or our addresses on /bot.

## 2026-10-08 · Improved · v9.8.2 — [Terms and Privacy Policy updated: data retention and plan changes](https://watchfor.io/changelog/2026-10-08-terms-privacy-data-retention)

Our Terms and Privacy Policy didn't say how long your monitoring data is kept or what happens to it when you delete something. Now they do: uptime and incident history are kept for as long as the monitor exists, check results, charts and screenshots follow your plan's windows, and deleting a monitor or organization deletes its data automatically, normally within a day. The Terms also describe how upgrades, downgrades and failed payments work.

## 2026-10-07 · Fixed · v9.7.8 — [Page integrity no longer flags Google Analytics beacons as a new data destination](https://watchfor.io/changelog/2026-10-07-integrity-tag-beacons)

If your pages load a tag such as Google tag or Meta Pixel, browser-mode integrity checks could report its collector, for example region1.google-analytics.com, as a new data destination and open an incident right after you accepted a baseline. The tag only sends that beacon when the page stays open long enough, so some checks saw it and others didn't. Collectors of a tag already on the page now count as known. Skimmers and other new sites are still reported.

## 2026-10-06 · New · v9.7.1 — [Clear history windows on every plan, with uptime and incident history kept forever](https://watchfor.io/changelog/2026-10-06-data-retention-by-plan)

You couldn't see anywhere how long WatchFor keeps your monitoring data. Now every plan says it plainly: uptime, SLA and incident history are kept on every plan with no time limit, and individual check results, charts and reports, and screenshots and traces each have a window that grows with the plan. The pricing page shows each plan's history, the docs list every window, range pickers lock ranges past your plan instead of hiding them, and the API says when it cut a window.

## 2026-10-05 · New · v9.6.3 — [Press kit and reviewer fact sheet at /press](https://watchfor.io/changelog/2026-10-05-press-kit)

If you write about monitoring tools, you had to piece WatchFor together from the pricing page, the docs and the homepage, and numbers copied that way go stale. The new press page puts it all in one place: dated facts generated from our live plan data, a copy-paste product description with honest pros and cons, a ready comparison-table row, logos, screenshots and a downloadable press kit.

## 2026-10-05 · New · v9.5.8 — [WatchFor Grades in the API, MCP and A2A, plus a DNS health check](https://watchfor.io/changelog/2026-10-05-grades-in-the-api)

An agent running a check over the API got the raw result and had to work out the verdict itself, so it could disagree with what you saw in the dashboard. Graded checks now return the same A+ to F WatchFor Grade, with the rubric id and the findings that hold it down, each with its fix. diagnose_target includes the TLS and security headers grades, and a new dns-health check grades the zone itself. SDKs 0.14.0 carry the types.

## 2026-10-05 · New · v9.5.8 — [DNS Health Checker: a DNS grade on its own page](https://watchfor.io/changelog/2026-10-05-dns-health-checker)

The DNS health grade lived below the propagation map, so "is my DNS set up well?" meant opening a tool built for a different question. The new DNS Health Checker leads with the A+ to F grade and the fix for every finding, then nameservers, SOA, DNSSEC and CAA, with what every probe location answers as the evidence. Same check and limits as DNS Propagation. Domains on two DNS providers are no longer graded down for SOA serials that differ between providers.

## 2026-10-05 · Improved · Security · v9.5.7 — [Page integrity: accepting a change resolves the incident at once, and the deploy hook is one line](https://watchfor.io/changelog/2026-10-05-integrity-accept-resolves)

After you accepted a change, a security incident could stay open for another 10 minutes while clean checks confirmed it. Now, when the accept leaves nothing to fix, the incident resolves right away and its timeline says who accepted. Your deploy pipeline needs one request: POST …/baseline?fresh=true checks the pages first and accepts what that check saw, never the version from before the release.

## 2026-10-05 · New · v9.5.6 — [Mailbox quota alerts for IMAP and POP3 monitors](https://watchfor.io/changelog/2026-10-05-mailbox-quota-alerts)

A full mailbox doesn't warn you: new mail just bounces, and the senders find out first. IMAP monitors now read the server's quota and show how full the mailbox is (for example 37.2 MB of 100 MB) at the top of the monitor page. Mailbox Almost Full warns at 90 % and turns critical at 99 %, on by default for new monitors with a login. Servers without a quota, and POP3, get Mailbox Size: an alert above a size you set in MB.

## 2026-10-05 · Improved · v9.5.3 — [MCP inventory alerts name the changed tools](https://watchfor.io/changelog/2026-10-05-mcp-inventory-change-details)

A "Tool Inventory Changed" alert used to tell you only how many tools the server had now, so you had to open the monitor to find out what moved. The incident page and every notification now show the count before and after and name the tools that were added, removed or changed, for example "58 → 59 tools (+1 added: mail_server_check; 2 changed: run_diagnostic, list_diagnostics)". The incident page lists them all and links to the monitor's change history.

## 2026-10-05 · New · v9.4.8 — [WatchFor Grade: one A+ to F scale for security headers, speed, DNS, MCP servers and email](https://watchfor.io/changelog/2026-10-05-watchfor-grade)

A pile of findings doesn't tell you what to fix first, and every tool used to grade in its own way. WatchFor Grade puts our graded tools on one A+ to F scale: every grade starts at A+, each problem can only lower it, and the reasons and exact fixes sit under the letter. New grades for security headers, Core Web Vitals, DNS health and MCP servers, and a real rubric for Email Health. A server we can't reach gets no grade, never an F.

## 2026-10-05 · New · v9.4.6 — [New free tool: Mail Server Checker](https://watchfor.io/changelog/2026-10-05-mail-server-checker)

Checking a mail setup usually means a handful of separate tests, one host and one port at a time, and guessing what the results add up to. The new free Mail Server Checker takes a domain, finds its inbound MX, SMTP submission, IMAP and POP3 servers, and grades each one A+ to F from three regions, with the exact fix for every problem. It never logs in and never sends a message.

## 2026-10-05 · Security · v9.4.3 — [HTTP, API and MCP credentials are encrypted, and checks can use org secrets](https://watchfor.io/changelog/2026-10-05-request-secrets-and-variables)

The password, bearer token or API-key header on an HTTP, API or MCP check was readable by every member who opened its settings. These values are now stored encrypted, shown only as saved, and asked for again if the check's URL moves to another host. To reuse one token across checks or rotate it in one place, add it under Settings → Variables and type {{NAME}} in an auth field, header or request body.

## 2026-10-04 · Fixed · v9.3.8 — [API check results return yes/no signals as true or false](https://watchfor.io/changelog/2026-10-04-api-check-signals-boolean)

The API documented some check signals as true/false but returned 1 or 0, so a strict comparison in your script could quietly never match. smtp_tls_supported, smtp_open_relay, smtp_ptr_valid, tcp_match and sitemap_found in GET /v1/monitors/{id}/checks and the check detail now come back as real booleans, as the OpenAPI spec and SDK types always said. If you compared them with 1, compare with true instead.

## 2026-10-04 · New · Email · v9.3.3 — [IMAP, POP3 and email round-trip monitors, and SMTP login checks](https://watchfor.io/changelog/2026-10-04-email-monitors)

Your mail server can answer every check while nobody can log in, or your password-reset email never arrives. New IMAP and POP3 monitors log in to a mailbox and check TLS, the certificate and whether new mail still arrives. The email round-trip monitor sends a test message through your SMTP server, finds it in the mailbox and reports delivery time, Inbox or Spam and SPF, DKIM and DMARC. SMTP monitors can now log in on 587 or 465. On Pro and Business.

## 2026-10-04 · Improved · Security · v9.3.1 — [Page integrity: accepting a change closes the incident in a minute](https://watchfor.io/changelog/2026-10-04-integrity-accept-checks-now)

After you accepted a change on a page integrity monitor, the incident stayed open until the next scheduled check, up to the monitor's full interval. Now accepting starts a check of the pages straight away, and the incident closes as soon as that check matches the new baseline, usually within a minute or two. It works the same from the dashboard, the API and the deploy pipeline script in the docs.

## 2026-10-04 · New · v9.2.6 — [A how-to guide for every free tool](https://watchfor.io/changelog/2026-10-04-free-tool-guides)

A free tool is only useful if you know what its answer means. Each of our 60 free tools now has its own guide: a real problem it settles, a real run with the result explained line by line, the same check from the command line, and what to do when the answer is bad. Find them under Guides on the blog, or follow "How to use this tool" on any tool page.

## 2026-10-04 · Fixed · v9.2.5 — [Free tools: SRV and DMARC lookups, clearer SSL errors and honest ping results](https://watchfor.io/changelog/2026-10-04-free-tools-clearer-results)

Some free tools refused valid input or showed a misleading result. DNS lookups now accept underscore names such as _dmarc and SRV records. The SSL checker shows why a certificate was rejected, for example a name mismatch, instead of "expired". Short HSTS lifetimes show in seconds, silent traceroute hops say "no reply", and asking ping for more packets no longer reports false loss.

## 2026-10-04 · Fixed · v9.2.5 — [Data breach monitors now spot breaches the day they are published](https://watchfor.io/changelog/2026-10-04-breach-monitor-new-breaches)

A breach that Have I Been Pwned added recently but that happened years ago could slip past the "new breach" rule, because its age was read from the breach date. Monitors now use the date the breach was added, so a newly published breach of your domain alerts within the rule's window.

## 2026-10-04 · Fixed · v9.2.5 — [More accurate blacklist and DKIM results](https://watchfor.io/changelog/2026-10-04-blacklist-and-dkim-accuracy)

Two checks could tell you everything was fine when it was not, or fail when it was fine. The built-in blocklists no longer include SORBS, which shut down in 2024 and answered "not listed" for everything. And DKIM keys without the optional v=DKIM1 tag, as some email providers publish them, now count as valid in Email security monitors and the free DKIM checker; a revoked key is shown as revoked.

## 2026-10-04 · Security · v9.2.3 — [The consent screen no longer shows registered apps as WatchFor's own](https://watchfor.io/changelog/2026-10-04-oauth-consent-first-party)

An app registered while signed in to WatchFor could appear on the sign-in consent screen as a WatchFor app, without the "not verified" warning. App registration is now anonymous, so every third-party app shows its own name, where it sends you and whether it is verified.

## 2026-10-04 · Fixed · v9.2.3 — [Server alerts now reach your contact group from the start](https://watchfor.io/changelog/2026-10-04-host-alerts-reach-your-team)

Alerts for a new server, such as Agent Silent or Disk Almost Full, could fire without reaching anyone until one of its alert rules was edited. New servers now notify your default contact group straight away, and servers added earlier get their route the next time anyone in the organization opens Hosts.

## 2026-10-04 · Fixed · v9.2.3 — [Favicon monitors show the icon again](https://watchfor.io/changelog/2026-10-04-favicon-preview)

The Favicon Preview card on a favicon monitor showed a broken image for every site, because browsers were blocked from loading the icon straight from the site. It now shows WatchFor's own copy of the site's icon.

## 2026-10-03 · New · Alerting, SSL, Domains · v9.2.4 — [Certificate and domain expiry: two levels, reminder days and clearer alerts](https://watchfor.io/changelog/2026-10-03-expiry-reminders)

An expiry alert arrived once, said "Degraded", and then went quiet until the certificate actually lapsed. Expiry rules now have a warning level and an optional critical level, and you can pick up to five reminder days, such as 14 and 3, when the open incident is sent again unless someone has acknowledged it. The alerts say what expires and when: "certificate expires in 29 days (on 2026-11-01)".

## 2026-10-02 · Fixed · v9.2.2 — [Switching organizations works on the first try](https://watchfor.io/changelog/2026-10-02-organization-switch-first-try)

If you belong to several organizations, the first switch after signing in or reloading the page could quietly put you back in the organization you came from, and only a second try stuck. That was our bug: the dashboard briefly disagreed with itself about which organization was active and restored the old one. A switch now sticks the first time, every time.

## 2026-10-01 · New · v9.1.9 — [Prometheus metrics endpoint and Grafana dashboard](https://watchfor.io/changelog/2026-10-01-prometheus-metrics-endpoint)

If your team lives in Grafana, WatchFor was one more tab to check. Now your own Prometheus can scrape GET /api/v1/metrics with an API key: monitor status, uptime over 24 hours, 7 and 30 days, response times, certificate and domain expiry, heartbeat check-ins and hosts, refreshed every minute. A ready-made Grafana dashboard and an open-source exporter come with it. Included in the Pro plan and above.

## 2026-10-01 · Improved · v9.1.8 — [Browser check screenshots show what each step checked](https://watchfor.io/changelog/2026-10-01-browser-check-step-screenshots-focus)

A step that checked a result further down the page used to be photographed at the top of it, so the screenshot missed the very thing the step proved. Each step's screenshot now shows the element the step last clicked, filled or checked: when it is below the fold, it is brought into view and outlined, and the page's scroll is put back before the next step runs.

## 2026-09-30 · Fixed · v9.0.9 — [REST API: a monitor update with an unknown field is refused, not ignored](https://watchfor.io/changelog/2026-09-30-api-patch-unknown-fields)

If you sent PATCH /v1/monitors/{id} with interval_seconds (the name a monitor is read with), the API answered 200 and quietly kept the old interval. That was our bug. An update now returns 400 naming every field it doesn't take and what to send instead, e.g. "interval" in seconds, and nothing is changed. Requests that only use the documented fields work as before.

## 2026-09-29 · New · Playwright · v8.9.5 — [Browser checks: run your Playwright tests as monitors](https://watchfor.io/changelog/2026-09-29-playwright-browser-checks)

Your login page can answer 200 while nobody can actually sign in, and an uptime check will never notice. Browser checks run your real Playwright test on a schedule in a sandboxed Chromium: sign in, search, check out, step by step. Every run shows step timings, screenshots, errors and Web Vitals; failures keep a Playwright trace. A retry and a confirmation run come before any alert, and neither counts against your plan. Start from a working example, paste codegen output or a Chrome Recorder export, or ask your agent. One hourly check is free.

## 2026-09-28 · Improved · v8.8.0 — [Every changelog update now has its own page and share link](https://watchfor.io/changelog/2026-09-28-changelog-update-permalinks)

Pointing a teammate at one change used to mean sending the whole changelog and adding "scroll down to the 28th". Every update now has its own page with a link you can paste anywhere, and a share preview that shows its title. On the changelog, hover an update and click the share icon to copy its link or share it. Older links to an update on the list still work, and the update lights up briefly when you land on it.

## 2026-09-28 · Fixed · v8.7.9 — [Smart Website Checker no longer calls a valid domain expired](https://watchfor.io/changelog/2026-09-28-smart-check-unknown-domain-expiry)

If the domain registry didn't answer during a scan, the Smart Website Checker could report the domain as "expired 0 days ago" and cap the grade at F, even when the registration was valid for years. That was our bug. An unanswered or unpublished expiry date now reads as "couldn't check" and doesn't count towards the grade, and a brief registry hiccup is retried minutes later instead of being remembered for a day.

## 2026-09-25 · New · Security · v8.7.6 — [Page integrity monitoring: catch defacement and injected scripts](https://watchfor.io/changelog/2026-09-25-page-integrity-monitoring)

An injected card skimmer, a login form that posts elsewhere or hidden spam links leave your page returning 200 OK, so uptime checks stay green. Page integrity compares your key pages with a baseline you accepted and alerts on new script sources, changed script code, hijacked forms, redirects, tamper words and weakened security headers, while your own builds stay quiet. Browser mode adds runtime scripts and screenshots. Accept changes in one click, or from your deploy pipeline via the API, MCP or SDKs. From the Starter plan.

## 2026-09-25 · Fixed · v8.5.8 — [Saving monitor settings no longer changes the timeout](https://watchfor.io/changelog/2026-09-25-settings-keep-timeout)

If you never set a timeout, any save on a monitor's Settings tab quietly stored 30 seconds — a DNS check that gives up after 5 seconds waited 30, and multi-page checks lost half their time. The field now stays empty until you fill it in, shows the default that actually applies, and a save keeps it that way.

## 2026-09-25 · Improved · v8.3.2 — [Monitors show their site's icon](https://watchfor.io/changelog/2026-09-25-site-favicons)

In a long monitor list every website looked the same — a name and a globe — so finding the right one meant reading. Website monitors now show the site's own icon in the monitor list, the cards, the monitor page and the ⌘K search. It appears a few seconds after you add a monitor, stays in sync when the site changes its icon, and the usual icon stays for sites that have none.

## 2026-09-23 · New · v8.2.9 — [Status pages can say why something is down](https://watchfor.io/changelog/2026-09-23-status-page-incident-cause)

An auto-published incident always read "db-01 service disruption", whether a disk had filled up or a site was returning errors — visitors had to wait for someone to write an update. Each status-page component now chooses how much it explains: Status only (the default, unchanged), Cause — the kind of problem in plain words, such as "Disk space running low" or "Returning errors", never a value or path — or Full detail, the detected value ("Disk / is 92.0% full") for internal pages. It works for monitors and servers alike.

## 2026-09-23 · Fixed · v8.2.7 — [Status pages keep showing outages that last longer than a week](https://watchfor.io/changelog/2026-09-23-status-pages-long-incidents)

An incident still open after seven days could drop off a status page: a page created or a host added after that point showed "Operational", and an already-published notice could be marked resolved while the outage continued. Open incidents are now published and kept open for as long as they last, and a notice is only resolved once its incident really is. A component with nothing attached now shows "No data" instead of green, and report incident counts include incidents that started before the period and were still open.

## 2026-09-23 · Fixed · v8.2.7 — [Hosts can be put in maintenance, and host alerts say which disk or process](https://watchfor.io/changelog/2026-09-23-hosts-maintenance-and-limits)

Hosts were missing from the maintenance window picker, so a planned reboot still paged "Agent Silent". They are now listed under Hosts in the picker, and the host page has Schedule maintenance. Disk, inode, disk-I/O and watched-process alerts now name the filesystem, device or process ("Disk / is 92% full", "Process nginx is not running"). After a downgrade, hosts above the new limit are paused, not left running, and resume by themselves. Stale now means three missed pushes, not a fixed 90 s.

## 2026-09-23 · Fixed · v8.2.7 — [API: host tags, host incidents in the summary, masked URLs in incidents](https://watchfor.io/changelog/2026-09-23-api-hosts-and-redaction)

Three things the API got wrong. Host tags always came back as an empty list — they are now key=value strings (env=prod), the same chips the dashboard shows. GET /v1/summary left host incidents out of its incident counts while the dashboard counted them; a silent agent or a full disk is now a firing incident in both. And the fire-time snapshot on an incident now masks credentials inside URLs (user:pass@, ?token=) the way the probe result view does, not only values under secret-looking keys. The MCP maintenance filter offers only the states the API accepts.

## 2026-09-23 · Improved · v8.2.5 — [You are told when the person on call cannot be paged](https://watchfor.io/changelog/2026-09-23-oncall-unreachable-notice)

A schedule could name someone who had no notification method set up, and the only sign was a small warning icon inside the schedule editor — a page to them went nowhere. When the person on call right now has no enabled method under My notifications, the dashboard shows an amber notice and the on-call page a banner naming them and the schedule. The API already reported it as reachable: false; now people see it too.

## 2026-09-23 · Fixed · v8.2.4 — [CDN check: a warm cache no longer grades worse than a cold one](https://watchfor.io/changelog/2026-09-23-cdn-grade-warm-cache)

The CDN check scored evenness between regions as a ratio to the regional median, so a site that got fast — 50 ms in Europe, 150 ms in Africa — read as a 3× outlier and dropped from A to B, while the same site at a uniform 1 s everywhere graded A. A region now counts as an outlier only when it is genuinely slow in absolute terms (400 ms or more) and trails its regional median by at least 300 ms as well as 2.5×. When every location answers in under 400 ms the latency category simply says so. Applies to the free CDN check and to CDN monitors; rubric version 1.1.

## 2026-09-22 · Improved · v8.2.2 — [The API and MCP now tell agents what the dashboard tells you](https://watchfor.io/changelog/2026-09-22-api-parity-with-dashboard)

An assistant reading WatchFor through the API or MCP saw less than a person on the dashboard. Now any check run opens in full, redacted like the probe-result view; a monitor says whether alerts are muted or routed, its last and next check and open incident; the summary counts hosts, fleet health and silent monitors; maintenance windows say if they are active and when they run next; status pages report overall and per-component status; on-call says who is on now and next; notification channels are readable with secrets redacted. Six new MCP tools and a who-is-on-call A2A skill.

## 2026-09-22 · Improved · v8.2.0 — [Incidents in the API and MCP now say what was detected](https://watchfor.io/changelog/2026-09-22-incident-root-cause-in-api)

An assistant reading an incident through the API or MCP got the rule that fired but not what the probe actually saw, so it could not tell you the site answered 404. Every incident now carries root_cause (expected vs detected, e.g. "HTTP Status Code = 404"), the fire-time trigger snapshot (the metrics the probe reported, which locations confirmed, the rule expression and threshold), fire_count and flapping — the same facts the incident page shows. GET /v1/incidents/{id} adds the event timeline. Values under sensitive keys are redacted.

## 2026-09-22 · New · v8.1.6 — [Hosts everywhere: status pages, reports, search, API, MCP and A2A](https://watchfor.io/changelog/2026-09-22-hosts-everywhere)

Servers running the agent were only visible on the Hosts pages. Now a host can sit on a status-page component (pick it under Hosts in the component editor; it shows online or down from its own alerts), reports carry a Hosts section with uptime, incidents and average CPU, memory and disk per server, and ⌘K finds hosts by name, address or tag. For agents and integrations there is GET /v1/hosts with liveness, current gauges and metric time series, the list_hosts, get_host and get_host_metrics MCP tools, the check-hosts A2A skill, and hosts in the TypeScript, Python and Ruby SDKs.

## 2026-09-22 · Improved · v8.0.8 — [A calmer dashboard that says what is wrong, for monitors and hosts alike](https://watchfor.io/changelog/2026-09-22-dashboard-status-strip)

The dashboard used to open with a wall of tiles and a date picker. It now opens with one sentence — the worst thing open right now, in its colour — and three quiet numbers beside it: how much of what you watch is fine, your monitors and your hosts, with only the trouble counts coloured. Hover the health number to see exactly how it is computed from your own figures. Incidents per day are stacked by severity in the same colours, the noisiest monitors and hosts are listed together, and a slim notice appears only while a monitor has no notification route. Everything covers the last 30 days.

## 2026-09-21 · New · v8.0.3 — [Server monitoring and the open-source agent, explained on their own pages](https://watchfor.io/changelog/2026-09-21-server-monitoring-pages)

Could WatchFor see inside a server, not only reach it from the outside? The question came up often, and the answer lived in the docs. Two new pages fix that. Server monitoring shows what a host reports — CPU, memory, disk, network and processes — the alert rules that come switched on, and what each plan includes. The agent explains the open-source watchfor-agent: what it collects, how it is secured (its own unprivileged user, outbound HTTPS only, signed and reproducible releases) and how to install it with one command. Both are in the Product menu under Servers & Hosts.

## 2026-09-21 · Improved · v8.0.2 — [The public address a cloud assigned to a host](https://watchfor.io/changelog/2026-09-21-host-public-address)

On a cloud instance the elastic IPv4 never appears on the machine itself (the provider NATs it), so the host page could show a public address only as the one its batches arrived from, and never the IPv6. The agent (0.8.0) now asks the cloud's metadata service for the addresses it assigned from the outside, IPv4 and IPv6, on AWS, Google Cloud, Azure, Alibaba, Tencent, Scaleway, DigitalOcean, Hetzner, Vultr, Linode and OpenStack. They show in the host's address table as "public · cloud" and are searchable in the hosts list. Only real public addresses get through.

## 2026-09-18 · New · v7.9.9 — [One screen on the server for the whole agent](https://watchfor.io/changelog/2026-09-18-agent-screen)

Checking what the agent was doing meant reading agent.yml, tailing the journal and running commands. Run watchfor-agent with no command now and it opens one screen: live CPU, memory, disks, network and busiest processes, the batch the next push carries, every setting editable in place, the service with its log, and updates. Arrow keys move, Enter chooses. A health check tests files, permissions, service, timer and the way out to WatchFor and repairs what it safely can (also as watchfor-agent health).

## 2026-09-17 · Improved · v7.9.9 — [Agent config that shows what it found](https://watchfor.io/changelog/2026-09-17-agent-config-detect)

Setting up the agent on a server with dozens of mounts or interfaces meant guessing names before you could narrow what it watches. The installer now writes agent.yml with every key explained and the mounts, disks and interfaces it found listed inside, so you edit a list instead; watchfor-agent config detect prints the same on demand. New: facts.cloud_metadata to switch off the cloud instance-size lookup, and log.level debug to see every push and lookup in the journal.

## 2026-09-16 · Improved · v7.9.4 — [Host cards: disk sizes on hover, address under Network, default contact group](https://watchfor.io/changelog/2026-09-16-host-cards-alerting-defaults)

Hosts you added were not routed to your default contact group the way a new monitor is, so their alerts could reach no one until you picked a group by hand — every host now starts with the same default group, existing hosts included, and the host's Alerting tab shows the groups, thresholds and reminders you saved instead of defaults after a reload. On the host overview, hovering a disk shows the used, total and free space; the host's address moved to the Network card; the System card shows the architecture and virtualization as badges.

## 2026-09-16 · Improved · v7.9.4 — [Agent installer needs no extra packages](https://watchfor.io/changelog/2026-09-16-agent-install-no-packages)

The one-line install could stop on servers where the minisign package does not exist, Ubuntu 18.04 among them, asking you to install it first. It now needs nothing beyond curl, tar and sha256sum: the download is checked against checksums that watchfor.io serves only after verifying the release signature on our side, and the agent then verifies that signature itself with the key built into it. The install command fetches the script from watchfor.io/agent/install.sh, a signed copy from the release, and sudo watchfor-agent uninstall removes the agent, its service, state, token and user cleanly.

## 2026-09-16 · Improved · v7.9.3 — [Hosts show their own address, plus where they reach us from](https://watchfor.io/changelog/2026-09-16-host-address)

The Address column showed the address the last batch arrived from, which behind Cloudflare or a NAT gateway was not the server's own address at all. Each host now shows its main address (the one it uses to reach WatchFor), with the public address it arrives from underneath when the two differ, and only real interfaces in the details, without the container and bridge plumbing. Needs agent 0.4.0 for the main address.

## 2026-09-16 · Improved · v7.9.2 — [Published security and responsible disclosure policy](https://watchfor.io/changelog/2026-09-16-security-policy)

If you found a security issue there was no page saying how to report it or what to expect, and security.txt pointed at the wrong place. /docs/security now explains how we protect your data, what is in scope for research, how to report a vulnerability and how quickly we answer. security.txt links to it.

## 2026-09-16 · Security · v7.9.1 — [Clearer app authorization screen and a Connected apps list](https://watchfor.io/changelog/2026-09-16-oauth-consent-connected-apps)

When an AI client or app asked for access to your account over OAuth, the approval screen showed only an opaque client id. It now names the application, says where you will be sent after approving and marks apps WatchFor does not recognise as not verified, so a look-alike request stands out. Under Account settings → Security you can now see every app you have approved, when it last used its access, and revoke it in one click. Automatic client registration is rate-limited and cannot use the WatchFor name.

## 2026-09-16 · New · v7.8.9 — [Agent upgrades: update available badge and a verified one-command upgrade](https://watchfor.io/changelog/2026-09-16-agent-self-update)

Until now a new agent release meant checking GitHub yourself and repeating the install. The server now tells each running agent about the newest release, the host page shows an "update available" badge with the command, and `sudo watchfor-agent upgrade` installs it: signature and checksum verified, only GitHub's release hosts accepted, atomic swap, service restart. Servers that should stay current can opt in to a daily timer with `--auto-update`.

## 2026-09-15 · Fixed · v7.8.8 — [Reports build again for organizations with hosts](https://watchfor.io/changelog/2026-09-15-reports-with-hosts)

If your organization had a server with the agent installed, the Reports page (and the weekly and monthly email reports) failed with "Could not build the report". Hosts were being counted as monitors without check history. They are left out of monitor reports now; a hosts section is coming.

## 2026-09-15 · New · v7.8.5 — [Alert rules, incidents and uptime for hosts](https://watchfor.io/changelog/2026-09-15-hosts-alerting-incidents-sla)

A full disk or a quiet agent used to be something you noticed on a chart. Every host now has Alerting, Incidents and Uptime SLA tabs, like a monitor: three rules come switched on (agent silent, disk almost full, memory pressure) and a dozen more are one click away — CPU, load per core, I/O wait, swap, inodes, zombie or blocked processes, a watched process that is not running, a reboot. They notify through the same channels, on-call rotations and maintenance windows as everything else. The host page also gains Settings with notes, self-explaining cards, and a monitor-style header.

## 2026-09-15 · Improved · v7.8.5 — [Warning and critical levels can be switched on separately](https://watchfor.io/changelog/2026-09-15-alert-levels-switch-separately)

Presets with two levels — response time, Core Web Vitals, and the new server rules for CPU, memory, disk, load, I/O wait, steal, swap and inodes — used to come as an all-or-nothing pair. Each level now has its own switch next to its slider: keep only the critical page, keep only a warning heads-up for Slack, or both. A level you switch off stays visible, dimmed, with its threshold remembered.

## 2026-09-15 · Improved · v7.8.3 — [Hosts list: search, filters, sorting and row actions](https://watchfor.io/changelog/2026-09-15-hosts-list-search-actions)

With more than a few servers, finding the one you mean took scrolling. The Hosts list now looks and works like the Monitors list: search by name, tag, OS, CPU model or IP address, filter by status, sort by CPU, memory, disk or last seen, page through long lists, and rename, rotate the token or remove a host straight from its row. Each host also shows the address its agent last reported from and, from agent 0.2, its interface addresses.

## 2026-09-14 · New · v7.7.4 — [Hosts: server monitoring with the open-source watchfor-agent](https://watchfor.io/changelog/2026-09-14-hosts-server-monitoring)

Uptime checks see a server from the outside; you also wanted to know what is happening inside it. Hosts is a new section in the dashboard: add a host, run one install command on the server, and within a minute you have CPU, load, memory and swap, disk usage and I/O, network throughput, process counts, the top processes and any process you ask it to watch — refreshed every 15–60 seconds by plan. The agent is open source (Go, one static binary, one dependency), sends only outbound HTTPS, never receives commands, and keeps batches on disk while it cannot reach us so history has no gaps.

## 2026-09-12 · New · v7.6.9 — [27 new free tools, from MX lookup to an SMTP tester](https://watchfor.io/changelog/2026-09-12-free-tools-record-lookups-and-testers)

Searching for "MX lookup" or "HSTS checker" used to land you on a general DNS or headers tool where you had to pick the right option yourself. Every common question now has its own page: per-record DNS lookups (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, reverse DNS), SSL expiry, TLS versions, security headers, HSTS, HTTP status, domain expiry, sitemap validation, gzip, and crontab, epoch, CIDR and SLA calculators. Five tools are new: SMTP test, NTP test, WebSocket tester, a redirect checker that follows every hop, and IP lookup. Agents get the probe-backed ones as live diagnostics too.

## 2026-09-11 · Fixed · v7.6.6 — [Core Web Vitals monitor pages open again](https://watchfor.io/changelog/2026-09-11-core-web-vitals-page-crash)

Opening a Core Web Vitals monitor showed "Application Error — Cannot read properties of undefined (reading 'short')" instead of the page. The metric cards had started showing Interaction to Next Paint before its definition existed, and the page fell over on the missing entry. INP is now defined with web.dev's thresholds, and a missing metric definition is caught before a release rather than by you.

## 2026-09-11 · Improved · v7.6.5 — [Comparison pages now quote independent agent-readiness scores](https://watchfor.io/changelog/2026-09-11-comparison-agent-readiness-scores)

If you were weighing us against another tool on how well an AI agent could actually use it, the comparison pages gave you our word for it. Each one now shows the score two independent scanners — ora.ai and is-agentic.com — publish for both domains, with the scan date and a link to the report, fetched live rather than typed in so the number is the one they show today. A domain neither service has scanned says so; we never request scans of other companies' sites. A new row also lists the free diagnostic tools each side offers without an account.

## 2026-09-11 · Fixed · v7.6.2 — [Agent-readiness scores on the Infrastructure page are now live](https://watchfor.io/changelog/2026-09-11-live-agent-readiness-badges)

The Infrastructure page listed our independent agent-readiness scores as typed-in text, and one of them was out of date — it still said "A grade" after ora.ai had rated us A+. The card now shows the same three live badges as the About page — ora.ai, is-agentic.com and the WebMCP audit — drawn from the scanners' current reports, so what you read there is what they say today, not what someone last typed.

## 2026-09-11 · Improved · v7.5.8 — [Comparison pages now show the product](https://watchfor.io/changelog/2026-09-11-comparison-pages-show-the-product)

If you landed on one of our comparison pages from a search, the first thing you read was what the other tool does better than us — honest, but a strange introduction when you had never seen WatchFor at all. The dashboard now appears right under the intro, on laptop, tablet and phone, so you can see what you are comparing before the argument starts. The back link moved to the left, where navigation belongs.

## 2026-09-11 · Fixed · v7.5.7 — [Blog links now show a preview when you share them](https://watchfor.io/changelog/2026-09-11-blog-link-previews)

Share one of our articles to Slack, LinkedIn or X and you would have got a bare link with no image. Every post used its SVG cover for the preview, and none of those networks render SVG — they showed nothing and reported no error, so it went unnoticed. Each post now has a proper share card with its title, category and date, generated automatically, so older posts are fixed too.

## 2026-09-11 · Fixed · v7.5.6 — [API monitoring now appears in the plan comparison](https://watchfor.io/changelog/2026-09-11-pricing-lists-api-monitoring)

If you compared plans looking for API monitoring, you would not have found it — the check type shipped in August but was never added to the comparison table, so the one row a developer scans for was simply missing. It is there now, on every plan including Free. Nothing about your plan changed; the table was wrong, not the product.

## 2026-09-11 · Fixed · v7.5.2 — [The Product menu fits on shorter screens](https://watchfor.io/changelog/2026-09-11-product-menu-fits-short-screens)

On a laptop screen the Product menu ran off the bottom, so the last few monitor types could not be reached at all. The columns are now balanced so no single one carries the whole list, and if the menu still runs out of room it scrolls inside itself instead of disappearing past the edge of the window.

## 2026-09-11 · Improved · v7.4.9 — [Clearer rules for the free tools](https://watchfor.io/changelog/2026-09-11-free-tools-terms)

The free tools had no terms of their own, which left both sides guessing. The Terms now say plainly what they are for — systems you own or are authorised to test — and what they must not be used for, including scanning other people's systems, hunting vulnerabilities, or routing traffic through our probes to hide where it came from. The Privacy Policy now sets out exactly what is kept when you run a tool, for how long, and what is never kept: credentials are stripped before anything is written and request bodies are never stored.

## 2026-09-11 · New · v7.4.7 — [Comparison, alert-channel and audience pages](https://watchfor.io/changelog/2026-09-11-comparisons-integrations-audiences)

Deciding whether a monitoring tool fits you meant reading marketing copy and guessing. There are now dated, sourced comparisons against fourteen services — each naming what that product does better than ours — plus a page per alert channel showing what the alert actually looks like once it lands in Slack, Telegram or PagerDuty, and pages written for agencies, developers and online stores that say plainly where we are not the right answer.

## 2026-09-11 · Fixed · v7.4.3 — [Monitor charts now use your timezone and clock format](https://watchfor.io/changelog/2026-09-11-monitor-charts-profile-clock)

The charts on CDN and ping monitors drew their time axis in whatever your browser decided, so the labels under them disagreed with every other timestamp on the page and showed a 12-hour clock even with 24-hour set in your profile. Axis labels, hover tooltips and the CDN cache strip now all read in your profile's timezone and format, and a tooltip carries the date as well — a point twenty hours back should not look like it happened today.

## 2026-09-10 · Improved · v7.2.5 — [CDN monitors now watch caching, not just the provider name](https://watchfor.io/changelog/2026-09-10-cdn-monitor-measures-caching)

A CDN monitor that only told you which provider was in front answered a question you already knew the answer to. It now measures whether the edge is actually caching your URL and how fast it responds, with charts for hit ratio, time to first byte and latency by region, and alert rules for the failure that really costs you — caching quietly stopping while everything still looks up. New metrics: `cdn.cache_hit_ratio`, `cdn.ttfb_ms` and `cdn.status_code`. Over the API the target may now include a path, because `/` and `/static/app.js` rarely cache the same way.

## 2026-09-10 · Improved · v7.2.4 — [CDN Checker is now a global CDN analyzer](https://watchfor.io/changelog/2026-09-10-global-cdn-analyzer)

Knowing you are behind Cloudflare was never the interesting part — you already knew that. Paste a URL and WatchFor requests it three times from every probe location, then tells you whether it is really being cached, which edge answered where, whether traffic is steered by anycast or by DNS, and which regions behave differently. Detection recognises over sixty providers — hosting platforms like Hostinger, Kinsta and Wix included — with the source behind every claim. You get a graded report, a clickable world map, and a guide to what HIT, MISS and EXPIRED mean. Still free, at /cdn-checker.

## 2026-09-10 · Improved · v7.1.0 — [One response timeout field, showing the number that actually applies](https://watchfor.io/changelog/2026-09-10-monitor-timeout-one-field)

The timeout was in two places depending on what you were monitoring — a slider in General Settings for websites and APIs, a number box buried under Advanced Options for DNS, SSL and a dozen others — and for monitors that never had one set it showed 30 seconds while the check was really giving up at 15. There is now one field, next to the interval, for every type: it says the range it accepts and the number that applies when you leave it empty. Websites and APIs store the 30-second default explicitly, so what you read is what the check uses.

## 2026-09-08 · Improved · v7.0.9 — [The website audit no longer marks you down for blocking a region](https://watchfor.io/changelog/2026-09-08-audit-rubric-geo-blocks)

If you block traffic from countries you don't serve — a normal thing to do — the Smart Website Checker was taking points off for it, while admitting in the same breath that it cannot tell a deliberate geo-block from a fault. Reachability is now reported and never scored: you still see exactly which location got what, named and explained, but the grade is built only on things we can actually interpret. The six points moved to the certificate, DNS and address checks, and the published rubric is updated to match.

## 2026-09-08 · New · v7.0.5 — [Five new guides on the security headers most sites are missing](https://watchfor.io/changelog/2026-09-08-security-header-guides)

"Add a Content-Security-Policy" is easy advice to give and hard to act on if nobody ever explained what one is. There are now full guides for the five headers the website checker flags most often — CSP, clickjacking, MIME sniffing, Referrer-Policy and Permissions-Policy — each covering what the header does, what actually goes wrong without it, and how to roll it out without breaking a working site. The audit links straight to them from the finding.

## 2026-09-08 · Improved · v7.0.4 — [Every website audit finding now explains itself](https://watchfor.io/changelog/2026-09-08-website-audit-explains-itself)

A scan could tell you "No CAA record" and leave you to go and look up what that is, let alone whether it mattered. Every finding in the Smart Website Checker now comes with a plain-language explanation, the exact next step where there is one, and a link to the full write-up. Each section says what it actually checks before it says what it found, the summary is grouped into what to fix, what to do next and what is already working — and two checks that were sometimes quietly refused mid-scan now always run.

## 2026-09-08 · Improved · v7.0.4 — [The website audit now checks reachability from three regions](https://watchfor.io/changelog/2026-09-08-audit-checks-three-locations)

"It works for me" and "it works" are not the same sentence — a route can be blackholed, a firewall can block a whole country, and a CDN edge can be unwell in one region while everywhere else looks perfect. The Smart Website Checker now requests your page from up to three probe locations in different regions and shows what each one saw, with its status and time to first byte. A location that cannot reach you costs points but never fails the site outright: from the outside, a geo-block and a problem on our own network look identical.

## 2026-09-08 · Improved · v7.0.3 — [The website audit now ends in a grade, and checks three more things](https://watchfor.io/changelog/2026-09-08-website-audit-grade)

The Smart Website Checker gave you a scorecard, but no way to answer "so is this good or not?" in one glance. It now ends with a letter grade, alongside exactly what cost it points and anything it could not measure — the full rubric is published, including what caps a grade no matter how well the rest scores. Three new checks arrived with it: whether your address sits on a mail blacklist, whether your site has settled on one address with http redirecting to https, and whether an advertised IPv6 address actually answers.

## 2026-09-08 · Fixed · v7.0.2 — [TLS grade alerts clear as soon as you fix the problem](https://watchfor.io/changelog/2026-09-08-tls-grade-alerts-clear-quickly)

A TLS grade alert could stay open for days after the certificate configuration was already fixed. The grade is measured by one check per monitor rather than every check, and closing the incident was waiting for three of those measurements — which used to arrive once a day. The grade is now measured every hour, and one healthy measurement closes the alert. Nothing to change on your side; existing alerts pick up the new behaviour.

## 2026-09-07 · Improved · v6.9.3 — [AI browsers can now use the site's own tools](https://watchfor.io/changelog/2026-09-07-webmcp-live-in-chrome)

If you browse with an AI assistant, it had to read our pages like a person and guess where to click. watchfor.io publishes nine in-page tools for agents — a site overview, documentation search, opening a free tool, starting a website audit — and Chrome can now hand them to your assistant directly, so it acts instead of guessing. Nothing to install, and no account needed for these.

## 2026-09-07 · Fixed · v6.9.1 — [Pages and tools broken by the new security policy work again](https://watchfor.io/changelog/2026-09-07-blog-and-legal-pages-render-again)

Blog posts and legal pages showed an error screen instead of their text, the world map on the DNS propagation checker stayed empty, the email header analyzer could not look up published records, and monitor screenshots did not appear. The stricter browser security policy we switched on earlier today was blocking them. Everything renders again — the article pages are now built on our servers, so they also load faster — and the map data now comes from us instead of a third-party CDN.

## 2026-09-07 · Improved · v6.8.8 — [SDKs 0.7.0 for TypeScript, Python and Ruby](https://watchfor.io/changelog/2026-09-07-sdks-0-7-0)

The SDKs could not reach the new live diagnostics, so anything using them had to fall back to raw HTTP. Version 0.7.0 of the watchfor package on npm, PyPI and RubyGems adds a diagnostics namespace — list the checks with your remaining allowance, run one against any public target, or ask for the whole multi-region verdict in a single call — and regenerates the types from the current specification.

## 2026-09-07 · New · AI · v6.8.8 — [Live diagnostics — your AI assistant can now investigate, not just read](https://watchfor.io/changelog/2026-09-07-live-diagnostics-for-agents)

An assistant connected to WatchFor could tell you what your monitors had recorded, but it could not find anything out — whether a DNS change has propagated, what a server returns right now, whether port 443 answers from Singapore. It can now run all 18 checks from the Toolbox against any public target, monitored or not, over the API, MCP and A2A, and one call diagnoses a target from up to three regions at once. Runs need a read+write key and spend the same hourly allowance as the same check clicked in the dashboard; every response says how much is left. See /docs/api/diagnostics.

## 2026-09-07 · Improved · v6.8.1 — [Re-send an invitation, and confirm before someone loses access](https://watchfor.io/changelog/2026-09-07-team-invitations)

An invitation that landed in spam left you with no option but to revoke it and start again, and removing a teammate, leaving an organization or cancelling an invitation all happened on a single click, with no way back. You can now re-send an invitation from its row menu — the same link goes out again, and the activity log records it — and each action that takes access away asks you to confirm first, naming the person or the address it affects.

## 2026-09-07 · Improved · v6.8.1 — [SDKs 0.6.0 for TypeScript, Python and Ruby](https://watchfor.io/changelog/2026-09-07-sdks-0-6-0)

The SDKs lagged behind the API: no way to page through check history, no force option when deleting a contact group, and types that did not know about maintenance, ping URLs or the new monitor detail shape. Version 0.6.0 of the watchfor package on npm, PyPI and RubyGems regenerates the types from the current specification, adds cursor paging to checks and force to contact-group deletion, and its CLI prints the cursor for the next page.

## 2026-09-07 · Improved · v6.8.1 — [Monitors list keeps your filters in the URL, and the create dialog fills in the obvious](https://watchfor.io/changelog/2026-09-07-monitors-list-and-create)

A filtered monitors list could not be bookmarked or pasted to a colleague: the search box was the one filter that lived nowhere but the page, and the two views disagreed on page size. Search now lives in the URL with the other filters, both views share one page-size ladder, and the Latency and Uptime columns say which window they cover, with a paused monitor's uptime labelled "· paused". Creating a monitor is smoother: your first region is preselected, required fields are marked, switching the type re-applies that type's minimum interval, and a cron schedule is checked as you type.

## 2026-09-07 · Improved · v6.8.1 — [Monitor page: a next-check countdown, clearer Run check now, and a delete dialog that lists what goes](https://watchfor.io/changelog/2026-09-07-monitor-page-actions)

Small things that made the monitor page harder to trust: no way to tell whether a check was due in five seconds or fifty, a Run check now that looked like nothing happened, and a Delete confirmation that said "this cannot be undone" without saying what "this" covered. The header now shows Next check in ≈ 42s; Run check now confirms the result is on its way and says when the hourly allowance reopens; and the delete dialog lists everything that goes with the monitor, pointing at Pause if you only want the checks to stop. The Probes tab gained a location filter and a labelled pager.

## 2026-09-07 · Improved · v6.8.1 — [Acknowledge and resolve from the incidents list, and a timeline that shows every confirming check](https://watchfor.io/changelog/2026-09-07-incidents-list-and-timeline)

Working through a morning's incidents meant opening each one in turn, and the timeline of the ones you opened was thin: a single "confirmation" row and a "Confirmed & Active" stamp sitting at the moment the first check failed, minutes before anything was actually confirmed. The list now has the actions on it — Acknowledge and Resolve in the row menu, or tick several rows and do both in one go, with one confirmation for the batch. And the timeline lists each confirming check with its own time and a 1/3 → 2/3 → 3/3 counter, with Confirmed & Active at the moment confirmation finished.

## 2026-09-07 · Improved · v6.8.1 — [Free tools explain failures in plain words](https://watchfor.io/changelog/2026-09-07-free-tools-friendly-errors)

A typo in a domain made the SSL grade checker answer with a resolver address and a Go error chain, and the port checker called a closed port a timeout. The free tools now say what happened — host not found, no such domain, the port is closed or filtered, the registry publishes no data, the URL is not an MCP endpoint — without internal details.

## 2026-09-07 · Improved · v6.8.1 — [Docs and site accuracy: plan-gated monitor types, social cards, blog feed](https://watchfor.io/changelog/2026-09-07-docs-and-site-accuracy)

The docs and the machine-readable pricing said every monitor type was on every plan, including Free, while the pricing table correctly showed which ones are not. The docs, pricing.md and llms.txt now say which types each plan includes, with a generated per-type table; the API docs match the API on CORS, the sandbox sample, the SDK quick start, pagination and status-page permissions; every marketing page has a social-card image; the blog has an RSS feed and unknown posts answer a real 404; the sitemap carries real modification dates.

## 2026-09-07 · Fixed · v6.8.1 — [Alert links open the page they point to, and missing pages say so](https://watchfor.io/changelog/2026-09-07-deep-links-and-dead-ends)

Following a link from an alert email or a Slack message after your session had expired dropped you on the dashboard home instead of the incident you were called about — you had to find it again while the clock ran. Deep links now open the page they point to right after you sign in. Pages that genuinely don't exist, or that you have no access to, give one consistent screen with a way back instead of a blank page or a silent redirect, and a notification channel that fails validation now explains itself under the field instead of showing raw validation output.

## 2026-09-07 · Improved · v6.8.1 — [Confirmation threshold can now be set to 1](https://watchfor.io/changelog/2026-09-07-alert-threshold-from-one)

If you wanted to hear about the very first confirmed failure — a payment endpoint, a checkout, anything where thirty seconds matters — the dashboard would not let you below 3, even though the API accepted it. The slider now goes from 1 to 10 and spells out the trade-off: 1 is the fastest and the noisiest, 3 (still the default) balances speed against false alarms, higher means fewer false alarms and slower alerts.

## 2026-09-06 · Fixed · v6.8.1 — [Uptime SLA tab, dashboard counters and reports agree with the uptime rule](https://watchfor.io/changelog/2026-09-06-uptime-sla-accuracy)

The Uptime SLA tab could show 31 % for a monitor whose card said 100 %: it still counted an incident you had marked as a false positive, and it stopped counting an incident the moment someone acknowledged it. That was our inconsistency. False positives are now left out of the SLA tab, the printable report, the dashboard counters, the incident badges and the API statistics; an acknowledged incident counts as downtime until it resolves; daily rows follow your profile time zone and weekly rows cover seven full days; paused time counts as up and is labelled.

## 2026-09-06 · Fixed · v6.8.1 — [Status pages: maintenance state, auto theme, feed errors and private previews](https://watchfor.io/changelog/2026-09-06-status-page-fixes)

A component under maintenance showed as degraded, the Auto theme ignored the visitor's system setting, the RSS feed could fail on repeat loads and kept serving after a page went private, and an outage that outlived a maintenance window stayed hidden for ten minutes. All fixed. Public incidents now start exactly when the internal one started, a monitor gets one public incident at a time, private pages can be previewed by signed-in members while visitors get a 404, every surface shows the same watchfor.io/stats/name address, and a page can be deleted from its edit page.

## 2026-09-06 · New · v6.8.1 — [See your plan usage in Settings → Subscription](https://watchfor.io/changelog/2026-09-06-plan-usage-card)

The only way to learn you were near a limit was to hit it. Settings → Subscription now shows a Usage card: monitors, status pages, members, contacts, contact groups, maintenance windows and on-call schedules, each as used of allowed, amber past 80% and red at the limit. Anything your plan doesn't include says so, unlimited says unlimited, and maintenance windows count only the upcoming and active ones — an ended window frees its slot straight away.

## 2026-09-06 · Fixed · v6.8.1 — [Maintenance windows: paused monitors, plan counts, time zones and the all-clear](https://watchfor.io/changelog/2026-09-06-maintenance-window-fixes)

A window that started while one of its monitors was paused did not cover that monitor after you resumed it; ended windows kept counting against your plan; schedules used your browser's time zone, not your profile's; and if something was still down when a window ended, nobody was told until the next repeat reminder. All fixed: paused monitors are covered from activation, only upcoming and active windows count anywhere (Free 1, Starter 3, Pro 10, Business 50), times follow your profile time zone, and an incident still open when a window or mute ends is notified within a minute.

## 2026-09-06 · Improved · v6.8.1 — [Inbox: warning incidents badged Degraded, and resolutions that say how they ended](https://watchfor.io/changelog/2026-09-06-inbox-incident-wording)

A warning incident arrived in your Inbox with the same red "Down" badge as a real outage, and a resolution you had clicked yourself came back as "Recovered after 9m · Resolved by API key … · resolved via API" — machine wording for something a person did. Warning incidents are now badged amber Degraded, matching the monitors list, and resolutions say what happened: Recovered after 9m, Resolved manually by Jane after 9m, or Resolved after 9m — monitor paused by Jane. Heartbeat monitors show their name instead of their private ping URL.

## 2026-09-06 · Fixed · v6.8.1 — [Every dashboard timestamp follows your profile time zone and clock](https://watchfor.io/changelog/2026-09-06-dashboard-time-zone)

The same incident could read 10:30 on the incidents list and 13:30 on the monitor's Incidents tab, because parts of the dashboard were still using your browser's time zone instead of the one in your profile. That was our bug, and it made comparing an incident with your own logs unnecessarily hard. Incident pages, the incidents list, the Probes tab and the notification delivery log now all use your profile time zone and 12/24-hour setting (avatar → Settings → Profile); the incident header keeps the offset next to the start time so there is never any doubt.

## 2026-09-06 · Improved · v6.8.1 — [Check success now says what it actually measures](https://watchfor.io/changelog/2026-09-06-check-success-meaning)

A monitor could sit at Down with check success reading 100%, which looks like a contradiction until you know what the number counts. It is a reachability figure: the share of checks where our probe reached your service and got a response. A response that then fails one of your rules — the wrong status code, a failed assertion, an expired certificate — still counts as reached, and shows up as an incident instead. The dashboard, reports, the docs and the API now all say this plainly: read check success for flakiness (timeouts, refused connections, one location misbehaving) and uptime for health.

## 2026-09-06 · Fixed · v6.8.1 — [Activity log: bulk actions per monitor, revoked invitations, correct actor on role changes](https://watchfor.io/changelog/2026-09-06-activity-log-completeness)

A bulk pause or delete was logged as one line with a count, a role change was attributed to the person whose role changed instead of the admin who changed it, and cancelling an invitation left no trace. Bulk actions now write one entry per monitor, role changes name the owner or admin who made them, revoked invitations are logged, and so are API-key renames, history resets, false-positive marks and pinned notes.

## 2026-09-05 · Fixed · v6.8.1 — [TCP response matching on long replies, and SFTP keyboard-interactive logins](https://watchfor.io/changelog/2026-09-05-tcp-and-sftp-monitor-fixes)

A TCP monitor with a response pattern failed on servers that answer with one very long line — a minified HTML or JSON body — and an SFTP monitor could not log in to servers that only offer keyboard-interactive password prompts (OpenSSH with PasswordAuthentication off). Both were our bugs. TCP replies are now matched up to 1 MiB, and an SFTP password is also offered through keyboard-interactive prompts.

## 2026-09-05 · Fixed · v6.8.1 — [Pausing a monitor asks first when an incident is open, and resets its failure counters](https://watchfor.io/changelog/2026-09-05-pause-resets-counters)

A monitor paused while it was failing kept its failure count, so after a resume a single bad check could open an incident at once — and Pause closed the open incident without warning you. Pausing now clears the counters: after a resume a new incident needs the full confirmation threshold again, and the monitor shows Unknown until its next check lands. If an incident is open, Pause asks you to confirm and says the incident will be resolved and your channels told; Mute is the option that keeps it open and only silences notifications.

## 2026-09-05 · Fixed · v6.8.1 — [A new incident's first notification no longer waits behind an earlier one](https://watchfor.io/changelog/2026-09-05-notification-timing)

If a channel had just delivered a notification, the next new incident on that channel could wait up to five minutes before its first message, because it was treated as a follow-up. That was our bug. The first message about any incident now goes out within 30 seconds, together with anything else that fires in that window; only follow-ups about an incident the channel has already delivered — its recovery, a repeat reminder — are batched for up to five minutes, and a new incident takes the pending ones along with it.

## 2026-09-05 · Security · v6.8.1 — [Members can no longer test channels, edit organization preferences or list API keys](https://watchfor.io/changelog/2026-09-05-member-permissions)

A member could send test notifications through any channel, change organization-wide notification preferences and see the list of API keys, although those are owner and admin duties. That gap is closed: channel tests, organization preferences and the API-key list are owner/admin only, members see generic webhook URLs masked, and an action they may not take is shown disabled with the reason instead of failing. Members still acknowledge incidents, write internal notes and draft post-mortems. Also closed: channel URLs pointing at internal addresses.

## 2026-09-05 · Improved · v6.8.1 — [API: stable cursors, stricter validation and richer responses](https://watchfor.io/changelog/2026-09-05-api-pagination-and-errors)

A cursor at a deleted item silently skipped a page, limit=abc passed as the default, and acknowledge or resolve returned a bare message instead of the incident. Cursors now encode a position (old ones keep working); an invalid limit, a sort parameter or an oversized body gets a clear 400 or 413; only the Bearer scheme is accepted; errors carry your real remaining rate budget; incident actions return the full incident. Browser callers can send Idempotency-Key, now allowed on the cross-origin preflight. New fields: maintenance, during_maintenance, ping_url and a cursor on check history.

## 2026-09-05 · Improved · v6.8.1 — [API keys can be renamed and given an exact expiry date](https://watchfor.io/changelog/2026-09-05-api-key-rename-expiry)

Once a key was created, its name was fixed, and an expiry could only be set as a number of days. You can now rename a key later (the activity log records the old and new name), and set an expiry as an exact date and time as well as in days. An expired key fails with a clear message.

## 2026-09-05 · Fixed · v6.8.1 — [Monitor config is validated for its type, everywhere](https://watchfor.io/changelog/2026-09-05-api-config-validation)

The API accepted a misspelled method, a text timeout or a nonsense cron expression and stored it, so the check quietly did something else — an hourly schedule instead of your cron line, say. Config is now checked against the monitor type on every create and update, from the dashboard, the API and MCP alike: a bad value is refused with the key named, unused keys are dropped, cron expressions and timezones must be valid, a rule cannot require more failing locations than the monitor has, and private or internal targets are refused. Config that implies an alert rule now creates that rule too.

## 2026-09-05 · Fixed · v6.8.1 — [API: a partial config update no longer wipes the rest of the config](https://watchfor.io/changelog/2026-09-05-api-config-patch-keeps-settings)

If you changed one config key through the API — say the timeout — with PATCH, every other key you had not repeated (authentication, headers, transport mode, IP version, body) was silently dropped. That was our bug, and it could break a monitor with one innocent call. PATCH config is now a true partial update: omitted keys are kept, a key sent as null is removed, and lists or objects you send replace the stored value whole. The MCP update_monitor tool and the SDKs inherit the fix; the dashboard's Settings form still saves the whole form as before.

## 2026-09-05 · New · v6.8.1 — [Clone a monitor through the API and MCP](https://watchfor.io/changelog/2026-09-05-api-clone-monitor)

Creating twenty similar monitors from a script meant repeating every rule and config key twenty times. POST /v1/monitors now takes cloneFromMonitorId: the source monitor's alert rules and full config are copied, and any field you leave out — type, target, interval, locations, strategy, tags — defaults to the source's, so a name and an id make a complete request. The MCP create_monitor tool has the same argument. Cloning from the dashboard also keeps the transport mode now, which it used to lose.

## 2026-09-04 · Fixed · v6.7.6 — [Every incident now has a plain-language description and explanation](https://watchfor.io/changelog/2026-09-04-readable-incident-descriptions)

Some incidents — MCP server drift, API assertions, TLS grade, page-speed and heartbeat alerts — showed the raw rule expression in the Incidents list, and a few had no "Why this happens" notes on the incident page. Every alert preset now reads as a sentence ("MCP tool inventory changed", "2 of 8 response assertions failed (#3, #5)", "TLS grade dropped below B"), the What-happened summary for API assertion incidents talks about the response contract instead of the network, and each alert type comes with likely causes and copy-paste diagnostic commands.

## 2026-09-04 · New · v6.7.3 — [Reset a monitor's history without recreating it](https://watchfor.io/changelog/2026-09-04-reset-monitor-history)

Starting a monitor's statistics over used to mean cloning it and deleting the original, which gave you a new id, dropped the tags and broke every link to the old one. Reset history, in the monitor's menu, now deletes everything the monitor has recorded (checks, incidents with their timelines, notes, post-mortems and status-page incidents) and uptime starts again from that moment, while the monitor keeps its id, settings, alert rules, tags, locations and status-page components. It cannot be undone, so you type the monitor's name to confirm. Owners and admins; also in the API.

## 2026-09-04 · New · v6.7.3 — [Mark an incident as a false positive](https://watchfor.io/changelog/2026-09-04-incident-false-positive)

When a glitch on the probe side or a threshold set too tight slipped through confirmation, the incident it opened dented your uptime and sat on your status page, with no honest way to say it was never real. A resolved incident can now be marked as a false positive: it stays on record (timeline, notes, post-mortem) but leaves your uptime, SLA and reports and is removed from the public status page. Owners and admins find it on the incident page, or as a checkbox when resolving by hand; Count as downtime again undoes it. Mark as maintenance remains for downtime that was real but planned.

## 2026-09-04 · Improved · v6.6.9 — [Incident notifications in the bell and Inbox are readable again](https://watchfor.io/changelog/2026-09-04-inbox-incident-message-short)

A “Down” notification in the bell crammed the rule name, a raw “Alert Rule 600 triggered”, the full checker error and three probe locations into one unformatted line, while the resolved one was clear. That was our clutter. The notification now says only what you need to decide whether to click: the rule that fired on one line and the monitor's target URL on the next, with the monitor name in the title and the incident page one click away for the detected value, locations and timeline. Resolved notifications keep their duration and gain the same target line.

## 2026-09-04 · Improved · v6.6.8 — [TLS Grade alert: pick a grade, not a number](https://watchfor.io/changelog/2026-09-04-tls-grade-picker)

The TLS Grade alert asked you to think in points (A+ = 6, B = 4…) and, once enabled, showed no control at all, so it was hard to tell what would actually fire. That was our doing; an SRE should not need the scoring table. The rule now works like Minimum TLS Version: open it and pick the lowest grade you accept — A+, A, B or C — with a one-line explanation of what fires. The numeric metric stays the same for API-created rules.

## 2026-09-04 · Improved · v6.6.8 — [Grouped alerts show each monitor's target and the actual reason](https://watchfor.io/changelog/2026-09-04-grouped-alerts-target-and-reason)

When several incidents fired at once, the grouped notification listed only monitor names and a generic label such as “Connectivity Failure” three times over, so you still had to open each incident to learn what was hit and why. Each row now shows the monitor's target (URL or host) under its name and the concrete detail next to the diagnosis: the detected value, the root-cause detail or, for recoveries, how long the incident lasted. This covers the email digest and the Slack, Discord, Teams, Telegram, Google Chat, Mattermost and Rocket.Chat summaries; the email digest is also left-aligned now.

## 2026-09-04 · Improved · v6.6.5 — [API catalog now lists every config key the dashboard uses](https://watchfor.io/changelog/2026-09-04-api-config-catalog-complete)

Several checks could only be set up from the dashboard: DNS expected records, the CDN and CMS provider pins, TCP/UDP and WebSocket response matching, SMTP open-relay and PTR checks, the MCP protocol-version pin, HTTP/3 transport, and the monitor-level alerting knobs (default contact groups, confirmation threshold, duration window, repeat reminders). The keys always worked through the API; nothing told you they existed. The type catalog, GET /v1/meta/monitor-types, the MCP and A2A lookups and the docs now list all of them, and a test keeps the catalog complete.

## 2026-09-04 · Fixed · v6.6.4 — [API monitor status no longer goes stale](https://watchfor.io/changelog/2026-09-04-api-status-freshness)

If you read a monitor through the API, MCP or an SDK, its status could sit at “unknown” for hours after its checks turned green, or at “degraded” after a single old failure, until someone opened the dashboard. That was our inconsistency: only the dashboard list refreshed the stored status from the latest check. The API list, monitor detail and summary now apply the same refresh on every read, so /v1/monitors, /v1/summary and everything built on them agree with what you see in the app.

## 2026-09-04 · Fixed · v6.6.3 — [API fixes: keyword checks created through the API, and tags surviving a partial update](https://watchfor.io/changelog/2026-09-04-api-keyword-and-tags-fixes)

If you created an HTTP monitor through the API with a body keyword (failIfBodyNotMatchesRegexp, as the docs showed), every check failed with a parse error and the monitor went down at once. That was our bug: the API accepted a plain string while the checker expected a list. Both shapes now work, and the Alerting tab shows the pattern for API-created monitors instead of an empty field. A second bug: a PATCH that changed only the config quietly erased the monitor's tags; omitted tags are now left alone. The docs also say how to alert on a keyword: a rule on http.body_regexp_match equal to 0.

## 2026-09-04 · Improved · v6.6.2 — [In-browser AI agents can now read any page and browse the docs tree](https://watchfor.io/changelog/2026-09-04-webmcp-tools-v2)

An agentic browser on watchfor.io could search the docs and open pages, but not read a page or see what else sits in the same section, so it fell back to scraping. The site's WebMCP tools now include read_page (any page as markdown), list_docs (the documentation tree, by section) and list_free_tools, next to search, the API quickstart and navigation; read-only tools are marked so an agent can call them without asking. The markdown versions of docs pages (/docs/….md and the docs MCP read_doc) now carry the article itself instead of the sidebar that used to crowd it out.

## 2026-09-04 · Improved · v6.6.1 — [FAQ refreshed: uptime, MCP monitoring, TLS grade, imports, AI agents, billing](https://watchfor.io/changelog/2026-09-04-faq-refresh)

The FAQ still said heartbeat monitoring was “on the roadmap” while the answer above it explained how to use it, and it had nothing on how uptime is calculated, MCP server monitoring, the TLS grade, importing from other tools, AI agents or billing. It now answers all of that in one place: 57 questions in seven groups, including a new “AI agents & API” section (MCP server, OAuth 2.1, sandbox, SDKs and CLI), exact plan limits for monitors, check intervals and team members, where your data lives, and how to verify a request really came from WatchFor.

## 2026-09-04 · New · v6.6.0 — [Developer portal at /developers and an OpenAPI guide](https://watchfor.io/changelog/2026-09-04-developer-portal)

Finding the right WatchFor developer resource meant guessing URLs: the API reference lived under docs, the OpenAPI document had no page of its own, and the SDKs were mentioned in three different places. There is now one page at watchfor.io/developers that links every resource: REST API reference, OpenAPI 3.1 specification, authentication, MCP server, A2A agent, sandbox, SDKs and CLI for TypeScript, Python and Ruby, and the agent quickstart. The docs also gained a dedicated OpenAPI page covering where to fetch the spec, what it contains and how to generate a client from it.

## 2026-09-04 · Improved · v6.5.5 — [A shorter sidebar: 11 entries, tabs inside sections, Settings in one place](https://watchfor.io/changelog/2026-09-04-simpler-sidebar)

Nineteen sidebar entries meant scrolling, and you asked for keyboard shortcuts. It is now 11 and never scrolls: Post-mortems is a tab inside Incidents, Contacts and the delivery log are tabs inside Channels & contacts, and General, Members, Notifications, API keys, Subscription and the Activity log share one Settings entry with sub-navigation. Inbox, Toolbox and Settings are pinned at the bottom; plan-gated features stay visible, marked Pro. Chords: g + letter goes to a section (g m Monitors), c + letter creates (c m monitor, c c channel, c w maintenance window), ? shows the cheat sheet.

## 2026-09-04 · Improved · v6.5.3 — [Blog: numbered pages, an all-articles archive and instant search](https://watchfor.io/changelog/2026-09-04-blog-pagination)

One very long blog page is slow to load and hard to link into. The blog index, category and topic hubs now show 20 articles per page with numbered pages, each its own link so search engines and AI crawlers can follow them. A new All articles page lists every post by year with instant search over titles, summaries, categories and tags, and the search box on every listing suggests the best matches as you type.

## 2026-09-04 · New · v6.5.2 — [Incidents show up in your bell and Inbox](https://watchfor.io/changelog/2026-09-04-incidents-in-inbox)

If you are in the dashboard when something goes down, you should not have to hear about it from Slack. When a confirmed incident opens, is acknowledged or resolves, every member of the organization now gets it in the dashboard bell and Inbox: Down or Degraded in red or amber, Resolved with how long it took, each linking to the incident page. No channel setup needed; silenced, inhibited and flapping incidents stay quiet here as well, and anyone can switch incident notifications off under Settings → Notifications.

## 2026-09-04 · Improved · v6.5.1 — [Inbox redesigned: read the whole message, open what it's about, tune what you get](https://watchfor.io/changelog/2026-09-04-inbox-redesign)

Reading a notification used to mean squinting at a truncated line, and clicking it in the bell only marked it read. The Inbox now shows the list on the left and the full message on the right, with Unread and category filters, search, keyboard shortcuts (j/k, Enter, u, e) and a shareable link per notification. Clicking a notification in the bell opens it in the Inbox, with an Open button that leads to what it is about (a changelog entry today, incidents next), and the bell no longer overflows its panel. Each member picks which kinds of notifications they get under Settings → Notifications.

## 2026-09-03 · Improved · v6.4.7 — [TLS grade: on by default, one scan a day per monitor, Check now rescans](https://watchfor.io/changelog/2026-09-03-tls-grade)

Waiting a day for a TLS grade after switching it on felt broken. On plans with the daily TLS grade, new SSL monitors start with Track TLS grade on and get their first grade with the first check; existing SSL monitors on those plans were switched on too (turn it off per monitor if you only want certificate checks). The scan runs once a day per monitor however many locations check it, so a six-location monitor no longer scans your server six times and locations cannot disagree. Check now always rescans; the TLS Grade card shows when the grade was taken and says plainly when grading is off.

## 2026-09-03 · Improved · v6.4.3 — [One uptime formula everywhere: dashboard, monitor pages, reports and the API](https://watchfor.io/changelog/2026-09-03-uptime-one-formula)

If a report ever showed 98% while the monitor page said 100%, you were not imagining it; that was our inconsistency. Uptime now means one thing everywhere: 100% minus time in confirmed critical incidents, with scheduled maintenance neutral, shared by the monitors list, monitor page, dashboard, reports and the API's uptime endpoint. The raw check signal stays visible as a separate check success rate (in reports, and check_success_percent in the API). Monitors younger than 24 hours are judged on the time they have existed and say "since created".

## 2026-09-03 · Improved · v6.4.3 — [Monitor settings: only options that reach the probe are shown](https://watchfor.io/changelog/2026-09-03-settings-cleanup)

A setting the check silently ignores is worse than no setting. The IP version selector now appears only for monitor types whose checks honour it, the email-security monitor's duplicate timeout field is gone, and blacklist monitors accept IP addresses on update as well as on create. The documentation now also explains how warning alerts are held back while a critical incident is open on the same monitor.

## 2026-09-03 · Fixed · v6.4.3 — [Heartbeat: a non-zero exit code now counts as a failed run](https://watchfor.io/changelog/2026-09-03-heartbeat-exit-codes)

Our docs said a non-zero exit code counts as a failed run, but reporting one (for example /p/<token>/137) did not fire the default "Run Failed" rule. That was our bug, and it is fixed: a non-zero exit code now marks the run as failed, and /fail behaves as before. The ping URL also works the moment a monitor is created.

## 2026-09-03 · Fixed · v6.4.3 — [Alert rules on failed checks: MTR unreachable and DNS errors now fire](https://watchfor.io/changelog/2026-09-03-alert-rules-on-failed-checks)

The MTR "Destination Unreachable" and DNS "DNS Errors" presets could never fire, because a failed check skipped every rule wholesale, including the ones meant to catch exactly that failure. That was our bug. Rules are now evaluated whenever their metric is present in a failed result, so those two presets fire for the first time and FTP/SFTP connection and listing rules keep working when only the write test fails. Response-time rules still never fire on a failed check.

## 2026-09-03 · Improved · v6.4.3 — [Alert presets: every dashboard preset accepted by the API, honest INP](https://watchfor.io/changelog/2026-09-03-alert-presets-consistency)

A preset the dashboard offers but the API rejects is a trap, and there were eleven (NTP jitter, FTP/SFTP speed and login times, SPF lookups, favicon size, MCP certificate expiry). All are now accepted, and the dashboard validates rules with the same vocabulary. Core Web Vitals monitoring no longer advertises an INP rule, because synthetic checks cannot measure interaction latency. Domain expiry and breach monitors no longer force an availability rule, FTP/SFTP monitors no longer seed a write test that fails on read-only servers, and the two blacklist presets no longer edit each other.

## 2026-09-02 · Improved · v6.4.3 — [Monitor status is now consistent everywhere, with Degraded in the API](https://watchfor.io/changelog/2026-09-02-monitor-status-consistency)

A monitor should not be Down on one screen and Unknown on another. Down, Degraded, Up, Paused and Unknown are now computed by one rule across the monitors list, monitor page, dashboard overview and the REST API: an acknowledged critical incident keeps a monitor Down, a warning incident shows Degraded, and a confirmed incident always overrides Unknown. The API status field and /v1/summary counts now include "degraded", and the monitors list can filter by it.

## 2026-09-02 · Security · v6.4.3 — [Alerting, contacts and status pages are now owner/admin only](https://watchfor.io/changelog/2026-09-02-member-permissions)

Any member of an organization could create, edit or delete alert rules, notification channels, contacts, contact groups and status pages, even though monitors were already owner/admin only. That gap is closed: those actions now require the owner or admin role, the same as monitors. Members keep read access and can still acknowledge incidents and write internal notes.

## 2026-09-02 · Fixed · v6.4.3 — [Email channels always send to the current contact group members](https://watchfor.io/changelog/2026-09-02-email-recipients-live)

If you removed someone from a contact group and they kept getting alert emails, or added someone and they got nothing, that was our bug: email channels froze their recipient list when saved. Recipients are now resolved from the channel's contact groups at send time, so adding or removing a contact, changing an email address or deleting a group takes effect immediately. No need to re-save the channel.

## 2026-09-02 · Improved · v6.4.3 — [DNS monitors gain SOA, SRV, PTR and CAA; API spec and SDKs 0.3.1](https://watchfor.io/changelog/2026-09-02-dns-record-types-and-api-spec)

The records behind zone health, service discovery, reverse lookups and certificate issuance were out of reach for a DNS monitor. DNS monitors can now check SOA, SRV, PTR and CAA records with expected-value matching. The OpenAPI specification was also corrected to match the API exactly (announcements, status page creation with components, maintenance window fields, the checks success filter, incident rule and duration fields, report fields), and the TypeScript, Python and Ruby SDKs are updated to 0.3.1.

## 2026-09-02 · Fixed · v6.4.3 — [Alert rules: heartbeat and MCP presets fixed, severity simplified to Critical and Warning](https://watchfor.io/changelog/2026-09-02-alert-rule-fixes)

If you toggled a heartbeat or MCP server preset in the Alerting tab and ended up with a duplicate rule that never fired, that was our bug. Presets now recognise the existing rule, every rule is stored in one consistent form, and existing rules were repaired automatically. The rarely used Info severity is gone too: the twelve optional presets that used it are now Warning, so they show as Degraded and actually reach your channels.

## 2026-09-02 · Improved · v6.4.0 — [Documentation refresh: complete, current and written for humans and AI agents](https://watchfor.io/changelog/2026-09-02-docs-and-identity-refresh)

Docs that lag behind the product are worse than no docs, because you trust them. Every docs page was re-checked against the product and rewritten where it had fallen behind: what each of the 25 check types actually checks and alerts on, the full incident lifecycle (on-call, post-mortems, reports, maintenance windows), every notification channel, and complete REST API, MCP and A2A references. The site now describes WatchFor consistently everywhere, including llms.txt and agents.md for AI agents.

## 2026-09-02 · New · v6.3.9 — [TLS grade on SSL monitors + grade-drop alerts](https://watchfor.io/changelog/2026-09-02-ssl-tls-grade-monitoring)

A valid certificate tells you nothing about a cipher suite someone weakened last Tuesday. SSL monitors can now track a daily A+ to F TLS grade (protocols, ciphers, forward secrecy, HSTS and post-quantum key exchange) right on the monitor, and alert you when the grade drops below your target. Enable 'Track TLS grade' in an SSL monitor's settings.

## 2026-09-01 · New · v6.3.8 — [New free tool: SSL/TLS Grade Checker](https://watchfor.io/changelog/2026-09-01-ssl-grade-checker)

Waiting minutes for a TLS grade, then puzzling over why you lost points, is the part of the classic SSL Labs test nobody enjoys. The new free SSL/TLS Grade Checker grades any HTTPS server A+ to F in seconds (protocols, ciphers, forward secrecy, certificate trust, HSTS and even post-quantum key exchange), with the exact reason for every point. A faster, modern take on that test, with a live grade-distribution chart.

## 2026-09-01 · New · v6.3.2 — [Reports: weekly & monthly emails, trends and plain-language insights](https://watchfor.io/changelog/2026-09-01-reports)

"How did last week go?" should not take a spreadsheet to answer. A new Reports page shows how your period went versus the one before: uptime, incidents, MTTR/MTBF and response-time trends, with plain-language insights like which monitor caused the most incidents or which certificate is about to expire. Weekly and monthly email delivery is built in (weekly is on by default, to up to five recipients), and AI agents can fetch the report and manage the email schedule over the API, MCP and A2A.

## 2026-08-29 · Improved · v6.3.1 — [WatchFor is built for AI agents — and now says so up front](https://watchfor.io/changelog/2026-08-29-agent-ready-hero)

If you came to WatchFor looking for monitoring your AI agents can drive, the home page did not say so anywhere. It now leads with our independently verified agent-readiness: 100/100 on is-agentic.com, with MCP, A2A and OAuth 2.1 available to any agent. It links straight to the Infrastructure page, where both scanner scores and the full agent stack are listed.

## 2026-08-29 · New · v6.2.8 — [New Infrastructure page — the fleet and engineering behind your alerts](https://watchfor.io/changelog/2026-08-29-infrastructure-page)

Before you trust a monitoring service to wake you at 3 a.m., you deserve to know what it runs on. A new page at /infrastructure shows exactly that: the multi-provider probe fleet across the globe, the EU control plane in a TIER III data center on 100% renewable energy, how an alert is confirmed before it pages you, and our independently verified agent-readiness scores.

## 2026-08-28 · New · v6.8.1 — [API sandbox without a key, and a batch endpoint](https://watchfor.io/changelog/2026-08-28-api-sandbox-and-batch)

Trying the API meant creating an account and a key just to see what a response looks like. The read-only sandbox at watchfor.io/api/v1/sandbox now serves sample data in the exact production shapes — summary, monitors, incidents, locations, monitor types, a full report — with no authentication, every payload marked as sandbox data. For real accounts, POST /api/v1/batch runs up to 20 operations in one request, each with its own result.

## 2026-08-28 · New · v6.2.0 — [Cryptographically verifiable probes (Web Bot Auth)](https://watchfor.io/changelog/2026-08-28-verifiable-probes)

Anyone can put "WatchFor" in a User-Agent header, so allowlisting our checks by name was never really safe. Every HTTP and API check now carries an Ed25519 signature (RFC 9421 HTTP message signatures, Web Bot Auth profile), and anyone receiving a request that claims to be a WatchFor probe can verify it against our published keys at /.well-known/http-message-signatures-directory. Together with per-probe reverse DNS under *.probe.watchfor.io, that makes our probes verifiable end to end; details at /bot.

## 2026-08-28 · Improved · v6.1.3 — [API: DELETE endpoints now return a deletion confirmation](https://watchfor.io/changelog/2026-08-28-delete-confirmation)

An empty 204 after a DELETE leaves generated clients and agents with nothing to check. DELETE requests on the REST API now respond with 200 and a small confirmation body, { "object": "deleted", "id", "deleted": true }, so you get a typed, verifiable result. With that, every one of the API's 57 operations has a fully typed response schema in the OpenAPI spec.

## 2026-08-28 · Improved · v6.0.7 — [Documentation MCP server + richer machine-readable pricing](https://watchfor.io/changelog/2026-08-28-docs-mcp-server)

When your AI assistant does not know how a WatchFor feature works, it should read the docs instead of guessing. A read-only documentation MCP server at /api/docs-mcp (also reachable at /docs/api/mcp) exposes list_docs, search_docs and read_doc, no key needed. The product MCP server also gained reference resources and prompt templates. And /pricing.md now includes a full side-by-side plan comparison with prices and limits, so agents can compare plans without scraping the pricing page.

## 2026-08-28 · New · v6.0.6 — [Ruby SDK + CLI](https://watchfor.io/changelog/2026-08-28-ruby-sdk)

If your stack is Ruby, you should not be the one left writing raw HTTP calls. There is now an official Ruby client and `watchfor` CLI, alongside the TypeScript and Python ones. Zero dependencies, and it mirrors the REST API resource for resource: `gem install watchfor`, then `watchfor summary` in the terminal or `Watchfor::Client.new(api_key:)` in code.

## 2026-08-28 · Improved · v6.0.3 — [MCP server adds reference resources and prompt templates](https://watchfor.io/changelog/2026-08-28-mcp-resources-prompts)

Tools alone leave an agent guessing which monitor types exist or what a good diagnosis prompt looks like. Agents connected over MCP can now pull reference material straight through the protocol (the monitor-type catalog, the OpenAPI spec and the agent quickstart) and start from ready-made prompt templates: diagnose what is broken, set up a monitor, or generate a reliability report. Discovering resources and prompts works without a key, like the tool list. The WatchFor MCP server is now also listed on the Smithery registry.

## 2026-08-26 · New · v6.8.1 — [Web Model Context tools on the marketing site](https://watchfor.io/changelog/2026-08-26-webmcp-tools)

An AI browsing agent landing on watchfor.io had to scrape the page to do anything. The site now exposes Web Model Context (WebMCP) tools — search the docs, open any free tool, start a website audit — so agents that support the standard can act on the page directly. Regular visitors see no change; the tools are only visible to agents.

## 2026-08-26 · New · v5.9.3 — [Python SDK + CLI for WatchFor](https://watchfor.io/changelog/2026-08-26-python-sdk)

If Python is where your ops scripts live, you should not have to hand-write HTTP calls to reach WatchFor. There is now an official Python SDK and command-line tool alongside the TypeScript one: pip install watchfor, then manage monitors, incidents and maintenance windows from Python or the terminal. Zero dependencies.

## 2026-08-26 · New · v5.9.3 — [WatchFor is now an A2A (Agent2Agent) agent](https://watchfor.io/changelog/2026-08-26-a2a-agent)

If you are building agents that hand work to other agents, WatchFor can now be one of them. Over the open Agent2Agent protocol, other AI agents can delegate monitoring tasks to WatchFor: diagnose what is broken and why, check status, report on incidents and reliability, and take actions like creating monitors or scheduling maintenance. Connect at /api/a2a with your API key or OAuth; the Agent Card is published at /.well-known/agent-card.json.

## 2026-08-26 · New · v5.9.1 — [OAuth sign-in for MCP clients — connect AI agents without an API key](https://watchfor.io/changelog/2026-08-26-oauth-mcp)

Creating an API key just to plug WatchFor into an AI client is a chore, and pasting keys around is how they leak. WatchFor now runs a full OAuth 2.1 authorization server: MCP clients that support it (Claude connectors, Claude Code and others) connect by approving access on a consent screen in your browser, no API key needed. You choose read-only or read+write access, and every authorization can be revoked instantly.

## 2026-08-26 · New · v5.8.8 — [Official TypeScript SDK & CLI on npm](https://watchfor.io/changelog/2026-08-26-sdk-cli)

A REST API is only half the job if you still have to write the client yourself. npm install watchfor gives you a fully typed, zero-dependency client for the REST API (monitors, alert rules, incidents, maintenance windows, contacts) plus a terminal CLI: npx watchfor summary, incidents --status firing, checks <id> --failed. The types come straight from the OpenAPI spec, and retries are safe thanks to idempotency keys.

## 2026-08-26 · Improved · v5.8.8 — [Audit trail and alert delivery history in the API](https://watchfor.io/changelog/2026-08-26-audit-and-delivery-api)

"Did the Slack alert actually go out?" and "who edited this monitor before it broke?" were questions you could only answer in the dashboard. Two new read endpoints change that: GET /v1/activity exposes your organization's audit log (who changed what, with the same full-text search as the dashboard, reaching into the change details), and GET /v1/notifications shows every alert delivery attempt per channel with sent/failed status. Both are MCP tools too, so an AI assistant can answer those questions for you.

## 2026-08-26 · Improved · v5.8.8 — [AI agents can now find and use WatchFor on their own](https://watchfor.io/changelog/2026-08-26-agent-discovery)

An agent pointed at WatchFor should not need a human to explain where the API lives. The OpenAPI spec is now at the standard /openapi.json and /.well-known locations, next to new machine manifests (ai-catalog, MCP, security.txt); an /agents.md quickstart tells agents when and how to use WatchFor; the MCP server answers the discovery handshake without a key; and every API operation carries a function-calling-ready operationId. Unknown API paths now return proper JSON errors instead of an HTML page.

## 2026-08-25 · New · v5.7.2 — [MCP server — connect AI agents to WatchFor](https://watchfor.io/changelog/2026-08-25-mcp-server)

If you already ask an AI assistant to help you debug an outage, it should be able to see your monitoring too. WatchFor now has an MCP server, so Claude, Cursor and any MCP-capable agent can work with it through 37 tools: check what is up, investigate incidents with MTTR stats, create monitors and alert rules, run on-demand checks and schedule maintenance. Access is secured by your existing API keys and their read/write scopes, so an agent can never do more than the key allows.

## 2026-08-25 · Improved · v5.7.0 — [Cleaner notification channel picker](https://watchfor.io/changelog/2026-08-25-channel-picker-collapse)

Once you had picked a notification channel type, the big grid of types kept taking up the screen while you filled in the rest. It now collapses to a compact chip with a Change button, the same flow you already know from the monitor type picker.

## 2026-08-25 · Fixed · v5.6.9 — [Response Body Match direction switch fixed](https://watchfor.io/changelog/2026-08-25-body-match-direction)

If you flipped a body-match alert from "down if text is missing" to "down if text is found" (or back) and then got an incident on a perfectly healthy site, that was our bug: the old direction stayed active in the background. Switching direction now replaces the old rule completely, so only the direction you chose can fire.

## 2026-08-25 · Fixed · v5.6.8 — [Incident titles stay frozen to the rule as it was](https://watchfor.io/changelog/2026-08-25-incident-title-freeze)

Editing an alert rule used to rewrite the titles of incidents that rule had already opened, so an old incident in the list could suddenly claim a condition that never fired. That was wrong, and it is fixed: an incident's title now stays frozen to the rule as it was at the moment it fired.

## 2026-08-24 · Improved · v6.8.1 — [Uptime calculator: readable durations and a wider layout](https://watchfor.io/changelog/2026-08-24-uptime-calculator-refresh)

The uptime calculator gave you 8.76 hours of allowed downtime per year and left the arithmetic to you. It now says 8h 45m 36s, uses the full page width like the other free tools, links to the related monitoring guides, and its call to action tells you plainly what a monitor would do for you instead of overselling it.

## 2026-08-24 · New · v5.6.7 — [Public REST API with per-organization API keys](https://watchfor.io/changelog/2026-08-24-public-rest-api)

The dashboard was the only way in, so wiring WatchFor into your own scripts or pipelines meant clicking. A public REST API at /api/v1 now covers full monitor management (create, update, pause/resume, bulk, delete), uptime and check history, incidents (acknowledge, resolve, retroactive mark-as-maintenance), maintenance windows, contacts and groups, status pages with incident announcements, plan limits and usage, and who is on call. Scoped read/write API keys (shown once, stored hashed), per-plan rate limits, Idempotency-Key retries and full activity-log coverage. Docs with curl examples.

## 2026-08-24 · New · v5.6.7 — [Discover every monitor type's metrics & settings via the API](https://watchfor.io/changelog/2026-08-24-monitor-type-catalog)

Building a monitor or alert rule from a script or an AI agent meant guessing at field names and metric keys, then reading the error. A new machine-readable catalog at GET /api/v1/meta/monitor-types lists, for all 25 monitor types, the target format, default alert rules, every alert metric you can build a rule from, and every config field. Each monitor also returns its valid metrics inline, and the full human-readable reference lives in the docs.

## 2026-08-24 · New · v5.6.7 — [Manage alert rules via the API](https://watchfor.io/changelog/2026-08-24-alert-rules-api)

If you create monitors through the API, having to open the dashboard to adjust their alert rules breaks the automation. The REST API can now list, create, update, enable/disable and delete a monitor's alert rules — the conditions that open an incident (response time, status code, keyword match, SSL expiry and more). Changes take effect instantly, exactly as they do from the dashboard. System default rules can be tuned but not deleted.

## 2026-08-24 · New · v5.6.6 — [Run a check on demand](https://watchfor.io/changelog/2026-08-24-run-now)

You just deployed a fix and want to know it worked now, not whenever the next scheduled check comes around. Every monitor's menu now has a "Run check now" action that runs an immediate check from your configured locations; the API has it too, as POST /v1/monitors/{id}/check-now. On-demand checks are budgeted per plan so they stay fair for everyone.

## 2026-08-23 · Improved · v6.8.1 — [Docs: allowlisting WatchFor probes in Cloudflare](https://watchfor.io/changelog/2026-08-23-cloudflare-allowlist-guide)

If Cloudflare's bot protection challenged our probes, your monitor went down while your site was fine, and the docs left you to work out the fix yourself. There is now a step-by-step guide — a WAF custom rule or an IP access rule for the published probe ranges, plus how to verify the request really came from WatchFor — linked from the probe locations page and the FAQ.

## 2026-08-23 · New · v5.6.1 — [On-call reports — print or save as PDF](https://watchfor.io/changelog/2026-08-23-oncall-reports)

Working out on-call compensation from a calendar by hand at the end of the month is tedious and easy to get wrong. Every on-call schedule can now be exported as a clean A4 report for any period: per-person totals with shift counts and override time, plus the full shift log. Navigate the calendar to the month or week you want, click Report, toggle people on or off, and print or save as PDF.

## 2026-08-21 · New · v5.7.1 — [Incident post-mortems with tracked action items](https://watchfor.io/changelog/2026-08-21-incident-postmortems)

Post-mortems written in a wiki nobody revisits are where action items go to die. The new Post-mortems section lets you write a structured retrospective on any incident in a rich editor (no markup to learn; Markdown stays available as an advanced mode), with severity and root-cause classification, an extendable timeline, and action items with assignees and due dates. The list view keeps drafts and open follow-ups visible, and completed post-mortems can be published to your status page. Available on higher plans.

## 2026-08-19 · New · v5.7.1 — [9 new free tools: cron tester, email header analyzer, IPv6 calculator and more](https://watchfor.io/changelog/2026-08-19-free-calculators-and-status-docs)

The small checks you reach for a dozen times a week — is this cron expression right, what does this email header actually say — should be a click away. Nine new free tools: a cron expression tester with plain-English explanations and next-run previews, an email header analyzer that traces delivery hops and authentication entirely in your browser, IPv6 subnet and error-budget calculators, a JSON formatter with JSONPath testing, an SPF & DMARC record generator, plus timestamp, bandwidth and chmod converters. We also published a full HTTP status code reference in the docs.

## 2026-08-17 · New · v6.8.1 — [On-call schedules, escalation policies & personal paging](https://watchfor.io/changelog/2026-08-17-oncall-escalations)

Alerts dropped in a shared channel hoping someone is awake are not on-call. Define who is on call with rotations, quick-setup presets and a live preview; a month calendar shows per-person totals and shift counts for fair compensation, and shifts can be covered with one-click overrides or permanent replacements. Escalation policies page the right person step by step through their own methods — email, Telegram, ntfy, Pushover, Gotify or Pushbullet — and stop on acknowledge, resolve or maintenance. A Notification Flow view draws the whole path: channels first, who gets paged now, who is next.

## 2026-08-17 · Improved · v5.5.6 — [Redesigned contacts & contact groups, with CSV import](https://watchfor.io/changelog/2026-08-17-contacts-workspace)

Managing contacts across separate dialogs made a simple change, like adding someone to a group, take longer than it should. Contacts and contact groups now share a side-by-side organization: pick a person or group on the left and edit everything (details, group memberships, escalation policy) in one place on the right, with explicit Save and Cancel. You can import contacts from a CSV file (duplicates are skipped safely), select many at once to delete in bulk, and the list stays alphabetical however large it grows.

## 2026-08-10 · New · v5.4.6 — [Scheduled maintenance windows](https://watchfor.io/changelog/2026-08-10-maintenance-windows)

Planned maintenance should not page your whole team or dent your uptime figures. Maintenance windows silence notifications and exclude the time from your uptime and SLA during planned work — one-time or recurring, for chosen monitors or whole tags — while checks keep running, so you still see if the maintenance broke something. Optionally announce the window on your status pages with the affected components, start, extend or complete it on the fly, or post an announcement-only notice for work on something you do not monitor.

## 2026-08-09 · New · v5.4.3 — [New free tool: API Tester](https://watchfor.io/changelog/2026-08-09-free-api-tester)

Testing an API from the browser runs into CORS walls, and testing it from your laptop says nothing about how it looks from outside. The free API Tester sends a real HTTP request from one of our monitoring probes and shows the response — status, timing, headers and every JSON field flattened into a clickable list. GET, HEAD and POST are free with no signup. When you want it watched on a schedule, with assertions, extracted-value charts and alerts, one click turns it into an API monitor.

## 2026-08-09 · Improved · v5.4.2 — [API monitor: run a request live and click to extract or assert](https://watchfor.io/changelog/2026-08-09-api-monitor-run-inspect)

Typing JSONPaths from memory was the slow, error-prone part of setting up an API monitor. Building one is now point-and-click: hit Run request to fire the call from a real probe, see the live response, and click any field to extract it as a chartable metric or assert on it. Each extracted value gets its own chart on its own scale, so a huge timestamp never flattens a small counter. Status code, response time and SSL now live on the Alerting tab (status uses a friendly 2xx/3xx picker), so every failure gets the right incident: unreachable, wrong status, or failed assertion.

## 2026-08-07 · New · v5.3.3 — [API monitor — assert on JSON, headers & status, and chart response values](https://watchfor.io/changelog/2026-08-07-api-monitor)

A 200 is not the same as correct: an endpoint can answer fine with the wrong data. The new API monitor validates the response, not just the status code — assert on the HTTP status, any JSON field (via JSONPath), headers and response time, and the check is up only when every assertion passes. Extract numbers straight from the JSON (queue depth, active users, a price) and WatchFor charts them over time: a real time-series pulled from your API. Underneath, it is a full HTTP monitor: SSL expiry, DNS/connect/TLS/TTFB timing, redirects and basic/digest/bearer auth.

## 2026-08-05 · New · v5.2.3 — [Alert notifications now group during incident storms](https://watchfor.io/changelog/2026-08-05-notification-grouping)

When one upstream problem takes ten monitors down at once, ten separate pings tell you less than one message would. Your chat and email channels now receive a single summary — "10 new incidents" with the affected monitors listed — instead. Monitors failing one by one batch too: follow-up waves collect for a few minutes and arrive as one further summary, and recoveries group the same way. A lone incident still arrives promptly as a normal, fully detailed notification, and PagerDuty, Opsgenie and webhooks keep their exact per-incident behaviour.

## 2026-08-05 · Improved · v5.2.3 — [Mute a monitor's alerts + smarter flap suppression](https://watchfor.io/changelog/2026-08-05-mute-and-quieter-alerts)

When you already know a monitor is broken and are working on it, every further ping is noise. You can now mute a monitor's notifications for 1h, 8h, 24h or 7d from its ⋯ menu or straight from a firing incident; checks keep running and incident history keeps recording, only the pings pause. Muted monitors carry an amber badge and a Muted filter in the monitors list, so a silenced one is never lost among hundreds. Also quieter: a rapidly flapping monitor stops paging until it stabilises, and warning alerts stay quiet while the same monitor's critical incident is already firing.

## 2026-08-04 · New · v5.2.2 — [8 new notification channels — from Opsgenie to Zapier](https://watchfor.io/changelog/2026-08-04-eight-new-notification-channels)

An alert that has to be forwarded to the tool your team actually watches is an alert that arrives late. Eight more channels are now built in. Opsgenie joins PagerDuty for on-call: firing incidents open an Opsgenie alert and recoveries auto-close it, with US and EU regions supported. Google Chat, Mattermost and Rocket.Chat join Slack, Discord and Teams for chat (each a one-webhook setup); Gotify, Pushover and Pushbullet join ntfy for phone and desktop push; and Zapier connects alerts to 5000+ other apps via a Catch Hook. Add them under Alerting → Channels.

## 2026-08-04 · Fixed · v5.2.0 — [Incidents list no longer hides open incidents](https://watchfor.io/changelog/2026-08-04-incidents-list-open-first)

On busy accounts, the Incidents page could bury a still-firing incident below newer resolved ones, and the tab counts did not match reality. Missing an open incident because of how we sorted a list is not acceptable; that was our bug. Open incidents now always sort to the top, each tab shows its exact count, and filtering to Firing, Critical and so on pulls the full set rather than just the most recent page.

## 2026-08-03 · New · v5.1.4 — [Embeddable status badge](https://watchfor.io/changelog/2026-08-03-status-badge-embed)

Your users rarely visit a status page unprompted — they are on your docs, your README or your app. You can now show your live status right there with a copy-paste badge: a small pill that reads "All systems operational" (or degraded / outage / maintenance), links back to your status page and updates on its own. Grab it in a dark or light theme from your status page's new "Status badge" settings. Every public status page also serves its status as CORS-enabled JSON for custom widgets and integrations.

## 2026-08-03 · New · v5.0.9 — [Third-party components on status pages](https://watchfor.io/changelog/2026-08-03-third-party-status-components)

During an outage, the first thing your customers want to know is whether it is you or your provider. You can now show the live status of the services you depend on — GitHub, Cloudflare, Stripe, GitLab, OpenAI, Slack, Google Cloud and more than 20 others — right on your own status page, with a 30-day uptime history bar so visitors see the recent track record, not just this moment. Add a component, pick the service and the specific parts you rely on (or its overall status), and WatchFor keeps it fresh from the provider's public status page.

## 2026-07-31 · New · New channel · v5.0.8 — [PagerDuty incident integration](https://watchfor.io/changelog/2026-07-31-pagerduty-notifications)

Getting paged at night for an incident that already recovered is the fastest way to stop trusting your alerts. Alerts can now route to PagerDuty via Events API v2 with the full incident lifecycle: a firing alert opens a PagerDuty incident and the recovery auto-resolves the same one. Diagnosis, expected vs detected values, confirming locations and a View-in-WatchFor link ride along, and EU-region PagerDuty accounts are supported.

## 2026-07-31 · New · New channel · v5.0.6 — [ntfy push notifications](https://watchfor.io/changelog/2026-07-31-ntfy-notifications)

Not every team wants a paging vendor just to get a buzz on their phone. Alerts can now push straight to your phone or desktop via ntfy, the free, open-source notification service with no account required: subscribe to a topic in the ntfy app, paste the topic name, done. Critical incidents arrive at max priority (they can bypass Do Not Disturb), recoveries at normal, and tapping opens the incident. Self-hosted ntfy servers and access tokens are supported.

## 2026-07-31 · New · New channel · v5.0.5 — [Microsoft Teams alert notifications](https://watchfor.io/changelog/2026-07-31-teams-notifications)

If your team lives in Microsoft Teams, an alert that lands in email first is an alert that gets seen late. Alerts can now post straight into a Teams channel as severity-colored Adaptive Cards with diagnosis, expected vs detected values, confirming locations and a View-incident button. Setup uses the modern Teams Workflows webhook (the path Microsoft replaced classic connectors with): create the workflow from the channel's ⋯ menu, paste the URL, done.

## 2026-07-31 · New · v5.0.0 — [Telegram alert notifications](https://watchfor.io/changelog/2026-07-31-telegram-notifications)

For many small teams, Telegram is already where the on-call conversation happens. Alerts can now reach you there, delivered by the official WatchFor bot. Press Start on the bot (or add it to a group), paste your chat ID, and incident notifications arrive with full context: diagnosis, expected vs detected values, confirming locations and recovery updates.

## 2026-07-30 · New · AI · v4.9.5 — [MCP server monitoring — handshake, tool inventory & drift detection](https://watchfor.io/changelog/2026-07-30-mcp-server-monitoring)

If you run a Model Context Protocol server, a green HTTP check says nothing about whether agents can still use it, or whether its tools quietly changed. The new MCP monitor performs the real protocol handshake on every check, negotiates the version and walks the full tool inventory. Drift detection alerts you with the exact diff when any tool is added, removed or has its description changed — the rug-pull attack agents cannot see coming. Phase-level latency, bearer auth and default alert rules are included.

## 2026-07-30 · New · AI · v4.9.5 — [Free MCP Server Checker](https://watchfor.io/changelog/2026-07-30-mcp-server-checker-tool)

A plain HTTP check can tell you an MCP endpoint answers, but not what an AI agent actually sees when it connects. Paste any MCP endpoint URL into the free checker and you get a protocol-level report in seconds: the initialize handshake, negotiated version, capabilities, phase timings and the complete tool inventory. No account needed.

## 2026-07-29 · New · v4.9.1 — [Filter monitors by type](https://watchfor.io/changelog/2026-07-29-filter-monitors-by-type)

Once you have a few hundred monitors, finding just the SSL ones by scrolling stops being practical. The monitors list now has a type filter that narrows the view to Core Web Vitals, HTTP, SSL or any other monitor type. It only lists the types you actually use, shows counts, works in both card and row views, and the filter lives in the page URL so you can share a link to it.

## 2026-07-29 · Fixed · v4.8.9 — [Fixed rare unexpected sign-outs while navigating the dashboard](https://watchfor.io/changelog/2026-07-29-fix-unexpected-sign-outs)

Moving quickly around the dashboard could occasionally bounce you to the sign-in page for about a minute with no explanation. That was our fault: our own session checks were tripping our request limits. They no longer do, and in the unlikely event a check is still throttled, the sign-in page now tells you what happened and returns you automatically.

## 2026-07-27 · Fixed · v4.8.3 — [Switching organizations updates the dashboard instantly](https://watchfor.io/changelog/2026-07-27-workspace-switch-refresh)

After switching to another organization, the dashboard could keep showing the previous one's data until you refreshed the page. That was our bug, and a confusing one if you manage several organizations. Switching now updates the dashboard immediately.

## 2026-07-27 · Improved · v4.7.6 — [Repeat reminders for ongoing incidents](https://watchfor.io/changelog/2026-07-27-incident-reminders)

One notification when an incident opens is easy to miss, and a monitor that stays down all day deserves more than silence. Each monitor can now send repeat reminders — every 1, 6, 12 or 24 hours while it stays down. Reminders stop the moment you acknowledge the incident or it resolves. It is off by default, so switch it on per monitor where you want it.

## 2026-07-26 · New · v4.6.2 — [Heartbeat & cron job monitoring](https://watchfor.io/changelog/2026-07-26-heartbeat-cron-monitoring)

A nightly backup that silently stopped running three weeks ago is the failure no uptime check can see. The new heartbeat monitor works in reverse: your backup, cron job or worker pings a unique URL when it runs, and WatchFor alerts you when the ping does not arrive on time. Set an interval or cron schedule with a grace period, report exit codes, and reuse Healthchecks-compatible ping URLs. A heartbeat counts as a regular monitor — no separate pricing.

## 2026-07-24 · New · v4.5.9 — [Import your monitors from Instatus](https://watchfor.io/changelog/2026-07-24-instatus-import)

Moving off Instatus should not mean retyping every monitor from every status page. Connect with your Instatus API key and the monitors from all the status pages in your Instatus workspace come over in one go — HTTP with headers, auth and status-code assertions, ping, TCP, UDP and DNS checks — with paused state and intervals preserved.

## 2026-07-24 · New · v4.5.7 — [Import your monitors from Site24x7](https://watchfor.io/changelog/2026-07-24-site24x7-import)

Leaving Site24x7 should not cost you an afternoon of copying monitors across. Sign in with Zoho Self Client credentials and your monitors come over mapped to their WatchFor equivalents — website and REST API checks with keywords, headers and auth, ping, port, SMTP, DNS with expected answers, plus SSL certificate and domain expiry monitors.

## 2026-07-24 · New · v4.5.7 — [Import your monitors from Checkly (beta)](https://watchfor.io/changelog/2026-07-24-checkly-import)

Rebuilding dozens of Checkly checks by hand is the chore that keeps you on a tool you have outgrown. Connect with your Checkly API key and Account ID and your API, URL and TCP checks come over as they are — methods, headers, auth, request bodies, status-code and text assertions, and send/expect strings included. Browser and Playwright flows are listed with a clear reason why they are skipped until browser monitoring lands.

## 2026-07-24 · New · v4.5.6 — [Import your monitors from Pingdom (beta)](https://watchfor.io/changelog/2026-07-24-pingdom-import)

Years of Pingdom checks are not something you want to re-enter one form at a time. Connect with a read-only Pingdom API token and your checks come over: HTTP with keywords, custom headers and auth, ping, TCP and UDP port checks with send/expect strings, SMTP and DNS. Imported monitors are tagged so you can find the whole batch with one filter and tidy up at your own pace.

## 2026-07-24 · New · v4.5.5 — [Import your monitors from StatusCake](https://watchfor.io/changelog/2026-07-24-statuscake-import)

Switching from StatusCake should not mean starting your monitor list from zero. Connect with your StatusCake API key and your uptime checks come over in one go — HTTP with keyword and custom-header rules, ping, TCP ports, SMTP and DNS, including paused state. Imported monitors are tagged statuscake, intervals adjust to your plan automatically, and you pick exactly which monitors to create before anything is added.

## 2026-07-24 · Improved · v4.5.2 — [Incidents now explain themselves](https://watchfor.io/changelog/2026-07-24-incident-explanations)

An incident that just says "503" at 3 a.m. still leaves the diagnosis to you. Every incident now opens with a plain-language summary of what visitors experienced and whose side the problem is on, backed by expert explanations for hundreds of HTTP statuses, network and TLS failures. Copy-paste diagnostic commands come with your real host already filled in, and one-click links re-check the target with our free tools.

## 2026-07-24 · New · v4.5.0 — [Multiple organizations, one free per account](https://watchfor.io/changelog/2026-07-24-multiple-workspaces)

If you look after monitoring for several clients or companies, mixing them into one account gets messy fast. You can now create a separate organization for each. Every account includes one free organization; each additional one picks its own plan, so your personal free organization is never affected. Organization cards show each organization's plan at a glance.

## 2026-07-23 · New · v4.4.6 — [One-click import from UptimeRobot](https://watchfor.io/changelog/2026-07-23-uptimerobot-import)

Recreating every monitor by hand is the main reason people put off switching. If you are moving from UptimeRobot, paste a read-only API key and bring your monitors over in minutes: checks, intervals, custom status codes, auth, headers and keyword rules included. A preview lets you pick exactly what to import.

## 2026-07-23 · Fixed · v4.3.1 — [Alert rule settings apply on the first save](https://watchfor.io/changelog/2026-07-23-alert-rule-first-save)

If you enabled an alert rule, set its severity, operator or notification group, saved, and found the defaults instead, that was our bug: those choices sometimes only stuck on a second save. Everything you set before the first save is now stored exactly as you chose it.

## 2026-07-23 · Improved · v4.3.0 — [Dashboard shows your plan usage at a glance](https://watchfor.io/changelog/2026-07-23-dashboard-plan-usage)

Knowing how close you are to a plan limit should not require a trip to billing. The plan card on the dashboard now shows how much of your core quotas you are using, monitors, status pages and members, with subtle progress bars. The header was rebalanced along the way: incident and monitor tiles now sit in a tidy 2×2 grid.

## 2026-07-22 · New · v4.2.6 — [Redeem coupon codes for plans](https://watchfor.io/changelog/2026-07-22-coupon-codes)

If a partner or a campaign gave you a code, you should be able to use it without opening a support ticket. Organizations can now activate a plan with a coupon code: enter it under Settings → Subscription → "Have a coupon?". Codes are issued by the WatchFor team for partners, campaigns and trials.

## 2026-07-22 · Improved · v4.2.1 — [Round-robin now rotates across your selected locations](https://watchfor.io/changelog/2026-07-22-location-rotation)

Round Robin with a hand-picked set of locations used to fire from all of them at once, which is not what round robin means. Each check now runs from one location at a time, rotating through your selection. If you do want every location checked simultaneously, pick Parallel instead.

## 2026-07-21 · Fixed · v4.1.8 — [Monitors now honour your exact location selection](https://watchfor.io/changelog/2026-07-21-exact-location-routing)

If you picked specific cities for a monitor, say Vilnius and Stockholm, and still saw checks arriving from every location in that region, that was our bug, not a misclick. Checks now run only from the locations you actually selected. Choosing a whole region keeps the existing rotating behaviour.

## 2026-07-21 · Fixed · v4.1.6 — [Smart website check now runs on the first try](https://watchfor.io/changelog/2026-07-21-smart-check-first-run)

Typing a URL on the homepage, pressing Enter and being told to "enter a URL" even though the field was filled in was our bug, and it bit phone users most often. The smart website check now starts reliably on the first attempt.

## 2026-07-20 · New · v4.1.1 — [Jump anywhere with the new command palette](https://watchfor.io/changelog/2026-07-20-command-palette)

Hunting through menus for the one monitor you need right now gets old fast. Press ⌘K (Ctrl K on Windows) or click the search bar at the top of the dashboard to jump to any page, open a tool, or find a monitor by name. Start typing and the best match rises to the top.

## 2026-07-18 · Improved · v4.0.6 — [Legacy TLS servers are now monitorable — and flagged](https://watchfor.io/changelog/2026-07-18-legacy-tls-monitoring)

A server that only speaks outdated TLS ciphers is exactly the kind you want to keep an eye on, yet checks against it used to fail outright. We now retry automatically with a legacy-compatible handshake, so those checks succeed. SSL monitors also show the negotiated TLS version and cipher suite, and mark such servers with a Legacy TLS badge so you know their configuration needs attention.

## 2026-07-16 · New · v4.0.1 — [Published monitoring IP ranges and a bot info page](https://watchfor.io/changelog/2026-07-16-monitoring-ip-ranges-bot)

Allowlisting a monitoring service should not mean asking support for a list of addresses. A new IP ranges page lists every monitoring location by region with IPv4, IPv6 and hostnames, plus machine-readable /ips.json, /ipv4.txt and /ipv6.txt endpoints you can pull on a schedule. A companion bot page explains how to identify and verify our requests, and every monitoring IP now has forward-confirmed reverse DNS.

## 2026-07-15 · Improved · v3.9.7 — [Adjustable audit timeout for Core Web Vitals monitors](https://watchfor.io/changelog/2026-07-15-browser-audit-timeout)

A heavy or slow page can need longer than a fixed limit allows, and then its Lighthouse audit simply does not finish. Browser monitors now have an Audit Timeout setting, 1 to 5 minutes with a default of 3. Raise it on the individual monitors whose pages need more time.

## 2026-07-14 · Improved · v3.9.1 — [Free tools now run from the location nearest you](https://watchfor.io/changelog/2026-07-14-free-tools-nearest-location)

A ping result means little if it was measured from the other side of the world. Ping, DNS, SSL, Core Web Vitals and the other free tools now run from the monitoring location closest to you, and each result shows which region ran the check.

## 2026-07-11 · Fixed · v3.8.9 — [Fixed unexpected sign-outs during rapid navigation](https://watchfor.io/changelog/2026-07-11-auth-ratelimit-fix)

If you were signed out for clicking around or refreshing a little too quickly, that was our bug: normal browsing was tripping the sign-in rate limit. Requests are now attributed to each visitor correctly, so everyday use no longer trips that limit, while the login and password-reset endpoints get tighter protection against automated abuse.

## 2026-07-11 · Security · v3.8.8 — [Rate-limited status page password unlock](https://watchfor.io/changelog/2026-07-11-status-page-unlock-ratelimit)

A password-protected status page is only as private as its password, and until now nothing stopped a script from guessing at it indefinitely. Unlock attempts are now limited within a short window, which closes the door on automated password guessing.

## 2026-07-11 · New · v3.8.4 — [Six more monitor types get dedicated pages](https://watchfor.io/changelog/2026-07-11-six-more-monitor-pages)

Some check types were doing real work without a page that explained them. NTP, WebSocket, FTP, SFTP, Favicon and CMS monitoring now each have their own page covering what the check watches, its key capabilities, such as directory listing, write and throughput tests for file servers or clock-drift alerts for time servers, and how alerting works.

## 2026-07-11 · New · v3.8.4 — [Browse every monitor type in one place](https://watchfor.io/changelog/2026-07-11-monitoring-hub)

It was hard to tell from the outside how much WatchFor actually checks. A new Monitoring page lists all 20+ check types in one place, with what each one watches, its key feature and a link to learn more, so you can see everything we cover at a glance.

## 2026-07-10 · Improved · v3.7.1 — [What's My IP now shows both your IPv4 and IPv6](https://watchfor.io/changelog/2026-07-10-whats-my-ip-both-families)

If you are on an IPv6-first connection, What's My IP used to show only the address your browser happened to connect with, and your IPv4 was nowhere to be seen. The tool now detects and shows both your IPv4 and IPv6 address, along with location and ISP details.

## 2026-07-10 · New · v3.7.0 — [Status pages now live on their own address](https://watchfor.io/changelog/2026-07-10-status-page-subdomains)

A status page is only useful if the link is short enough to remember under pressure. Every public status page now gets its own address, yourname.watchfor.io, based on the name you pick. Share that one clean, branded link with your customers; it keeps updating itself as incidents open and resolve.

## 2026-07-03 · Improved · v3.6.1 — [More reactions on incident notes](https://watchfor.io/changelog/2026-07-03-incident-note-reactions)

Sometimes all a note needs is a quick verdict, not a written reply. Internal incident notes now take verdict reactions too: thumbs-down, check, no-entry and cross marks, so your team can agree, disagree or flag a note in one click.

## 2026-07-01 · Fixed · v3.5.4 — [Cloning a monitor keeps disabled alert checks off](https://watchfor.io/changelog/2026-07-01-clone-keeps-disabled-checks-off)

If you cloned a monitor and the copy raised an incident for a check you had switched off, for example an SFTP write test, that was our bug: cloning quietly turned disabled checks back on. Duplicating a monitor now keeps every alert check you had turned off on the original off on the copy as well.

## 2026-06-29 · New · v3.4.8 — [Test your notification channels](https://watchfor.io/changelog/2026-06-29-test-notifications)

The worst time to discover a notification channel was misconfigured is during an outage. You can now send a test alert to any channel to confirm it is set up, and from a monitor's menu you can test its whole alerting flow at once, so you know the right people will be notified before anything actually breaks.

## 2026-06-29 · Improved · v3.4.7 — [New monitors run their first check right away](https://watchfor.io/changelog/2026-06-29-faster-first-check)

Adding a monitor and then staring at an empty status for hours, because the first check waited for the next slot on a slow schedule, felt broken. A new monitor now runs its first check within about a minute, so you see its status straight away.

## 2026-06-27 · Improved · v3.4.5 — [Find the right tool from any guide](https://watchfor.io/changelog/2026-06-27-blog-product-links)

Reading a guide and then going off to look for the tool it describes is a detour you should not need. Blog articles now link to the monitoring tool they are about, and every product page features hand-picked guides from the blog.

## 2026-06-27 · New · v3.4.4 — [A dedicated page for every monitor type](https://watchfor.io/changelog/2026-06-27-monitor-landing-pages)

A single features list cannot explain what each kind of check actually watches. Every kind of monitoring we offer now has its own in-depth page: HTTP, DNS, SSL, ping, Core Web Vitals, email, blacklist and more, plus pages for incident management, status pages and alerting integrations.

## 2026-06-26 · Improved · v3.3.5 — [Search the FAQ and jump by topic](https://watchfor.io/changelog/2026-06-26-faq-search)

Scrolling a long FAQ to find one answer is a chore nobody signed up for. The FAQ now has an instant search box and a category sidebar so you land on the answer directly, on a cleaner, wider layout.

## 2026-06-26 · New · v3.3.3 — [A bigger, better blog — browse by topic, search, and share](https://watchfor.io/changelog/2026-06-26-blog-refresh)

A blog you cannot search is a pile of articles, not a resource. The blog now has topic categories and tags, instant search, and a table of contents and share buttons on every article. There are also 100+ new guides on monitoring, networking, reliability, performance and more.

## 2026-06-25 · New · v3.2.6 — [Product documentation](https://watchfor.io/changelog/2026-06-25-product-documentation)

Working out how a feature behaves should not mean poking at it until it does something. There is now a full documentation site at /docs, with step-by-step guides for monitors, alerting, status pages and notifications, an overview of every check type, and built-in search.

## 2026-06-25 · New · v3.2.3 — [Follow along with the changelog](https://watchfor.io/changelog/2026-06-25-public-changelog)

It is fair to want to know whether the people behind a tool are still shipping. This new changelog page lists everything we release, features, improvements and fixes alike, each tagged with the build it shipped in. Subscribe to the RSS feed if you would rather have it come to you.

## 2026-06-24 · Improved · v3.2.2 — [Incidents close themselves when you pause a monitor or disable its rule](https://watchfor.io/changelog/2026-06-24-incidents-auto-close-on-source-change)

Pausing a monitor or switching off its rule used to leave the incident it raised sitting open, waiting for you to tidy up by hand. Now, when you pause a monitor, or disable or delete its alert rule, any open incident from that source resolves itself, and the channels that were alerted are told it is over.

## 2026-06-24 · Improved · v3.1.9 — [Faster light / dark theme switch](https://watchfor.io/changelog/2026-06-24-faster-theme-switch)

Switching between light and dark should not take a trip through a menu. The theme toggle now sits right in the top bar, so you switch in a single click.

## 2026-06-24 · New · v3.1.7 — [Resolve incidents manually](https://watchfor.io/changelog/2026-06-24-manual-incident-resolve)

Sometimes you know an incident is over before the next check does. Owners and admins can now resolve an incident by hand. If the check is still failing it simply re-opens, and the channels that were originally alerted are told who resolved it and why.

## 2026-06-24 · New · v3.1.3 — [Internal notes on incidents](https://watchfor.io/changelog/2026-06-24-internal-incident-notes)

The conversation about an incident usually happens somewhere the incident is not. You can now add private, team-only notes directly on an incident, with @mentions, pinning and reactions. They stay internal and never appear on a public status page.

## 2026-06-24 · Fixed · v3.1.2 — [Correct currency on pricing and billing](https://watchfor.io/changelog/2026-06-24-currency-display-fix)

If the free plan or a price showed up in the wrong currency, or with a stray "0" next to it, that was our display bug, not a change to what you pay. Prices on the pricing and billing pages now always reflect the currency you selected.

## 2026-06-22 · Improved · v3.0.7 — [Refreshed navigation and branding](https://watchfor.io/changelog/2026-06-22-navbar-and-branding)

Finding your way around the old top bar took more looks than it should have. The top navigation has been redesigned so the things you reach for are easier to spot, and WatchFor now wears its official logo and favicons, so our tab is easier to pick out too.

## 2026-06-22 · New · v3.0.6 — [Printable uptime SLA report](https://watchfor.io/changelog/2026-06-22-sla-report)

When someone asks for proof of last quarter's uptime, a screenshot of a dashboard does not cut it. You can now generate a printable uptime and SLA report over any custom date range, ready to hand to a customer or attach to a review.

## 2026-06-05 · Improved · v3.0.1 — [Smarter organization switching](https://watchfor.io/changelog/2026-06-05-smarter-org-picker)

Being asked to choose between organizations when you only have one was a pointless extra click on every login. If you belong to one organization, you now land straight in it. If you belong to several, the picker shows each organization's health, its monitors and any firing incidents, so you can go straight to the one that needs you.

## 2026-06-05 · New · v2.9.8 — [What's My IP tool](https://watchfor.io/changelog/2026-06-05-whats-my-ip-tool)

Knowing your public IP is rarely the whole question; you usually want to know where it sits and what it resolves to as well. The free What's My IP tool shows your public IP together with the things you would look up next: geolocation, ASN, reverse DNS, and basic device info.

## 2026-06-04 · Improved · v2.9.4 — [Clearer timings in the monitor view](https://watchfor.io/changelog/2026-06-04-readable-timings)

Raw millisecond counts make you do the arithmetic before you can tell whether a check was slow. Check durations and intervals now read in plain units, and the monitor header shows a live-ticking counter since the last check, so you can tell at a glance whether a monitor is actually running.

## 2026-06-04 · New · v2.9.0 — [Organization activity log](https://watchfor.io/changelog/2026-06-04-activity-log)

When a monitor is suddenly paused or an alert rule looks different from yesterday, the first question is who changed it. Each organization now has an activity log: a clear audit trail of who changed what, and when.

## 2026-05-29 · New · v2.8.2 — [Core Web Vitals monitoring](https://watchfor.io/changelog/2026-05-29-core-web-vitals-monitoring)

A performance regression rarely announces itself; it lands in a deploy and shows up weeks later as a worse search ranking. You can now monitor Core Web Vitals (LCP and CLS, plus lab metrics such as Total Blocking Time) with a Lighthouse performance score, choose a desktop or mobile profile, and get alerted when scores regress. Not sure yet? The free Core Web Vitals checker lets you try it on any URL instantly.

## 2026-05-27 · New · v2.5.7 — [Free tools, now shareable](https://watchfor.io/changelog/2026-05-27-free-tools-shareable)

A tool result you cannot hand to a colleague is only half useful. All thirteen free checker tools now give you a shareable link to your result, and the check reruns when the link is opened so the other person sees fresh data, not a stale snapshot. Maps can be downloaded, and each tool has proper help content explaining what it checks and how to read the output.

## 2026-05-22 · New · v2.3.6 — [DNS Propagation checker](https://watchfor.io/changelog/2026-05-22-dns-propagation-tool)

After a DNS change, refreshing one resolver over and over tells you nothing about what the rest of the world sees. The free DNS Propagation checker runs your lookup from monitoring locations around the globe and plots the answers on a world map, with per-resolver detail when you need to know which one is still serving the old record.

## 2026-05-19 · Improved · v2.2.0 — [Redesigned organization dashboard](https://watchfor.io/changelog/2026-05-19-dashboard-redesign)

The dashboard is the page you look at most, so it should answer the important question first. It has been refreshed with glass cards and a KPI strip that puts the key numbers at the top, plus a silent-monitors indicator for monitors whose alerts would reach nobody, which is easy to miss and often the most important thing on the page.

## 2026-05-18 · New · v2.1.3 — [Scheduled maintenance windows](https://watchfor.io/changelog/2026-05-18-scheduled-maintenance)

Planned work should not page the on-call or leave a dent in your uptime numbers. You can now schedule maintenance windows with a custom time picker; while a window is active, the planned downtime does not trigger alerts and is not counted against your uptime.

## 2026-05-18 · New · v2.1.2 — [Tip of the day](https://watchfor.io/changelog/2026-05-18-tip-of-the-day)

There is more in WatchFor than most people find on their own, and a docs page is not where you go looking for it. A rotating tip of the day now surfaces one feature at a time inside the app. If you would rather not see it, turn it off in settings.

## 2026-05-18 · Improved · v2.0.2 — [Smoother onboarding](https://watchfor.io/changelog/2026-05-18-onboarding-defaults)

Creating a monitor and then realizing no alert would reach anyone was an easy trap for a new account. New organizations now start with a default notification path already wired up, so your first alert has somewhere to go. Adding a monitor also gives you smarter name suggestions, so you type less.

## 2026-05-16 · New · v1.9.8 — [Public status pages](https://watchfor.io/changelog/2026-05-16-public-status-pages)

When something breaks, the support inbox fills up faster than you can answer it. You can now publish a branded status page: group your services into components, post incident updates, and share a live uptime heatmap and an RSS feed so people can check for themselves. Visibility is up to you: public, private, or password-protected.

## 2026-05-12 · New · v1.9.3 — [WatchFor assistant (beta)](https://watchfor.io/changelog/2026-05-12-ai-assistant-beta)

Setting up monitors and alert rules for the first time raises questions the docs do not always answer in the order you ask them. The in-app WatchFor assistant (beta) is a chatbot with guided flows that walks you through creating monitors and alerts. It is early, so tell us where it gets things wrong.

## 2026-05-12 · Improved · v1.9.0 — [Finer check frequencies](https://watchfor.io/changelog/2026-05-12-finer-check-frequencies)

Picking a check interval used to mean choosing between too often and too rarely, with nothing in between. Check frequency now offers 3 to 9 minute steps, so you can match how often a monitor runs to how much it matters. Change it in the monitor's settings.

## 2026-05-12 · New · v1.8.4 — [WebSocket and email-policy checks](https://watchfor.io/changelog/2026-05-12-websocket-email-policy)

A WebSocket endpoint can fail its handshake while the HTTP check in front of it stays green, and a broken SPF record only shows up when your mail lands in spam. WebSocket monitors now check the handshake and keep the connection alive with pings, and Email Policy checks watch your SPF, DMARC and DKIM records for you.

## 2026-05-11 · New · v1.6.1 — [Data-breach and blacklist monitoring](https://watchfor.io/changelog/2026-05-11-breach-blacklist-monitoring)

Learning that your mail server is on a blacklist from a bounced customer email is a bad way to learn it. You can now watch for credential breaches and for email or IP blacklisting (RBL). Alerts fire on new findings only, so a listing you already know about does not page you again on every check.

## 2026-05-11 · New · v1.5.0 — [Website content checks](https://watchfor.io/changelog/2026-05-11-website-content-checks)

A site can be up and still be quietly broken: a missing favicon, a CDN that stopped fronting it, compression switched off in a deploy. There are now checks for favicon, CDN detection, Brotli compression, CMS detection and sitemap validity, so those regressions show up as monitors instead of as a surprise weeks later.

## 2026-05-11 · New · v1.3.9 — [Network path monitoring (MTR)](https://watchfor.io/changelog/2026-05-11-mtr-path-monitoring)

When a host is slow, the answer is often somewhere on the path to it, and by the time you run a traceroute the problem has moved. MTR monitors now trace the full route to your host on a schedule: per-hop health, a heatmap of how the path changed over time, and click-to-replay of any moment so you can see what the route looked like when it went wrong.

## 2026-05-11 · New · v1.3.7 — [More check types: UDP, NTP, FTP and SFTP](https://watchfor.io/changelog/2026-05-11-udp-ntp-ftp-monitoring)

Not everything you run answers on HTTP, and the services that do not tend to be the ones nobody is watching. UDP, NTP time-sync and FTP/SFTP monitors are now available, with connection timings, directory listing, and write or throughput checks for the file-transfer types.

## 2026-05-10 · New · v1.2.8 — [TCP and SMTP monitoring](https://watchfor.io/changelog/2026-05-10-tcp-smtp-monitoring)

Knowing a port is open is not the same as knowing why connecting to it is slow. TCP port monitors now show a connection-timing waterfall so you can see where the time goes, and SMTP monitors include a built-in open-relay check, so a misconfigured mail server is caught before spammers find it.

## 2026-05-10 · New · v1.2.2 — [DNS monitoring with expected records](https://watchfor.io/changelog/2026-05-10-dns-monitoring)

A DNS record that silently changes can take a site down while every other check stays green. DNS monitoring is now complete: query through custom resolvers, define the records you expect and get alerted when the answer differs, start from ready-made alert presets, and get root-cause analysis when a lookup fails.

## 2026-05-10 · New · v1.2.0 — [SSL certificate monitoring](https://watchfor.io/changelog/2026-05-10-ssl-monitoring)

An expired certificate is the outage everyone saw coming and nobody was watching for. SSL monitoring now has its own home: certificate overview cards, ready-made alert presets including expiry, and incidents that recognize certificate problems for what they are.

## 2026-05-09 · New · v1.1.9 — [Ping (ICMP) monitoring](https://watchfor.io/changelog/2026-05-09-ping-icmp-monitoring)

For a host that speaks no HTTP, a plain ping is often the right check to run. Ping (ICMP) monitors are here, with round-trip time and packet-loss stats, and their incident insight is tuned for latency and loss rather than a check duration that told you very little.

## 2026-05-09 · Improved · v1.1.6 — [Firing incidents at a glance](https://watchfor.io/changelog/2026-05-09-firing-incident-badge)

You should not have to open the incidents page to know whether something is on fire right now. The sidebar now shows a live, pulsing count of currently firing incidents, visible from anywhere in the app.

## 2026-05-08 · New · v1.0.5 — [Domain expiry monitoring](https://watchfor.io/changelog/2026-05-08-domain-monitoring)

A domain that quietly expires takes everything behind it down, and the renewal reminder is easy to miss. You can now monitor domains with a dedicated overview, and each one gets an expiry alert created for you automatically, so a lapsed registration never takes you by surprise. Add a domain monitor like any other check.

## 2026-05-08 · New · v1.0.0 — [Monitor tags and bulk tagging](https://watchfor.io/changelog/2026-05-08-monitor-tags)

Past a few dozen monitors, a flat list stops being useful. You can now organize monitors with tags, and add or remove tags across many monitors at once instead of editing them one by one.

## 2026-04-24 · New · v1.0.0 — [Notification history](https://watchfor.io/changelog/2026-04-24-notification-history)

Whether an alert actually went out, and to whom, should never be a mystery. There is now a searchable history of every alert sent, with each rule shown by its readable name and exactly which channel each notification was delivered to.

## 2026-04-23 · New · v1.0.0 — [Notification channels](https://watchfor.io/changelog/2026-04-23-notification-channels)

One alert address for the whole team stops working the moment the team grows. You can now build and manage notification channels and route alerts to several contact groups at once. Duplicate channels are caught as you add them, and the built-in Email and SMS channels are protected so they cannot be removed by accident.

## 2026-04-23 · New · v1.0.0 — [Warning and Critical alert severities](https://watchfor.io/changelog/2026-04-23-alert-severities)

Not every alert deserves to wake someone up. HTTP status, body-match and SSL alert rules can now be set to Warning or Critical, so a heads-up and a real outage no longer look the same. Pick the severity when you create or edit a rule.

## 2026-04-22 · Improved · v1.0.0 — [Easier-to-read incident diagnostics](https://watchfor.io/changelog/2026-04-22-readable-incident-diagnostics)

Reading a latency chart should not mean squinting at unlabeled axes or decoding a raw error string. Incident and monitor charts now show real units (ms and s) and switch to a logarithmic scale when latency spikes, so the spike and the baseline both stay readable. Raw check errors are translated into plain language too.

## 2026-04-19 · New · v1.0.0 — [Incident Root Cause Analysis](https://watchfor.io/changelog/2026-04-19-incident-root-cause)

An incident that only says "down" leaves you doing the detective work at 3 a.m. Every incident now shows exactly why it fired: the condition that failed, the check results that confirmed it, and the alert rule that was in effect at that moment. Open any incident to see it.

## 2026-04-14 · New · v1.0.0 — [Alerting and incident management](https://watchfor.io/changelog/2026-04-14-alerting-and-incidents)

A red dot on a dashboard is not the same as knowing something is wrong. You can now define alert rules on your monitors, and when a check starts failing WatchFor opens an incident for it, each with its own detailed view of what happened and when. Rules are set per monitor, so you can tune them to each check.

## 2026-01-17 · New · v1.0.0 — [Plans, billing and payment alerts](https://watchfor.io/changelog/2026-01-17-plans-and-billing)

Nobody wants to discover a failed card payment by noticing their monitoring stopped. Subscription plans are here, each with its own monitor limit, and every successful or failed payment sends you a notification by email or Discord, so billing never catches you off guard.

## 2026-01-16 · New · v1.0.0 — [Create and manage monitors](https://watchfor.io/changelog/2026-01-16-monitors-dashboard)

Setting up a monitor should take a minute, not a form-filling session. You can now add HTTP, DNS and TCP monitors straight from your dashboard, and the target is validated for the check type you picked, so a typo is caught before the first check ever runs. Pausing and resuming a monitor is a single click.

## 2026-01-13 · New · v1.0.0 — [WatchFor is live](https://watchfor.io/changelog/2026-01-13-watchfor-launch)

You should not have to hear from a customer that your site is down. WatchFor is open to everyone today: a fast dashboard for your uptime checks, a free network toolbox for quick HTTP, DNS, TCP, SSL and IP lookups, and a live status badge you can embed anywhere. Add a monitor and we will do the watching.
