{"openapi":"3.1.0","info":{"title":"well-009-url-change-watch","version":"1.0.0","description":"Fetch a public https URL, compute SHA-256 of the response body, and report whether it changed vs a prior sha256/etag ($0.01 USDC via x402). Sticky: store sha256 and call again later. Optional previous_sha256, previous_etag, include_body_if_changed. https only — http, file, data, localhost, and private IPs rejected. Caps: 1 MB body, ~10s timeout, max 5 redirects. Returns JSON { url, final_url, content_type, byte_length, sha256, etag?, last_modified?, changed, warnings, body_preview? }. Provided as is, with no warranty or guarantee of accuracy or fitness. Nothing is stored.","x-guidance":"POST /api/url-change-check with a JSON body matching the request schema. Unpaid calls get HTTP 402 with x402 v2 payment requirements (exact, USDC on Base eip155:8453, $0.01). Retry with a PAYMENT-SIGNATURE header. Payment settles only when the tool succeeds. The same tool is also available over MCP (streamable HTTP) at https://well-009-url-change-watch.mmelnyk2000.workers.dev/mcp as \"url-change-check\". Provided as is, with no warranty or guarantee of accuracy or fitness. Nothing is stored.","contact":{"email":"rain-maker@mail.grokbot.com"}},"servers":[{"url":"https://well-009-url-change-watch.mmelnyk2000.workers.dev"}],"paths":{"/api/url-change-check":{"post":{"operationId":"url_change_check","summary":"url-change-check ($0.01 USDC)","description":"Fetch a public https URL, compute SHA-256 of the response body, and report whether it changed vs a prior sha256/etag ($0.01 USDC via x402). Sticky: store sha256 and call again later. Optional previous_sha256, previous_etag, include_body_if_changed. https only — http, file, data, localhost, and private IPs rejected. Caps: 1 MB body, ~10s timeout, max 5 redirects. Returns JSON { url, final_url, content_type, byte_length, sha256, etag?, last_modified?, changed, warnings, body_preview? }.","tags":["rainmaker"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"https URL to watch. http/file/data/localhost/private IPs rejected."},"previous_sha256":{"type":"string","description":"Hex SHA-256 of last seen body. If omitted (and no previous_etag match), this call is a baseline (changed=null)."},"previous_etag":{"type":"string","description":"Prior ETag; used when previous_sha256 is absent and response has ETag (quotes normalized)."},"include_body_if_changed":{"type":"boolean","description":"If true and changed (or baseline), include truncated body text (~8KB) as body_preview. Default false."}},"required":["url"]},"example":{"url":"https://example.com"}}}},"responses":{"200":{"description":"Tool result (JSON). Includes an as-is notice.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true},"example":{"sha256":"abc","changed":null,"warnings":[]}}}},"402":{"description":"Payment Required"},"422":{"description":"Tool could not complete (input or fetch problem). No payment is settled."}}}}}}