PhotonWatch

Standalone uptime monitoring. Composes with PhotonHooks for cross-product alerts.

HTTP checks on a schedule with the alerts you actually want: email, PhotonHooks events that ride your existing webhook stack, SMS coming soon. Free tier covers 5 targets at 5-minute granularity — enough for a small SaaS. Pro unlocks 50 targets at 1-minute checks plus the cross-product magic where state changes fire watch.target.down/recovered events you can route anywhere.

No credit card to start. Free · $9 · $29.

Create a target via API

curl -X POST https://watch.photonforge.io/v1/targets \
  -H "Authorization: Bearer pf_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"checkout API","url":"https://app.example.com/healthz","intervalSeconds":60}'

Why PhotonWatch

Has to be off-infrastructure

You can't reliably check your own URL is up. We do it from somewhere else, which is the only model that works.

Composes with PhotonHooks

Down + recovery events fire into your existing webhook stack. No new alerting tool to onboard — use the one you already wired up.

Tier-aware interval clamping

Set a 30-second interval on free tier and we silently clamp to 5 minutes. No yelling, no errors, just the right behavior for what you're paying.

Pay only for what you use

Per-target pricing. 5 free, 50 on Pro. No per-seat surprise.

Features

HTTP / HTTPS checks

GET, POST, HEAD methods. Custom headers + expected status code.

5-min or 1-min cadence

Free tier 5min floor, Pro tier 1min floor.

Latency tracking

Per-check response time. > 5 seconds = DEGRADED.

DOWN / DEGRADED / UP classification

Three-state result on every check, not just up/down.

Email alerts

CSV list of recipients. Fires on state change.

PhotonHooks integration

watch.target.down + watch.target.recovered events.

Uptime stats

7-day + 30-day uptime % + mean latency, per target.

On-demand check

Run a check now button + run_watch_target MCP tool.

Per-target failure counter

consecutiveDowns surfaced in the list view + UI badges.

API + MCP

Full CRUD via REST + MCP.

Pricing

Pay for what costs us money.

Free

$0forever

Enough to watch a handful of services with 5-minute granularity.

  • 5 monitored targets
  • 5-minute check interval
  • 30-day check history
  • Email alerts on state change
  • API + MCP access
  • Recovery events via PhotonHooks
Most useful

Pro

$9per month

Faster detection + cross-product alerting through PhotonHooks.

  • 50 monitored targets
  • 1-minute check interval
  • 90-day check history
  • Email + SMS alerts (SMS coming soon)
  • Down + recovery events into PhotonHooks

Business

$29per month

Protocol-aware checks + Status Pages cross-product auto-incident.

  • Everything in Pro
  • 200 monitored targets
  • 30-second minimum interval
  • 1-year check history
  • TCP + SSL/TLS check types (not just HTTP)
  • Keyword assertion (must / must-not contain)
  • Status Pages auto-incident on DOWN
  • SSL certificate expiry tracking

Cancel anytime via the Stripe customer portal. No annual lock-in, no email-us-to-cancel routine.

Composes with

PhotonWatch talks to the rest of PhotonForge automatically.

  • PhotonHooksState changes fire watch.target.{down,recovered} events into Hooks.
  • Status PagesComing soon: auto-open Status Pages incidents on monitor DOWN.

Common questions

How is this different from PhotonBeat?

Watch pulls — we initiate HTTP requests to your URLs. Beat pushes — your cron/worker pings us on schedule. Use Watch for 'is my site up.' Use Beat for 'did my nightly batch job run.'

What regions do you check from?

Today: a single Vercel function region. Multi-region checks are the next major upgrade (the structural-moat angle for Watch).

What counts as DEGRADED vs DOWN?

DOWN: HTTP error or wrong status code. DEGRADED: correct status code but response took > 5 seconds. Both fire state-change alerts.

Spin up PhotonWatch in a minute.

Sign in with your email. No card, no commitment.