{"uid":"cap_D1N_thh0nzlDLKARg0Eab","slug":"x402-changed-e1aacb0a","name":"x402-changed","description":"What changed on a page since you last saw it: deterministic line diff of any public URL against text you supply. $0.008 USDC per call on Base.","url":"https://x402-extract-wg5z.onrender.com/v1/changed?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["url","previous"],"properties":{"url":{"type":"string","description":"Public http(s) page to check (same fetch rules as /extract)"},"previous":{"type":"string","description":"The text you last saw (≤10,000 chars). The server is stateless: it holds no baseline, you supply it."}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["changed","current_hash","previous_hash","added_count","removed_count","added","removed","url"],"properties":{"url":{"type":"string"},"added":{"type":"array","items":{"type":"string"},"description":"New lines (max 50)"},"changed":{"type":"boolean"},"removed":{"type":"array","items":{"type":"string"},"description":"Gone lines (max 50)"},"added_count":{"type":"integer"},"current_hash":{"type":"string","description":"SHA-256 of the current page text"},"previous_hash":{"type":"string","description":"SHA-256 of the supplied previous text"},"removed_count":{"type":"integer"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.008","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.008/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.008","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_znEZqANZy0ufX0y0BV9BA","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.008","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Performs a deterministic line diff of any public URL's current content against previously seen text, returning added/removed lines and change detection.","exampleAgentPrompt":"Check if https://example.com/pricing has changed since I last saw it — here's the text I saved before: 'Basic plan $9/mo, Pro plan $29/mo, Enterprise contact us.' Tell me exactly what lines were added or removed.","exampleUseCases":[{"title":"Price page change alert","prompt":"Has https://stripe.com/pricing changed since I last checked? Here's what the page said when I cached it last week: 'Integrated per-transaction pricing with no hidden fees. Pay-as-you-go pricing. 2.9% + 30¢ per successful card charge.' Tell me what lines were added or removed."},{"title":"Documentation update detection","prompt":"I need to know if the React docs at https://react.dev/reference/react/useState have been updated since I last read them — here's my saved version of the page text: 'useState is a React Hook that lets you add a state variable to your component. Call useState at the top level of your component.' What changed?"},{"title":"News article revision tracking","prompt":"Check if this BBC article at https://www.bbc.com/news/technology-12345678 has been edited since I saved it — the previous text I have starts with: 'The company announced layoffs affecting 1,200 employees across its UK offices.' What lines are new and what lines are gone?"}],"resultDescription":"Returns a JSON object with a boolean 'changed' flag, SHA-256 hashes of both the current and previous page text, arrays of up to 50 added lines and up to 50 removed lines, and integer counts of total added and removed lines, plus the checked URL.","failureModes":["URL is not publicly accessible or returns non-200 status — fetch fails","'previous' text exceeds 10,000 character limit — request rejected","URL uses non-HTTP/HTTPS scheme — not supported","Page returns dynamic/JS-rendered content that differs from static fetch — may show spurious diffs","Payment not completed or insufficient USDC balance — 402 Payment Required","Network timeout fetching the target URL — transient error"],"whenToPreferThis":"Choose this endpoint when you need a stateless, deterministic line-level diff of a public webpage against a known baseline you supply — ideal when you are storing your own snapshots and want explicit added/removed line arrays rather than just a changed/unchanged signal. Prefer over full-scrape endpoints when change detection and diff precision are the primary goal, and you already hold the previous text. The x402 micropayment model makes it cost-effective for high-frequency polling of many URLs.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-11-04T06:30:57.843Z","isFirstParty":false,"canonicalSlug":"x402-changed-e1aacb0a"}