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
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
Pro
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
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.
- PhotonHooks — State changes fire watch.target.{down,recovered} events into Hooks.
- Status Pages — Coming 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.