---
title: WatchFor — uptime & infrastructure monitoring
description: Modern monitoring for humans and AI agents: 25 check types, confirmed alerts, on-call and public status pages. From one website to millions of endpoints.
canonical: https://watchfor.io/
---

# WatchFor

*Watch for anything on the internet.*

WatchFor is modern uptime and infrastructure monitoring for humans and AI
agents: 25 check types — HTTP/HTTPS, APIs, MCP servers, SSL/TLS, DNS, TCP/UDP,
ping, MTR, email, Core Web Vitals, heartbeat/cron check-ins and more — run from
20 locations across 7 regions, with **confirmed alerting** (a failure is only
"Down" once confirmed from several locations, so fewer false alarms), incidents
with on-call and escalations, post-mortems, reports, 16+ notification channels,
and public status pages on your own subdomain. Everything in the dashboard is
also available to AI agents through the REST API, MCP server and A2A. It starts
with one URL on a genuinely useful free plan and scales to millions of
endpoints; paid plans cost significantly less than legacy competitors.

## What you can do

- **Monitor** websites, APIs, servers and networks from the outside — nothing to install.
- **Get confirmed alerts** to Slack, Discord, Telegram, Teams, PagerDuty, Opsgenie, webhooks and more.
- **Publish a status page** on `yourname.watchfor.io` with incidents, maintenance and uptime history.
- **Run on-call** rotations, escalation policies and incident management.

## For AI agents & developers

### API & protocols

- **REST API:** `https://watchfor.io/api/v1` — OpenAPI 3.1: https://watchfor.io/openapi.json (66 operations)
- **MCP server** (45 tools, Streamable HTTP): `https://watchfor.io/api/mcp` — manifest: https://watchfor.io/.well-known/mcp.json
- **A2A agent** (16 skills, JSON-RPC): `https://watchfor.io/api/a2a` — Agent Card: https://watchfor.io/.well-known/agent-card.json
- **Live diagnostics** (22 on-demand checks from the probe fleet, any public target): `https://watchfor.io/api/v1/diagnostics` — [docs](https://watchfor.io/docs/api/diagnostics)
- **In-page WebMCP** (9 read-only/navigational tools on `document.modelContext`, registered by the marketing pages for agentic browsers)
- **NLWeb /ask** (natural-language query): `https://watchfor.io/ask`
- **Monitor-type catalog:** https://watchfor.io/api/v1/meta/monitor-types
- **API catalog (RFC 9727):** https://watchfor.io/.well-known/api-catalog

### Authentication

- **API key:** `Authorization: Bearer wf_live_…` (Settings → API keys; `read`/`write` scopes)
- **OAuth 2.1:** https://watchfor.io/.well-known/oauth-authorization-server (dynamic client registration + PKCE, no manual key)
- **Walkthrough:** https://watchfor.io/auth.md
- **Free tier, self-serve keys, zero-auth discovery** (MCP initialize / tools-list, A2A card, OpenAPI all respond without a key). A **read-scope key is a safe sandbox** — it cannot modify anything.

### Onboarding (self-serve, no human in the loop)

- **Free plan:** genuinely usable, no credit card — sign up at https://watchfor.io/auth/sign-up
- **Instant API keys:** dashboard → Settings → API keys (`read` or `read+write`), no approval queue
- **Live no-auth sandbox:** `https://watchfor.io/api/v1/sandbox` — sample data in exact production shapes; try `https://watchfor.io/api/v1/sandbox/summary` right now, no account needed
- **Zero-auth access:** this file, https://watchfor.io/llms.txt, https://watchfor.io/openapi.json, MCP `initialize`/`tools/list` and the A2A Agent Card all respond without any key

### SDKs & guides

- **npm:** `npm install watchfor` · **PyPI:** `pip install watchfor` · **RubyGems:** `gem install watchfor`
- **Agent quickstart:** https://watchfor.io/agents.md · **Site guide:** https://watchfor.io/llms.txt
- **Section guides:** https://watchfor.io/api/llms.txt · https://watchfor.io/docs/llms.txt

### Conventions

- JSON errors `{"error":{"code","message"}}` · cursor pagination · Idempotency-Key on POSTs
- Rate limits: `X-RateLimit-*` and `RateLimit-*` headers, `Retry-After` on 429
- Webhooks for alert delivery · reliability & deprecation policy: https://watchfor.io/docs/api/operations

## Links

- Documentation: https://watchfor.io/docs
- Pricing: https://watchfor.io/pricing · machine-readable pricing: https://watchfor.io/pricing.md
- Status pages: https://watchfor.io/status-pages
- Free tools: https://watchfor.io/free-tools
- Blog: https://watchfor.io/blog

## Try it in 30 seconds (curl)

```bash
# No account needed — live sandbox in exact production shapes:
curl https://watchfor.io/api/v1/sandbox/summary

# With an API key (dashboard -> Settings -> API keys):
curl https://watchfor.io/api/v1/summary -H "Authorization: Bearer wf_live_YOUR_KEY"
```

The REST API is OpenAPI 3.1 (Swagger-compatible) — import
https://watchfor.io/openapi.json straight into Postman, Insomnia or a code generator.

## Machine-readable index

- llms.txt: https://watchfor.io/llms.txt · agents.md: https://watchfor.io/agents.md
- OpenAPI spec: https://watchfor.io/openapi.json · REST API base: https://watchfor.io/api/v1
- MCP server: https://watchfor.io/api/mcp · docs MCP: https://watchfor.io/api/docs-mcp
- Live diagnostics: https://watchfor.io/api/v1/diagnostics · docs: https://watchfor.io/docs/api/diagnostics
- A2A agent: https://watchfor.io/api/a2a · Agent Card: https://watchfor.io/.well-known/agent-card.json
- Sandbox (no auth): https://watchfor.io/api/v1/sandbox
- Authentication (API keys + OAuth 2.1): https://watchfor.io/docs/api/authentication · auth.md: https://watchfor.io/auth.md
- SDKs + CLI: npm/PyPI/RubyGems "watchfor" · GitHub: https://github.com/watchfor-io
- Service status: https://status.watchfor.io · machine-readable: https://status.watchfor.io/status.json
- LinkedIn: https://www.linkedin.com/company/watchfor/
- Webhooks & notification channels: https://watchfor.io/alerting-integrations
- Rate limits & operations policy: https://watchfor.io/docs/api/operations
- AI catalog: https://watchfor.io/.well-known/ai-catalog.json · security.txt: https://watchfor.io/.well-known/security.txt
