Fetch a public web page and return clean Markdown with stable citation anchors,
Fetch a public web page and return clean Markdown with stable citation anchors, a content hash, and a retrieval timestamp — plus evidence of hidden text, invisible Unicode, and prompt-injection attempts found in the page. Strict SSRF protection on every redirect hop. Returns a per-span verdict with the decoded payload, not a confidence score. Zero retention.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
703 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://safefetch.schemasure.com/v1/fetch
| Category | Search and research |
|---|---|
| Provider host | safefetch.schemasure.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 34 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.01 | 703 ms |
Example input (from the provider)
{
"body": {
"output": "markdown",
"policy": {
"allow_redirects": 3,
"flag_prompt_injection": true,
"max_bytes": 2000000,
"respect_robots": true,
"user_initiated": false
},
"url": "https://example.com/article"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"output": {
"default": "markdown",
"description": "Which rendering to include in the result. Defaults to markdown.",
"enum": [
"markdown",
"text",
"both"
],
"type": "string"
},
"policy": {
"additionalProperties": false,
"properties": {
"allow_redirects": {
"description": "Redirect hops permitted. Every hop is revalidated against the SSRF policy.",
"maximum": 3,
"minimum": 0,
"type": "integer"
},
"flag_prompt_injection": {
"default": true,
"description": "Run injection detection. Setting this false makes the verdict unknown rather than allow: `allow` means no signal was found, and with detection off nothing looked.",
"type": "boolean"
},
"max_bytes": {
"description": "Analysis cap. A document larger than this is truncated before parsing and the verdict becomes unknown, because an unanalysed remainder exists.",
"maximum": 20971520,
"minimum": 1024,
"type": "integer"
},
"respect_robots": {
"default": true,
"description": "Honour robots.txt. A disallow returns 403 POLICY_BLOCKED with the matched rule and is not charged. Setting this false requires user_initiated:true.",
"type": "boolean"
},
"user_initiated": {
"default": false,
"description": "Attestation that a person explicitly asked for this specific page. Required to set respect_robots:false. Logged.",
"type": "boolean"
}
},
"type": "object"
},
"url": {
"description": "An http or https URL naming a hostname. Ports other than 80 and 443, credentials in the URL, and literal IP addresses are rejected.",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"confidence": {
"type": "number"
},
"data_versions": {
"type": "object"
},
"evidence": {
"description": "Per-span findings, each with a code, severity, and any decoded hidden payload.",
"items": {
"type": "object"
},
"type": "array"
},
"ok": {
"type": "boolean"
},
"policy_version": {
"type": "string"
},
"request_hash": {
"type": "string"
},
"result": {
"properties": {
"anchors": {
"description": "W3C Web Annotation selectors plus a Text Fragment deep link per span.",
"items": {
"type": "object"
},
"type": "array"
},
"content_sha256": {
"type": "string"
},
"final_url": {
"type": "string"
},
"hops": {
"items": {
"type": "object"
},
"type": "array"
},
"markdown": {
"type": "string"
},
"retrieved_at": {
"format": "date-time",
"type": "string"
},
"robots": {
"type": "object"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
},
"word_count": {
"type": "integer"
}
},
"type": "object"
},
"risk_codes": {
"items": {
"type": "string"
},
"type": "array"
},
"verdict": {
"enum": [
"allow",
"warn",
"block",
"unknown"
],
"type": "string"
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"verdict",
"evidence",
"result",
"request_hash"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"