{"openapi":"3.1.0","info":{"title":"Settled","version":"0.8.0-observatory","description":"Did it pay? Live, verified, machine-readable liveness, quote, on-chain activity and quality data for x402 endpoints. Paid routes use x402 (HTTP 402 + USDC) or a 24h pass; free routes are rate-limited. MCP server at /mcp."},"servers":[{"url":"https://settled.tools"}],"paths":{"/v1/status":{"get":{"summary":"Index summary (free)","responses":{"200":{"description":"OK"}}}},"/v1/peek":{"get":{"summary":"Coarse status for one endpoint (free, rate-limited)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Not indexed yet; call /v1/check or /v1/submit"}}}},"/v1/preflight":{"get":{"summary":"Pre-spend check: liveness on both verbs + quote + payability + payee/seller reputation + delivery + honeypot scan, one signed answer with a pay/caution/avoid recommendation ($0.005 via x402, or pass)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Bypass the 5-minute cache"}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.005","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/check":{"get":{"summary":"Live probe + quote + on-chain activity + quality for one endpoint ($0.002 via x402, or pass)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"schema":{"type":"string","enum":["1"]},"description":"Bypass the 5-minute cache"}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.002","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/endpoints":{"get":{"summary":"Ranked live endpoints ($0.005 via x402, or pass)","parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"network","in":"query","schema":{"type":"string"}},{"name":"max_price","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string","default":"live"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["quality","price","latency","payers"],"default":"quality"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.005","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/payto/{address}":{"get":{"summary":"Seller reputation by recipient address ($0.002 via x402, or pass)","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.002","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/pass":{"get":{"summary":"Describe the day pass (free)","responses":{"200":{"description":"OK"}}},"post":{"summary":"Buy a 24h pass ($0.05 via x402): unlocks all paid routes and MCP tools, 120 req/min","responses":{"200":{"description":"Pass issued"},"402":{"description":"Payment required"}},"x-x402":{"price":"$0.05","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/watch":{"get":{"summary":"Describe the Watchdog subscription (free)","responses":{"200":{"description":"OK"}}},"post":{"summary":"Watchdog: 30 days of signed webhook alerts for one endpoint on status / payability / price / payTo changes ($1.00 via x402)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"webhook":{"type":"string","description":"https URL that receives POSTed, EIP-191-signed alerts"}},"required":["url","webhook"]}}}},"responses":{"200":{"description":"Watch created"},"402":{"description":"Payment required"}},"x-x402":{"price":"$1.00","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/watch/{id}":{"get":{"summary":"Watch status and recent alert deliveries (free)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"description":"Unknown watch"}}}},"/v1/submit":{"post":{"summary":"Submit an x402 endpoint URL for indexing (free, rate-limited)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}},"responses":{"202":{"description":"Accepted"}}}},"/v1/income/venues":{"get":{"summary":"Venue scorecard: which places actually pay agents (free, rate-limited)","responses":{"200":{"description":"OK"}}}},"/v1/income":{"get":{"summary":"Verified agent-income listings with honeypot scoring and on-chain payout evidence ($0.01 via x402, or pass)","parameters":[{"name":"venue","in":"query","schema":{"type":"string"}},{"name":"rail","in":"query","schema":{"type":"string"}},{"name":"agent_access","in":"query","schema":{"type":"string","enum":["allowed","any"],"default":"allowed"}},{"name":"min_reward","in":"query","schema":{"type":"string"}},{"name":"include_honeypots","in":"query","schema":{"type":"string","enum":["1"]}},{"name":"sort","in":"query","schema":{"type":"string","enum":["trust","reward","recent"],"default":"trust"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.01","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/income/check":{"get":{"summary":"Honeypot / trust scan of one bounty, task or repository URL ($0.005 via x402, or pass)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"402":{"description":"Payment required (or invalid/expired pass)"}},"x-x402":{"price":"$0.005","network":"eip155:8453","scheme":"exact","how":"Send the request; on 402 read PAYMENT-REQUIRED, pay, retry with PAYMENT-SIGNATURE. Or send a day pass in the x-settled-pass header."}}},"/v1/reports/latest":{"get":{"summary":"Weekly Agent Income Report as JSON (free, rate-limited): venues that paid agents on-chain, worker wallets, honeypots, endpoint index health","parameters":[{"name":"live","in":"query","schema":{"type":"string","enum":["1"]},"description":"Build from current data instead of the last published report"}],"responses":{"200":{"description":"OK"}}}},"/v1/events":{"get":{"summary":"Change feed (free, rate-limited): venue verdict flips, new suspected honeypots, settlement-integrity changes, newest first","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"OK"}}}},"/v1/verify":{"post":{"summary":"Verify a signed Settled response (free): recomputes the canonical-JSON keccak256 hash and recovers the EIP-191 signer","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"The whole signed response object, attestation block included"}}}},"responses":{"200":{"description":"{valid, hash_matches, signer_recovered, signer_published}"}}}},"/v1/signer":{"get":{"summary":"Published attestation signer address and scheme (free)","responses":{"200":{"description":"OK"}}}},"/v1/snapshots/latest":{"get":{"summary":"Latest daily hash-chained, signed snapshot of the whole index (free)","responses":{"200":{"description":"OK"}}}},"/v1/snapshots/{day}":{"get":{"summary":"One day's snapshot header; ?content=1 returns the TSV itself, ?content=gz the gzip file","parameters":[{"name":"day","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"content","in":"query","schema":{"type":"string","enum":["1","gz"]}}],"responses":{"200":{"description":"OK"},"404":{"description":"No snapshot for that day"}}}},"/reports":{"get":{"summary":"Latest weekly Agent Income Report (HTML)","responses":{"200":{"description":"HTML"}}}},"/v1/observatory/latest":{"get":{"summary":"Weekly x402 Payability Observatory as JSON (free): payability breakdown, verb mismatches, payee checks, scout delivery rate, biggest hosts","responses":{"200":{"description":"OK"}}}},"/v1/observatory/sample.csv":{"get":{"summary":"CC BY 4.0 sample of 500 endpoints with status, payability, price, payTo and quality (free; re-drawn daily)","responses":{"200":{"description":"CSV"}}}},"/observatory":{"get":{"summary":"Latest Payability Observatory (HTML)","responses":{"200":{"description":"HTML"}}}},"/venues":{"get":{"summary":"Human-readable venue verdicts (HTML)","responses":{"200":{"description":"HTML"}}}},"/venues/{slug}":{"get":{"summary":"One venue's verdict, evidence and on-chain payouts (HTML)","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"HTML"}}}},"/mcp":{"post":{"summary":"MCP server (Streamable HTTP, stateless). Data tools need a pass.","responses":{"200":{"description":"JSON-RPC"}}}}}}