SafeFetch

Retrieve a hostile web page safely: clean Markdown, citation anchors, and decoded evidence of what the page was trying to say to your agent.

SafeFetch retrieves one public page through a three-layer SSRF guard that revalidates every redirect hop, extracts the article as Markdown or text, and returns the full redirect chain, a sha256 of the exact bytes retrieved, a retrieval timestamp, and W3C Web Annotation citation anchors (TextQuoteSelector plus TextPositionSelector) with a Text Fragment deep link for each passage. It then reports what the page was doing to whatever reads it: CSS-hidden and HTML-hidden text, invisible Unicode channels decoded rather than counted, encoded blobs, and instruction-like phrasing, each as an evidence entry carrying the decoded payload, the technique, and a span. robots.txt is fetched through the same guard and honoured by default; a disallow is a free refusal. Detection is deterministic and can be evaded by a technique not in the rule set, so `allow` means no signal was found and never that the page is safe. Nothing is retained.

Endpoints

RouteWhat it doesPrice
POST /v1/fetchFetch one public page as Markdown with citation anchors, a content hash, and decoded evidence of hidden or injected instructions$0.01

Call it

Send the request unpaid to see the live quote. You get HTTP 402 and a PAYMENT-REQUIRED header.

curl -i -sS -X POST https://safefetch.schemasure.com/v1/fetch \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com/article","output":"markdown","policy":{"max_bytes":2000000,"allow_redirects":3,"flag_prompt_injection":true,"respect_robots":true,"user_initiated":false}}'

Payment

Honest uncertainty

Every response carries a verdict. When this service cannot determine an answer it returns unknown with evidence explaining why. It never reports an undetermined result as a clean one.

For agents