PARTNER API v1 prototype
credits console site status

Checks any agent can buy — no account, per call, for tenths of a cent — or fund with prepaid credits. Every endpoint answers unpaid requests with HTTP 402 and machine-readable payment terms, so an agent can discover the price, pay, and retry without a human.

Pay: two rails, one paywall

# rail 1 — x402 (agents, no account): pay per call in the request curl -X POST /v1/check/site -d '{"sites":["https://dns.pizza"]}' # → 402 with PAYMENT-REQUIRED; sign the x402 authorization and retry # rail 2 — credits (humans/keys): one top-up, then Bearer auth curl -X POST /topup -d '{"amount": 5.00}' # → {"api_key": "sk_…"} curl -X POST /v1/check/site -H "Authorization: Bearer sk_…" -d '{}' # no payment? the 402 tells you everything: curl -X POST /v1/check/site # → 402 + price + both rails

Endpoints

endpointpricewhat you get
POST /v1/check/site$0.005 Per site: HTTP status + latency, DNS resolve time, resolved IP, A-record TTL, nameservers, TLS days-remaining, server header. Body: {"sites": [...]} (empty = default fleet).
POST /v1/watch/page$0.005 Content-change detection vs last snapshot: text-similarity %, changed flag (≥2% threshold), added/removed snippets, last-change time. Body: {"url": "..."}. First call stores the baseline.
POST /v1/monitorsruns billed Scheduled checks. Body: {"type": "site"|"page", "target": url, "interval_min": 5} + Bearer key. Each run charges the key; up↔down and page-change transitions alert (Pushover + email). Cap/balance failure pauses the monitor and alerts.
GET /v1/monitorsfreeList your monitors with state, last run, last summary. Requires your Bearer key — it only ever returns monitors funded by that key.
DELETE /v1/monitors/<id>freeFunding key required (Bearer).
GET /v1freeMachine-readable index of all of the above.

Spend safety (credits rail)

daily capper key, default $0.10 — POST /cap {"key_prefix", "daily_cap"}
80% of capone Pushover warning per key per UTC day
100% of caphard stop — 402 daily spend cap reached until 00:00 UTC (x402 rail unaffected)

Monitors: the subscription that is just credits + a schedule

# watch dns.pizza every 5 min ($0.58/day), alert on down/up curl -X POST /v1/monitors -H "Authorization: Bearer sk_…" \ -d '{"type":"site","target":"https://dns.pizza","interval_min":5}' # watch a page for material changes every 30 min curl -X POST /v1/monitors -H "Authorization: Bearer sk_…" \ -d '{"type":"page","target":"https://ayd.yoga/schedule","interval_min":30}'

Billing rules

casewhat you are charged
Check succeedsthe listed price, once.
Single check failsnothing — a failed individual check is refunded.
Profile, some parts failthe full bundle price. The response names the missing parts in errors and restates this in billing. A profile is refunded only if every part fails.
Profile side effecteach profile also stores a free page snapshot of https://<domain> so your first page_watch on it returns a real diff. An existing baseline is never overwritten. No charge, and it never fails the call.