← The evidence ledger
Evidence row 2200219
Observed , by sync.x402_bazaar/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://readfetch.com/v1/pdf
- Recorded
- Previous row
- #1261541
- Body SHA-256
- 8526777e318c2e1092e805903f7b071eecbe75033a96b8e4d133c5c6ae1b1ab5
- Leaf
- 0x5da06703cfc36baf4071f173e6ac654e4d9eb21d86521178c69c5c000e14d02b
What was observed
{
"endpoints": [
[
"x402",
"https://readfetch.com/v1/pdf"
]
],
"name": "readfetch.com",
"owner_address": "0x26c2308adc8fe5ffe6d4183588dd2dd22ed86071",
"raw": {
"accepts": [
{
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"description": "Extract text from a PDF (%PDF- magic, not Content-Type). Send exactly one of `url` (public http(s) link — egress GET, ≤ 20 MB) or `content_base64` (bytes you already have, ≤ 20 MB decoded; optional `filename` labels the upload). Returns `pages` (per-page text), one concatenated `markdown` body, `title`, and `metadata`; $0.005 per document, not per page. `max_pages` limits extraction (default 50, max 200); documents over 200 pages or above your cap return 413 and are not bille",
"extra": {
"name": "USD Coin",
"paymentFlow": "authorization",
"version": "2"
},
"maxAmountRequired": "5000",
"maxTimeoutSeconds": 60,
"mimeType": "application/json",
"network": "eip155:8453",
"payTo": "0x26C2308aDC8fe5FFE6d4183588DD2DD22ed86071",
"resource": "https://readfetch.com/v1/pdf",
"scheme": "exact"
}
],
"description": "Extract text from a PDF (%PDF- magic, not Content-Type). Send exactly one of `url` (public http(s) link — egress GET, ≤ 20 MB) or `content_base64` (bytes you already have, ≤ 20 MB decoded; optional `filename` labels the upload). Returns `pages` (per-page text), one concatenated `markdown` body, `title`, and `metadata`; $0.005 per document, not per page. `max_pages` limits extraction (default 50, max 200); documents over 200 pages or above your cap return 413 and are not bille",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"max_pages": 50,
"url": "https://example.com/paper.pdf"
},
"bodyType": "json",
"description": "Documents, not pages: page text plus one Markdown body, priced per document rather than per page.",
"method": "POST",
"type": "http"
},
"output": {
"description": "Extract text from a PDF (%PDF- magic, not Content-Type). Send exactly one of `url` (public http(s) link — egress GET, ≤ 20 MB) or `content_base64` (bytes you already have, ≤ 20 MB decoded; optional `filename` labels the upload). Returns `pages` (per-page text), one concatenated `markdown` body, `title`, and `metadata`; $0.005 per document, not per page. `max_pages` limits extraction (default 50, max 200); documents over 200 pages or above your cap return 413 and are not billed. Scanned/image-only PDFs may return empty text with `billed: false` and a `hint`. Prefer readfetch_text or readfetch_scrape for HTML articles; readfetch_fetch for raw PDF bytes without extraction; readfetch_batch for many HTML URLs, not PDFs. Read-only server-side; paid x402 like other routes.",
"example": {
"billed": true,
"content_sha256": "...",
"hint": null,
"markdown": "# Title\n\n...",
"metadata": {
"author": "...",
"created": "2026-01-04",
"producer": "..."
},
"page_count": 12,
"pages": [
{
"page": 1,
"text": "..."
}
],
"source": "https://example.com/report.pdf",
"status": "success",
"title": "Annual Report"
},
"format": "application/json",
"type": "json"
}
},
"schema": {
"$defs": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"anyOf": [
{
"required": [
"url"
]
},
{
"required": [
"content_base64"
]
}
],
"properties": {
"content_base64": {
"description": "Base64-encoded PDF bytes (≤ 20 MB). Mutually exclusive with url; pair with filename when the label matters.",
"type": "string"
},
"filename": {
"description": "Optional label when using content_base64 (default upload.pdf); ignored for url-only requests.",
"type": "string"
},
"max_pages": {
"default": 50,
"description": "Extract at most this many pages. Default 50; raise up to 200 when the document is longer. Over cap → 413, unbilled.",
"maximum": 200,
"minimum": 1,
"type": "number"
},
"url": {
"description": "Public PDF URL; fetched through egress (≤ 20 MB). Mutually exclusive with content_base64.",
"example": "https://example.com/paper.pdf",
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"bodyType": {
"const": "json"
},
"method": {
"enum": [
"POST"
]
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"body"
],
"type": "object"
},
"output": {
"properties": {
"billed": {
"type": "boolean"
},
"content_sha256": {
"type": "string"
},
"hint": {
"type": [
"string",
"null"
]
},
"markdown": {
"type": "string"
},
"metadata": {
"properties": {
"author": {
"type": "string"
},
"created": {
"type": "string"
},
"producer": {
"type": "string"
}
},
"type": "object"
},
"page_count": {
"type": "integer"
},
"pages": {
"items": {
"properties": {
"page": {
"type": "integer"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"source": {
"format": "uri",
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
}
}
}
},
"readfetch": {
"llms_txt": "https://readfetch.com/llms.txt",
"mcp": "https://readfetch.com/mcp",
"mcp_manifest": "https://readfetch.com/.well-known/mcp.json",
"openapi": "https://readfetch.com/openapi.json",
"payment_status": "live",
"probe": {
"free": true,
"method": "POST",
"note": "The only free POST — no wallet, no 402, no x402. Metadata plus optional ~400-character preview for the same URL before paying.",
"path": "/v1/probe",
"price_usd": 0
},
"related_endpoints": [
{
"path": "/v1/probe"
},
{
"path": "/v1/text"
}
],
"service_manifest": "https://readfetch.com/.well-known/service.json",
"skill": "https://readfetch.com/SKILL.md",
"support": {
"claims": {
"method": "POST",
"path": "/v1/claims",
"url": "https://readfetch.com/v1/claims",
"when": "paid delivery dispute; needs RECEIPT + EIP-191 signature"
},
"feedback": {
"body": {
"category": "integration|docs|site|other",
"message": "≤500 chars",
"request_id": "<from X-Request-Id>"
},
"free": true,
"mcp_tool": "readfetch_feedback",
"method": "POST",
"path": "/v1/feedback",
"url": "https://readfetch.com/v1/feedback"
},
"request_id_header": "X-Request-Id"
},
"x402_resources": "https://readfetch.com/.well-known/x402-resources.json"
}
},
"iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1793278990/bazaar-icons/a51ede90f06a90b8.png",
"lastUpdated": "2026-11-02T13:00:33.032Z",
"quality": {
"l30DaysTotalCalls": 3,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-11-02T13:00:32.419Z"
},
"resource": "https://readfetch.com/v1/pdf",
"serviceName": "readfetch.com",
"tags": [
"data",
"document text",
"markdown",
"metadata",
"page text"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Extract text from a PDF (%PDF- magic, not Content-Type). Send exactly one of `url` (public http(s) link — egress GET, ≤ 20 MB) or `content_base64` (bytes you already have, ≤ 20 MB decoded; optional `filename` labels the upload). Returns `pages` (per-page text), one concatenated `markdown` body, `title`, and `metadata`; $0.005 per document, not per page. `max_pages` limits extraction (default 50, max 200); documents over 200 pages or above your cap return 413 and are not bille"
}What the leaf hashes
{"body":"8526777e318c2e1092e805903f7b071eecbe75033a96b8e4d133c5c6ae1b1ab5","id":2200219,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646796782710,"prev":1261541,"subject":"x402_bazaar:https://readfetch.com/v1/pdf","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (444186 rows).
- 0x5da04df95368533ac8e89d390317bc6088bc971e05ee7e723d341aea6f50a3d2
- 0x371ea3feb5a85858b1aed482056c6728e501e793e0709c31e043970dc5d19118
- 0xded57ae2706fa19c48f906faba6d2019b269935116ab2e8a9b4835152c14b76f
- 0xc6137c9768ad1ada819eb1194c719cb99c0decae7cdbfa42c779511468c23a21
- 0x176f5c9a9a08a3241c914879d2b89ea80d62f659d3efa52e367cb900fdeb04a3
- 0x02fce4164bc07ad92964aeff700936b8503afc215868e5723126fa0634c1dd0c
- 0xbb6fc2deb5baa64ea3f8ff861571b4ac2901f8c60a08501d8fe1bbeafd8c593a
- 0x35a405f8548364d955bbed62c595c1eb0986893a8c0fbb49c17aa0132931a45a
- 0x1ffe540930f7aa460f6b57be4d9f63717fb885aca1d1d7ead87990b4d97245eb
- 0x79c21b065efa8b66e2cfd40549f7b16783ed2a2112d93b597678e291a5484433
- 0x109cc600d9e5681d81b1c806e442cb092de1539ae1d3befea2d2961d5dc7e2f6
- 0xfdde22dc0ff8090b6068b0dcf3aba740d9ea8edcee4ae8d3c3441afa11bcf422
- 0x0f0789866ea2f1bd292c9e7a2eaf20360ccfd54bcd03afc0a8ce21b6555e86f5
- 0x463370b8390b2f93f44023fe6ce3fd4ebff0a7fecb7894dd4f82f8253ec8661f
- 0x52242d46cadab5f421a6f86c1edc6379b085ae98482fa80904e4a3028c1849a3
- 0x1068659ec8f2bcf26e4ad39786557a8c45d60e5ebba4fce2fb9962b2c9c59920
- 0xf9973981f80219d4f00fa9186b40a8144accc0c9875572fb79eaea312a21a187
- 0x4d205063c881c48edbbb37762a8d3bbb7444d4c42daa882f663a231893d25c35
- 0x365b161a4b68d750dcc4b3ecce1154a2163c87b08762079428e68f0ebb6a754e
- Day root
- 0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
- Chained
- 0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
- Published
- On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af