{"service":"tollkit-extract","name":"Tollkit Extract","brand":"Tollkit","version":"0.4.0","description":"Pay-per-call web extraction: renders a product page in a headless browser and returns structured schema.org/Product JSON.","network":"base","pay_to":"0xBbfCE2D320dE6aB328Ba93A771c531ebFC9cE704","mcp":{"transport":"streamable-http","url":"https://extract.tollkit.dev/mcp","tools":["get_product_details","compare_products","try_it_free","get_service_info"],"note":"Remote MCP. Nothing to install and no API key — the agent pays in-band with x402. Call get_product_details without `payment` to get a quote."},"free_endpoints":[{"method":"GET","path":"/preview","description":"A real extraction of one fixed sample page, free, in the exact shape POST /extract returns. Call it to judge output quality before spending anything."},{"method":"GET","path":"/health","description":"Liveness, uptime, the advertised prices and the guarantees, for monitors and for buyers checking we are warm before paying."}],"paid_endpoints":[{"method":"POST","path":"/extract","price":"$0.05","description":"Render a URL through a headless browser, return structured schema.org/Product JSON for shopping agents."},{"method":"POST","path":"/extract/batch","price":"$0.15","description":"Up to 5 product URLs, one payment, one round trip. Free if every URL fails; partial batches charged in full."},{"method":"POST","path":"/attest","url":"https://attest.tollkit.dev/attest","price":"$0.25","description":"Signed, timestamped proof of what a page contained at a moment in time. Served on its own origin; verification is free, stateless and works without us."},{"method":"POST","path":"/summarize","price":"$0.005","description":"LLM summary of supplied text."}],"guarantees":[{"id":"no_substitution","claim":"A URL that redirects to what looks like a different page is refused, free, rather than answered with a different product's data.","why":"A wrong price that looks right is worse than an error for a price-tracking agent.","opt_out":"allow_redirect: true"},{"id":"failures_free","claim":"A failed extraction is never charged.","why":"Every failure path returns >= 400, and x402 settles nothing above 400."},{"id":"cache_disclosed","claim":"A cached answer says cached: true, carries cache_age_seconds, and reports the render's original fetchedAt rather than the time of your call.","why":"Re-serving a five-minute-old price as a live one would be a lie."},{"id":"images_not_invented","claim":"Image URLs are copied verbatim from the page. Never constructed, never guessed."},{"id":"nulls_not_guesses","claim":"A field the page does not state comes back null, not inferred."},{"id":"structured_first","claim":"schema.org JSON-LD and ProductGroup data published by the merchant is read first and preferred over anything inferred from the page text."}],"health":"https://extract.tollkit.dev/health","docs":"https://extract.tollkit.dev/llms.txt","manifest":"https://extract.tollkit.dev/.well-known/x402","contact":"hello@tollkit.dev"}