USE CASES
The outage you hear about once
- Persona
- Tomás, the only backend engineer at a six-person startup whose product calls a model API.
- Scene
- The status page goes amber at 2:14am. Tomás's uptime tool pings every minute for forty minutes. Tomás mutes it, sleeps through the recovery, and wakes to a channel full of noise.
The old loop
Alert on every failed check, then learn to ignore alerts.
The new loop
The API health sentinel polls the status JSON every five minutes and remembers the last indicator. It alerts when the status changes, once going down and once coming back up.
The one capability that matters
Memory plus diff. write_state stores the last status; fast_path_diff only fires on a change.
The synth
# A zero-LLM status watcher: polls a Statuspage-style JSON endpoint and alerts
# only when the status indicator CHANGES (up→down and down→up both alert).
blueprint:
id: api-health-sentinel
title: API health sentinel
description: >-
Polls a status endpoint and alerts only when the status changes — you hear
about the outage once, and you hear when it recovers. No LLM, free to run.
Ships watching Anthropic's status page; point it at any Statuspage JSON.
config:
synth:
name: Health sentinel
goal: Alert me when the service's status changes, in either direction.
schedule_seconds: 300
requires_credentials:
- WEBHOOK_URL
sources:
- id: status
primitive: http_fetch
config:
url: https://status.anthropic.com/api/v2/status.json
json: true
fast_path:
primitive: fast_path_diff
inputs:
current: $sources.status.json.status.indicator
previous: $state.last_indicator
actions:
- if: $fast_path.triggered
primitive: notify_webhook
config:
url: $secrets.WEBHOOK_URL
body:
alert: Service status changed
now: $sources.status.json.status.description
change: $fast_path.diff
- always: true
primitive: write_state
config:
last_indicator: $sources.status.json.status.indicator
checked_at: $tick.started_at What it costs
Cost: $0 in model calls. Twelve checks an hour, all deterministic.