{"uid":"cap_cWeQJnIDo2Vpki0kpZd14","slug":"forest-factory-api-page-structured-changed-1a0381fb","name":"Forest Factory API – Page Structured Changed","description":"Machine-readable contract for active Forest paid capabilities. Unsigned paid calls return HTTP 402 with a PAYMENT-REQUIRED x402 challenge.","url":"https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/page/structured-changed?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","pattern":"^https?://","maxLength":2048,"minLength":1,"description":"Public HTTP(S) URL to inspect, resolve, or compare."},"previous_hash":{"type":"string","pattern":"^sha256:[a-fA-F0-9]{64}$","description":"Earlier result hash used to detect a material change."}}},"responseSchema":{"type":"json","example":{"ok":true,"data":{"title":"example","changed":false,"new_hash":"example","truncated":false,"source_url":"example","type_counts":[],"entity_count":0,"canonical_url":"example","previous_hash":"example","changed_fields":[],"rendered_javascript":false},"meta":{"cache":"miss","provider":"safe-http","checked_at":"2026-01-01T00:00:00.000Z","duration_ms":0},"version":"1","capability":"web.page-structured-changed"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","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.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_rbPv-CnD2ygVJt4idfK6N","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches a structured representation of a webpage and detects whether its content has materially changed since a previous snapshot, identified by a SHA-256 hash.","exampleAgentPrompt":"Check if https://www.example.com/pricing has changed since my last snapshot — the previous hash was sha256:a3f1c2e4b5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2 — and tell me exactly which fields changed.","exampleUseCases":[{"title":"Competitor pricing page monitoring","prompt":"Has https://www.competitor.com/pricing changed since last week? My previous hash is sha256:b4e2d1c0f3a6e9b8d7c5f4a3e2b1d0c9f8a7e6b5d4c3f2a1e0b9d8c7f6a5e4b3 — let me know what fields are different now."},{"title":"Regulatory compliance document tracking","prompt":"Check whether https://www.regulator.gov/rules/section-4 has been updated since my last check — the old hash was sha256:1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b — and tell me if any content changed."},{"title":"News article content verification","prompt":"Has the article at https://www.newssite.com/story/12345 been edited since it was first published? My stored hash is sha256:9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e — flag any changed fields."}],"resultDescription":"Returns a JSON object indicating whether the page content has materially changed (changed: boolean), the new SHA-256 hash for future comparisons, the page title, canonical URL, a list of changed fields, entity counts by type, whether JavaScript was rendered, and metadata including cache status, provider name, check timestamp, and duration in milliseconds.","failureModes":["Invalid or unreachable URL returns an error with ok: false","URL does not match ^https?:// pattern results in validation error","previous_hash not matching sha256:[hex64] pattern returns validation error","Payment not included or invalid returns HTTP 402 with x402 challenge","Page behind authentication or bot protection may return incomplete or blocked content","Very large pages may be truncated (truncated: true in response)","DNS resolution failures or timeouts for the target URL cause error responses"],"whenToPreferThis":"Use this endpoint when you need both structured content extraction AND change detection in a single call — particularly when you have a stored SHA-256 hash from a previous fetch and want to know exactly which fields changed. It is ideal for automated monitoring pipelines, compliance tracking, and competitive intelligence workflows where knowing *what* changed (not just *that* something changed) is important. Prefer this over generic diff tools when you need entity-level granularity and a machine-readable structured output.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-20T06:45:08.272Z","isFirstParty":false,"canonicalSlug":"forest-factory-api-page-structured-changed-1a0381fb"}