{"name":"Sentinel paid agent services","description":"Pay-per-call services for AI agents, no account: four-region checks and probes from Sentinel's monitoring fleet. Every paid response carries an Ed25519-signed receipt you can verify for free.","protocol":"MPP (USDC on Tempo) and x402 (USDC on Base), both settled via Stripe","products":[{"id":"check","price_usd":"0.02","summary":"Four-region consensus check of a URL","method":"POST","input":{"url":"https://example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/check","x402":"https://sentinel.rootstuff.io/x402/check"}},{"id":"wake","price_usd":"0.01","summary":"Timer: one signed callback at a time you choose","method":"POST","input":{"callback_url":"https://agent.example/hooks/wake","delay_seconds":900,"payload":{"job":"retry-deploy-42"}},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/wake","x402":"https://sentinel.rootstuff.io/x402/wake"}},{"id":"watch-1h","price_usd":"0.05","summary":"Watch a URL for 1 hour: signed callbacks when its verdict changes","method":"POST","input":{"url":"https://example.com","callback_url":"https://agent.example/hooks/watch","payload":{"deploy":"v2.3.1"}},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/watch-1h","x402":"https://sentinel.rootstuff.io/x402/watch-1h"}},{"id":"watch-6h","price_usd":"0.20","summary":"Watch a URL for 6 hours: signed callbacks when its verdict changes","method":"POST","input":{"url":"https://example.com","callback_url":"https://agent.example/hooks/watch","payload":{"deploy":"v2.3.1"}},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/watch-6h","x402":"https://sentinel.rootstuff.io/x402/watch-6h"}},{"id":"watch-24h","price_usd":"0.50","summary":"Watch a URL for 24 hours: signed callbacks when its verdict changes","method":"POST","input":{"url":"https://example.com","callback_url":"https://agent.example/hooks/watch","payload":{"deploy":"v2.3.1"}},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/watch-24h","x402":"https://sentinel.rootstuff.io/x402/watch-24h"}},{"id":"deadman","price_usd":"0.05","summary":"Dead-man switch: a signed callback when your heartbeats stop","method":"POST","input":{"callback_url":"https://agent.example/hooks/deadman","timeout_seconds":600,"payload":{"task":"crawl-7"}},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/deadman","x402":"https://sentinel.rootstuff.io/x402/deadman"}},{"id":"ssl","price_usd":"0.01","summary":"TLS certificate and handshake grade for a host","method":"POST","input":{"host":"example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/ssl","x402":"https://sentinel.rootstuff.io/x402/ssl"}},{"id":"dns","price_usd":"0.01","summary":"Every DNS record for a domain plus propagation across public resolvers","method":"POST","input":{"domain":"example.com","type":"A"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/dns","x402":"https://sentinel.rootstuff.io/x402/dns"}},{"id":"domain","price_usd":"0.01","summary":"Registration expiry and registrar for a domain","method":"POST","input":{"domain":"example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/domain","x402":"https://sentinel.rootstuff.io/x402/domain"}},{"id":"headers","price_usd":"0.01","summary":"Response headers and security-header report for a URL","method":"POST","input":{"url":"https://example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/headers","x402":"https://sentinel.rootstuff.io/x402/headers"}},{"id":"redirects","price_usd":"0.01","summary":"Redirect chain from a URL to its final destination","method":"POST","input":{"url":"http://example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/redirects","x402":"https://sentinel.rootstuff.io/x402/redirects"}},{"id":"port","price_usd":"0.01","summary":"TCP port reachability and connect latency","method":"POST","input":{"host":"example.com","port":443},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/port","x402":"https://sentinel.rootstuff.io/x402/port"}},{"id":"ping","price_usd":"0.01","summary":"ICMP ping latency and packet loss","method":"POST","input":{"host":"example.com"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/ping","x402":"https://sentinel.rootstuff.io/x402/ping"}},{"id":"payment-envelope","price_usd":"0.02","summary":"Read a paid endpoint's 402 challenge without paying it","method":"POST","input":{"url":"https://sentinel.rootstuff.io/x402/check","expected_amount_usd":"0.02","expected_network":"eip155:8453"},"endpoints":{"mpp":"https://sentinel.rootstuff.io/mpp/payment-envelope","x402":"https://sentinel.rootstuff.io/x402/payment-envelope"}}],"usage":"POST the JSON input to a payment endpoint. The first call returns HTTP 402 with payment requirements; retry with the payment credential.","acceptable_use":"Probe and watch only hosts you operate or are authorized to test, and send callbacks only to URLs you control. Sentinel refuses private and reserved addresses, never follows redirects, throttles probes per target host (60/hour), caps the ports tried per host per day (10), limits live wakes per callback host (25), and blocks hosts that refuse callbacks. Any host can opt out entirely by writing to the abuse address in every 429 and callback. Monitoring IPs and user agents are published at /bot. A refused call answers 429 before settlement on x402.","receipts":{"algorithm":"ed25519","public_key":"https://sentinel.rootstuff.io/.well-known/sentinel-signing-key","verify":"https://sentinel.rootstuff.io/api/agent/verify-receipt"},"openapi":"https://sentinel.rootstuff.io/mpp/openapi.json","x402_manifest":"https://sentinel.rootstuff.io/.well-known/x402","operator":"https://sentinel.rootstuff.io","directory":"https://sentinel.rootstuff.io/agents/directory"}