---
title: WatchFor documentation FAQ
description: Short answers on checks and confirmation, monitor types, alerting, status pages, AI agents and the API, pricing, locations, EU/GDPR and migration.
canonical: https://watchfor.io/docs/reference/faq
---

# WatchFor documentation FAQ

Short answers on checks and confirmation, monitor types, alerting, status pages, AI agents and the API, pricing, locations, EU/GDPR and migration.

Short answers to the things people ask most, with links to the full guide.
For the public FAQ see [watchfor.io/faq](/faq).

## Monitoring

### What can I monitor?

30 monitor types: websites and HTTP, APIs (with JSON assertions and value
extraction), Playwright browser checks (scripted journeys such as sign-in and
checkout), MCP servers, WebSocket, TCP and UDP ports, NTP, DNS, SSL/TLS
certificates, domain expiry, ping, network path (MTR), mail servers (SMTP, with an
optional login check), IMAP and POP3 mailboxes, email round-trip delivery,
FTP and SFTP, email policy (SPF/DKIM/DMARC), CDN, Brotli, Core Web Vitals,
sitemap, favicon, blocklists, CMS and data breaches, page integrity
(defacement and injected scripts), plus heartbeats and cron jobs. See
[Monitors](/docs/monitors).

### Can WatchFor detect website defacement or injected scripts?

Yes — a [page integrity](/docs/monitors/integrity) monitor compares your key
pages with a baseline you accept: new script sources, scripts whose code
changed, forms that send data to another site, redirects, weakened security
headers, tamper words and changed text. Available from the Starter plan.

### Can WatchFor run my Playwright tests as monitors?

Yes — a [browser check](/docs/monitors/browser-checks) runs a Playwright Test
file (yours, `npx playwright codegen` output or a Chrome DevTools Recorder
export) on your schedule in a real Chromium, with per-step results,
screenshots and a trace. A failed test is retried once and confirmed by a
second run before an incident opens, and secrets are masked in every run's
logs, traces and screenshots. The Free plan includes one hourly browser check.

### How often does WatchFor check my monitors?

You set the interval per monitor. The shortest interval you can choose
depends on your [plan](/docs/organization/billing) (and, for a few heavy
types, on the monitor type). Checks also speed up automatically while an
incident is open — see [Faster checks during an incident](/docs/alerting/incidents).

### Why does a monitor show "Degraded" instead of "Down"?

A failing check shows as **Degraded** while its confirmation is in progress —
any alert rule counts (availability, status code, response time, content,
assertions…), so an HTTP 500 or a slow response turns the monitor Degraded
within one check. **Down** is reserved for a *confirmed* critical incident — a
failure verified from several locations — so the dashboard reflects real
outages, not blips. A confirmed warning-severity incident (slow responses, a
certificate expiring soon) also shows as Degraded. See
[Monitor status](/docs/core-concepts#monitor-status) and
[How incidents work](/docs/alerting/incidents).

### Will I get paged for a momentary network glitch?

No. A failure is [confirmed across several locations](/docs/alerting/incidents)
before an incident opens and notifications go out. A handful of types whose
answer doesn't depend on the vantage point (domain expiry, data breach,
blocklist, MCP, Core Web Vitals) skip the extra confirmation because a second
location wouldn't add information.

### Where does WatchFor check from?

From **20 locations in 7 regions** — Europe, North America, South America,
Asia, the Middle East, Africa and Oceania — over IPv4 and IPv6. Which
locations a monitor uses is up to you, within your plan. See
[Probe locations](/docs/reference/probe-locations).

### Do I need to install anything on my servers?

Not for checks — every check runs from WatchFor's own locations against the
public address you give it. Two things work the other way round, deliberately:
[heartbeat and cron monitors](/docs/monitors/heartbeat), where your job calls a
ping URL (a single `curl` line), and [server monitoring](/docs/hosts), where
the optional open-source `watchfor-agent` runs on a Linux host and pushes CPU,
memory, disk, network and process metrics out over HTTPS — one command to
install, no inbound port, no remote commands, and nothing at all for the
external checks.

### Can I monitor a service behind a firewall?

If it's reachable from the internet but restricted, allowlist the published
[probe IP ranges](/ip-ranges) (or the `WatchForBot` User-Agent, verified by
reverse DNS or request signatures). Purely internal services with no public
route can't be reached by an external checker — use a
[heartbeat monitor](/docs/monitors/heartbeat) to watch the job that runs on
them, or the [host agent](/docs/hosts) for the machine itself. See
[Probe locations](/docs/reference/probe-locations).

### How do I know a request really came from WatchFor?

