{"openapi":"3.1.0","info":{"title":"FreshProof API","version":"0.2.0","description":"Evidence-first public web verification and repeated change monitoring for AI agents."},"servers":[{"url":"https://freshproof-mvp.onrender.com"}],"paths":{"/v1/demo":{"post":{"summary":"Free rate-limited verification demo","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","pattern":"^https?://","description":"Public HTTP(S) page to fetch"},"claim":{"type":"string","maxLength":500,"description":"Claim to check against visible page text"},"selector":{"type":"string","maxLength":200,"description":"Optional CSS selector"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful FreshProof response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"x402 payment required"}}}},"/v1/verify":{"post":{"summary":"Verify one public page","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","pattern":"^https?://","description":"Public HTTP(S) page to fetch"},"claim":{"type":"string","maxLength":500,"description":"Claim to check against visible page text"},"selector":{"type":"string","maxLength":200,"description":"Optional CSS selector"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful FreshProof response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"x402 payment required"}}}},"/v1/check":{"post":{"summary":"Recheck and compare with the prior snapshot","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","pattern":"^https?://","description":"Public HTTP(S) page to fetch"},"claim":{"type":"string","maxLength":500,"description":"Claim to check against visible page text"},"selector":{"type":"string","maxLength":200,"description":"Optional CSS selector"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful FreshProof response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"x402 payment required"}}}},"/v1/batch-check":{"post":{"summary":"Check up to ten pages","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","properties":{"url":{"type":"string","pattern":"^https?://","description":"Public HTTP(S) page to fetch"},"claim":{"type":"string","maxLength":500,"description":"Claim to check against visible page text"},"selector":{"type":"string","maxLength":200,"description":"Optional CSS selector"}},"required":["url"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful FreshProof response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"x402 payment required"}}}},"/v1/history/{watchId}":{"get":{"summary":"Read recent ephemeral snapshots","parameters":[{"name":"watchId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful FreshProof response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"x402 payment required"}}}}}}