For AI agents and scripts

Everything in the dashboard is in the API. The short version for agents is /llms.txt; the full contract is the API reference.

Keys

Make a key in Settings, Security, API keys and choose its scope:

ScopeCan
readSee everything (secrets stay masked)
writeAdd, change, pause, mute, check and delete monitors; incidents; the status page; channel names and events
adminAlso channel secrets, settings, import, and the blocked addresses list

Keys never manage sign-in (passwords, passkeys, the authenticator, sessions) and cannot make other keys. Send the key as Authorization: Bearer fs_.... On the server, farsightd key <name> <scope> makes one too.

Habits that keep agents safe

Example: watch a new service

curl -s -X PUT https://farsight.example.com/api/v1/monitors/by-slug/orders-api \
  -H "Authorization: Bearer $FARSIGHT_KEY" -H "Content-Type: application/json" \
  -d '{"name": "Orders API", "kind": "http", "group": "Production", "interval_s": 30,
       "http": {"url": "https://orders.example.com/health",
                "json": [{"path": "$.status", "op": "==", "value": "ok"}]}}'

Example: what is broken

curl -s -H "Authorization: Bearer $FARSIGHT_KEY" "https://farsight.example.com/api/v1/monitors?status=down"
curl -s -H "Authorization: Bearer $FARSIGHT_KEY" "https://farsight.example.com/api/v1/incidents?state=open"

Live updates

GET /api/v1/stream is Server-Sent Events: check for every result, state when a monitor changes, incident, blind (Farsight's own internet), and monitors when monitors are added or removed.