Three ways: the source IP is in the published ranges, its reverse DNS is a
`*.probe.watchfor.io` hostname that resolves back to the same IP, and HTTP
requests carry RFC 9421 Web Bot Auth signatures you can verify against our
public keys. WatchForBot is also a verified bot in
[Cloudflare's bots directory](https://radar.cloudflare.com/bots/directory?q=watchfor), so Cloudflare checks those
signatures for you. See
[Identifying and verifying WatchForBot](/docs/reference/probe-locations#identifying-and-verifying-watchforbot).

### Can I watch cron jobs and scheduled tasks?

Yes. A [heartbeat monitor](/docs/monitors/heartbeat) expects your job to ping
a URL on an interval or a cron schedule, and alerts when the ping is late,
missing or reports a failure. Use the [cron expression tester](/cron-expression-tester)
to double-check a schedule first.

### Can I reset a monitor's statistics?

Yes. Owners and admins can choose **Reset history** from the monitor's **⋯**
menu: it deletes every check, incident, note and post-mortem the monitor ever
recorded and starts uptime over from that moment, while the monitor keeps its
id, settings, alert rules, tags, locations and status-page components. It
cannot be undone, so the dialog asks you to type the monitor's name — see
[Actions on a monitor](/docs/monitors#actions-on-a-monitor).

### Can I migrate from another monitoring tool?

Yes. **Monitors → Import** brings monitors over from UptimeRobot, StatusCake,
Pingdom, Checkly, Site24x7 and Instatus (owners and admins), with a preview before
anything is created. Everything else — alert rules, channels, status pages —
can be created in bulk through the [REST API](/docs/api) or an AI agent
using the [MCP server](/docs/api/mcp).

## Alerting and incidents

### How do I get alerted when something breaks?

Add [notification channels](/docs/notifications) — email, Slack, Discord,
Telegram, Microsoft Teams, PagerDuty, Opsgenie, webhooks and more, 16 channel
types (SMS isn't offered yet) — and route by severity. For paging humans in turn, add
[on-call schedules and escalation policies](/docs/alerting/on-call).

### Can I pause checks or schedule maintenance?

Both. **Pause** stops a monitor entirely. A
[maintenance window](/docs/monitors/maintenance) keeps the checks running but
suppresses alerts, excludes the time from uptime and can announce itself on
your status page — the right tool for deploys and planned work.

### Can I resolve an incident by hand, or write a post-mortem?

Owners and admins can [resolve incidents manually](/docs/alerting/resolving);
anyone on the team can acknowledge one and add
[internal notes](/docs/alerting/internal-notes). Every incident can get a
[post-mortem](/docs/alerting/postmortems) with a timeline and action items,
optionally published to your status page.

### A probe glitch caused a false incident — can I exclude it from uptime?

Yes. Once the incident is resolved, an owner or admin can **Mark as false
positive** on its page (or tick the box while resolving it): the incident
stays on record with a badge, but it leaves your uptime, SLA and reports and
is removed from the public status page. **Count as downtime again** undoes
it; if the outage was real but planned, mark it as maintenance instead — see
[False positives](/docs/alerting/resolving#false-positives).

## Status pages

### How do I tell my customers about an outage?

Publish a [status page](/docs/status-pages) at `yourname.watchfor.io` —
public, password-protected or private — with components backed by your
monitors, incident updates in your own words (or auto-published from
incidents), scheduled maintenance, uptime history, RSS, a badge and a JSON
endpoint.

### Can a status page use my own domain, or email subscribers?

Not yet. Pages live at `yourname.watchfor.io` (also `watchfor.io/stats/yourname`).
Visitors can follow a public page by RSS, and you can embed the
[status badge or `status.json`](/docs/status-pages/embed) on your own site.

### Can I show my providers' status (GitHub, Cloudflare, Stripe…) on my page?

Yes — add a [third-party component](/docs/status-pages/components#third-party-components).
It mirrors the provider's public status page, keeps a 90-day history, and
doesn't affect your own "all systems operational" banner.

## AI agents and the API

### Is there an API?

Yes — a REST API at `/api/v1` with 89 operations covering monitors and their
checks, hosts, alert rules, incidents, maintenance windows, contacts, status
pages, reports, activity, notification channels and history, on-call and your
plan, an OpenAPI spec, and SDKs/CLI named `watchfor` on npm, PyPI and
RubyGems. Keys are created under **Settings → API keys** with a `read` or
`write` scope. Start at the [API overview](/docs/api).

### Can I get WatchFor's data into Prometheus and Grafana?

Yes, on the Pro plan and above. [`GET /v1/metrics`](/docs/api/prometheus)
serves monitor status, uptime over 24 hours, 7 and 30 days, response times,
certificate and domain expiry, heartbeats and hosts in the Prometheus text
format, refreshed every minute. Scrape it with any API key, import the
ready-made Grafana dashboard, or run the open-source exporter if several
organizations should sit behind one target.

### Can AI agents use WatchFor?

Yes — everything in the dashboard is available to AI agents. The
[MCP server](/docs/api/mcp) at `https://watchfor.io/api/mcp` exposes 63
tools (Claude, Cursor, Claude Code and any MCP client, with OAuth 2.1 sign-in
or an API key); the [A2A server](/docs/api/a2a) publishes 19 skills that
other AI agents can delegate to; and a separate documentation MCP server lets
an AI agent search these docs. Keyless sample data is at `/api/v1/sandbox`.

### Can an AI agent run a check on something I don't monitor?

Yes. [Live diagnostics](/docs/api/diagnostics) let an agent run any of 26
checks — DNS, propagation, whois, ping, traceroute, TCP ports, blacklists,
SSL, TLS grade, HTTP headers, PHP and software versions, email policy and
more — against any public
target from the probe fleet, whether or not it is one of your monitors.
`diagnose-target` runs the whole bundle from up to three regions in one
call. Runs need a `write` key (they send real traffic from our IPs) and
spend the same per-plan allowance as the dashboard **Toolbox**; every
response says how much is left.

### Can I try the API without an account?

Yes: `GET https://watchfor.io/api/v1/sandbox/summary` (also `/monitors`,
`/incidents`, `/monitor-types`, `/locations`, `/reports`) returns read-only
sample data in exactly the live shapes. See [Sandbox](/docs/api/sandbox).

## Account, team and billing

### Can I invite my team?

Yes. Invite people by email and give them a role — owner, admin or member.
The [activity log](/docs/organization/activity-log) records who changed
what. See [Members & roles](/docs/organization).

### Does WatchFor charge per seat?

No. There are no per-seat fees; the number of members is simply one of your
plan's limits, alongside monitors, check frequency and locations. Current
plans are on the [pricing page](/pricing).

### Is there a free plan?

Yes — a free-forever plan with real monitoring, confirmed incidents and
alerting; what it includes is on the [pricing page](/pricing). Every account
gets one free organization; extra organizations need their own plan. See [Billing & plans](/docs/organization/billing).

### What happens if I downgrade?

You keep everything you have until the period you've paid for ends; then the
smaller plan starts. Nothing is deleted — whatever the new plan doesn't cover
pauses (the newest monitors past its limits, types it doesn't include, extra
status pages or schedules), and running monitors follow its fastest interval
and regions. The change dialog lists exactly what would pause before you
confirm, and everything comes back on its own when you upgrade again. See
[When a plan no longer covers something](/docs/organization/billing#when-a-plan-no-longer-covers-something).

### How do I manage billing, invoices and cancellation?

Self-serve under **Settings → Subscription**: change or cancel your plan
(cancellation takes effect at the end of the paid period), update the payment
method, download invoices, redeem a coupon. See
[Billing & plans](/docs/organization/billing).

### Can I have more than one organization?

Yes. Each account includes one free organization; each additional organization you
create needs its own plan (being invited into other organizations doesn't
count). See [Multiple organizations](/docs/organization#multiple-organizations).

### How far back can I see my history?

Uptime, response-time and incident history are kept on each monitor page,
including an **Uptime SLA** tab for any custom date range that's printable as
a report, and weekly/monthly [reports](/docs/reports) compare each period
with the one before.

## Data and security

### Where is my data stored, and does GDPR apply?

Monitoring configuration and incident history are stored in the European
Union under European law, so GDPR applies end to end. Checks run from
locations worldwide, but they only ever touch the targets you configure. See
the [privacy policy](/legal/privacy) and [subprocessors](/legal/subprocessors).

### Is my data secure?

Checks run over encrypted connections; team access is role-based with an
audit log; two-factor authentication is available for every user; API keys
are stored hashed, scoped and revocable; and status pages can be private or
password-protected. Each organization's data is fully isolated.

### Do you publish your own status and changes?

The [changelog](/changelog) lists every release, with an RSS feed you can
subscribe to.

> **Still stuck?**
>
> If something here doesn't answer your question, [contact us](/contact) —
> we're happy to help you get set up.

---

Canonical page: https://watchfor.io/docs/reference/faq · All docs: https://watchfor.io/docs · Site guide: https://watchfor.io/llms.txt
