← The evidence ledger
Evidence row 2200220
Observed , by sync.x402_bazaar/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://readfetch.com/v1/scrape
- Recorded
- Previous row
- #1261563
- Body SHA-256
- 7d98c265ed4177503194f37822041538ad46c5e31044191f462021ad6778fb67
- Leaf
- 0x47d0b3dd86fea3ab88cdb06692231aa23e512996e2312180cc9cbcb14d13df71
What was observed
{
"endpoints": [
[
"x402",
"https://readfetch.com/v1/scrape"
]
],
"name": "readfetch.com",
"owner_address": "0x26c2308adc8fe5ffe6d4183588dd2dd22ed86071",
"raw": {
"accepts": [
{
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"description": "Load a public URL in headless Chromium and return Markdown, plain text, or HTML (`format`, plus status_code, title, cache_status, billed; optional links via `advanced.include_links`). `mode` sets latency and depth: fast (15 s, minimal render), render (30 s, default, full JS), full (60 s, scroll the page). `fresh: true` bypasses cache. Put scroll, wait_for, js_code, headers, cookies, and auth in `advanced` (`options` is deprecated, same shape). Prefer readfetch_text when JavaS",
"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/scrape",
"scheme": "exact"
}
],
"description": "Load a public URL in headless Chromium and return Markdown, plain text, or HTML (`format`, plus status_code, title, cache_status, billed; optional links via `advanced.include_links`). `mode` sets latency and depth: fast (15 s, minimal render), render (30 s, default, full JS), full (60 s, scroll the page). `fresh: true` bypasses cache. Put scroll, wait_for, js_code, headers, cookies, and auth in `advanced` (`options` is deprecated, same shape). Prefer readfetch_text when JavaS",
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"format": "markdown",
"fresh": false,
"mode": "render",
"url": "https://example.com"
},
"bodyType": "json",
"description": "Chromium renders the page, runs interactions, and returns Markdown, text or HTML with its links.",
"method": "POST",
"type": "http"
},
"output": {
"description": "Load a public URL in headless Chromium and return Markdown, plain text, or HTML (`format`, plus status_code, title, cache_status, billed; optional links via `advanced.include_links`). `mode` sets latency and depth: fast (15 s, minimal render), render (30 s, default, full JS), full (60 s, scroll the page). `fresh: true` bypasses cache. Put scroll, wait_for, js_code, headers, cookies, and auth in `advanced` (`options` is deprecated, same shape). Prefer readfetch_text when JavaScript is not required; readfetch_fetch for raw HTTP/API bytes; readfetch_residential when the site blocks datacentre IPs; readfetch_screenshot for a PNG/JPEG. Bot-check or empty extractions may return `billed: false` with a hint.",
"example": {
"billed": true,
"cache_status": "miss",
"markdown": "# Pricing\n\n...",
"status": "success",
"status_code": 200,
"title": "Pricing",
"url": "https://example.com/pricing"
},
"format": "application/json",
"type": "json"
}
},
"schema": {
"$defs": {
"Auth": {
"description": "Agent-friendly authentication: cookie, bearer token, or basic auth.",
"properties": {
"cookies": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Cookie"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Cookie jar when `type` is cookie; ignored for bearer/basic.",
"title": "Cookies"
},
"password": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Basic-auth password when `type` is basic.",
"title": "Password"
},
"token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bearer token when `type` is bearer (Authorization: Bearer …).",
"title": "Token"
},
"type": {
"description": "Authentication mode: `cookie` (set `cookies`), `bearer` (set `token`), or `basic` (set `username` and `password`).",
"enum": [
"cookie",
"bearer",
"basic"
],
"title": "Type",
"type": "string"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Basic-auth username when `type` is basic.",
"title": "Username"
}
},
"required": [
"type"
],
"title": "Auth",
"type": "object"
},
"Cookie": {
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional domain scope, e.g. `.example.com`.",
"title": "Domain"
},
"name": {
"description": "Cookie name.",
"title": "Name",
"type": "string"
},
"path": {
"default": "/",
"description": "Path scope within the domain (default `/`).",
"title": "Path",
"type": "string"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional full URL scope for the cookie; alternative to `domain`/`path`.",
"title": "Url"
},
"value": {
"description": "Cookie value.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "Cookie",
"type": "object"
},
"ScrapeOptions": {
"description": "Advanced browser/interaction controls (the `advanced` object).",
"properties": {
"cookies": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Cookie"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Inject cookies without `auth`; same shape as auth cookies.",
"title": "Cookies"
},
"delay_before_return_ms": {
"default": 0,
"description": "Pause after navigation before snapshot (0–60000, default 0); use for short post-load animations.",
"maximum": 60000,
"minimum": 0,
"title": "Delay Before Return Ms",
"type": "integer"
},
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Extra HTTP request headers for the navigation (merged with defaults).",
"title": "Headers"
},
"include_html": {
"default": false,
"description": "When true, include raw HTML in the response in addition to the primary `format` field.",
"title": "Include Html",
"type": "boolean"
},
"include_links": {
"default": false,
"description": "When true, add a `links` array (href/text) alongside the main body.",
"title": "Include Links",
"type": "boolean"
},
"js_code": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "JavaScript executed in the page before extraction; one string or an array run in order. Disables shared-browser cache for this call.",
"title": "Js Code"
},
"locale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Browser locale, e.g. 'en-US'. Sets Accept-Language inside the render.",
"title": "Locale"
},
"max_scroll_steps": {
"anyOf": [
{
"maximum": 200,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Cap scroll iterations when `scan_full_page` is true (1–200); omit for engine default.",
"title": "Max Scroll Steps"
},
"scan_full_page": {
"default": false,
"description": "Scroll the page to trigger lazy-loaded content; combine with `mode=full` or `max_scroll_steps`.",
"title": "Scan Full Page",
"type": "boolean"
},
"sticky_session": {
"default": false,
"description": "Pin one outbound address for the whole call instead of one per connection. A render already runs under one egress session, so the page load never spreads across exits; accepted for compatibility with callers that set it.",
"title": "Sticky Session",
"type": "boolean"
},
"timezone_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Browser timezone, e.g. 'America/New_York'.",
"title": "Timezone Id"
},
"user_agent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Override the default browser User-Agent for this render only.",
"title": "User Agent"
},
"wait_for": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "CSS selector that must appear before capture; pairs with `wait_for_timeout_ms`.",
"title": "Wait For"
},
"wait_for_timeout_ms": {
"default": 10000,
"description": "Max milliseconds to wait for `wait_for` (0–120000, default 10000).",
"maximum": 120000,
"minimum": 0,
"title": "Wait For Timeout Ms",
"type": "integer"
}
},
"title": "ScrapeOptions",
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"$defs": {
"Auth": {
"description": "Agent-friendly authentication: cookie, bearer token, or basic auth.",
"properties": {
"cookies": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Cookie"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Cookie jar when `type` is cookie; ignored for bearer/basic.",
"title": "Cookies"
},
"password": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Basic-auth password when `type` is basic.",
"title": "Password"
},
"token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bearer token when `type` is bearer (Authorization: Bearer …).",
"title": "Token"
},
"type": {
"description": "Authentication mode: `cookie` (set `cookies`), `bearer` (set `token`), or `basic` (set `username` and `password`).",
"enum": [
"cookie",
"bearer",
"basic"
],
"title": "Type",
"type": "string"
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Basic-auth username when `type` is basic.",
"title": "Username"
}
},
"required": [
"type"
],
"title": "Auth",
"type": "object"
},
"Cookie": {
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional domain scope, e.g. `.example.com`.",
"title": "Domain"
},
"name": {
"description": "Cookie name.",
"title": "Name",
"type": "string"
},
"path": {
"default": "/",
"description": "Path scope within the domain (default `/`).",
"title": "Path",
"type": "string"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional full URL scope for the cookie; alternative to `domain`/`path`.",
"title": "Url"
},
"value": {
"description": "Cookie value.",
"title": "Value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "Cookie",
"type": "object"
},
"ScrapeOptions": {
"description": "Advanced browser/interaction controls (the `advanced` object).",
"properties": {
"cookies": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Cookie"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Inject cookies without `auth`; same shape as auth cookies.",
"title": "Cookies"
},
"delay_before_return_ms": {
"default": 0,
"description": "Pause after navigation before snapshot (0–60000, default 0); use for short post-load animations.",
"maximum": 60000,
"minimum": 0,
"title": "Delay Before Return Ms",
"type": "integer"
},
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Extra HTTP request headers for the navigation (merged with defaults).",
"title": "Headers"
},
"include_html": {
"default": false,
"description": "When true, include raw HTML in the response in addition to the primary `format` field.",
"title": "Include Html",
"type": "boolean"
},
"include_links": {
"default": false,
"description": "When true, add a `links` array (href/text) alongside the main body.",
"title": "Include Links",
"type": "boolean"
},
"js_code": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "JavaScript executed in the page before extraction; one string or an array run in order. Disables shared-browser cache for this call.",
"title": "Js Code"
},
"locale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Browser locale, e.g. 'en-US'. Sets Accept-Language inside the render.",
"title": "Locale"
},
"max_scroll_steps": {
"anyOf": [
{
"maximum": 200,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Cap scroll iterations when `scan_full_page` is true (1–200); omit for engine default.",
"title": "Max Scroll Steps"
},
"scan_full_page": {
"default": false,
"description": "Scroll the page to trigger lazy-loaded content; combine with `mode=full` or `max_scroll_steps`.",
"title": "Scan Full Page",
"type": "boolean"
},
"sticky_session": {
"default": false,
"description": "Pin one outbound address for the whole call instead of one per connection. A render already runs under one egress session, so the page load never spreads across exits; accepted for compatibility with callers that set it.",
"title": "Sticky Session",
"type": "boolean"
},
"timezone_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Browser timezone, e.g. 'America/New_York'.",
"title": "Timezone Id"
},
"user_agent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Override the default browser User-Agent for this render only.",
"title": "User Agent"
},
"wait_for": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "CSS selector that must appear before capture; pairs with `wait_for_timeout_ms`.",
"title": "Wait For"
},
"wait_for_timeout_ms": {
"default": 10000,
"description": "Max milliseconds to wait for `wait_for` (0–120000, default 10000).",
"maximum": 120000,
"minimum": 0,
"title": "Wait For Timeout Ms",
"type": "integer"
}
},
"title": "ScrapeOptions",
"type": "object"
}
},
"properties": {
"advanced": {
"anyOf": [
{
"$ref": "#/$defs/ScrapeOptions"
},
{
"type": "null"
}
],
"default": null,
"description": "Browser interactions: scroll, wait_for selector, js_code, headers, cookies, locale, include_links, etc."
},
"auth": {
"anyOf": [
{
"$ref": "#/$defs/Auth"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional cookie, bearer, or basic auth for the page load."
},
"format": {
"default": "markdown",
"description": "Primary body field returned: markdown (default), plain text, or raw HTML.",
"enum": [
"markdown",
"text",
"html"
],
"title": "Format",
"type": "string"
},
"fresh": {
"default": false,
"description": "When true, bypass cached scrape results (default false).",
"title": "Fresh",
"type": "boolean"
},
"mode": {
"default": "render",
"description": "Whole-call budget and render depth: fast (15 s), render (30 s, default), or full (60 s with page scroll).",
"enum": [
"fast",
"render",
"full"
],
"title": "Mode",
"type": "string"
},
"options": {
"anyOf": [
{
"$ref": "#/$defs/ScrapeOptions"
},
{
"type": "null"
}
],
"default": null,
"deprecated": true,
"description": "Deprecated — use `advanced` instead (same ScrapeOptions shape). Scheduled for removal in a future API semver bump."
},
"url": {
"description": "Public http(s) URL to load in Chromium.",
"format": "uri",
"maxLength": 2083,
"minLength": 1,
"title": "Url",
"type": "string"
}
},
"required": [
"url"
],
"title": "ScrapeRequest",
"type": "object"
},
"bodyType": {
"const": "json"
},
"method": {
"enum": [
"POST"
]
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"body"
],
"type": "object"
},
"output": {
"properties": {
"billed": {
"type": "boolean"
},
"cache_status": {
"type": "string"
},
"markdown": {
"type": "string"
},
"status": {
"type": "string"
},
"status_code": {
"type": "integer"
},
"title": {
"type": "string"
},
"url": {
"format": "uri",
"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:09.457Z",
"quality": {
"l30DaysTotalCalls": 5,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-11-02T13:00:08.806Z"
},
"resource": "https://readfetch.com/v1/scrape",
"serviceName": "readfetch.com",
"tags": [
"ai agents",
"browser rendering",
"data",
"html",
"javascript rendering"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Load a public URL in headless Chromium and return Markdown, plain text, or HTML (`format`, plus status_code, title, cache_status, billed; optional links via `advanced.include_links`). `mode` sets latency and depth: fast (15 s, minimal render), render (30 s, default, full JS), full (60 s, scroll the page). `fresh: true` bypasses cache. Put scroll, wait_for, js_code, headers, cookies, and auth in `advanced` (`options` is deprecated, same shape). Prefer readfetch_text when JavaS"
}What the leaf hashes
{"body":"7d98c265ed4177503194f37822041538ad46c5e31044191f462021ad6778fb67","id":2200220,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793646796788779,"prev":1261563,"subject":"x402_bazaar:https://readfetch.com/v1/scrape","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).
- 0x47d0b4a6f12729950fc9f263738164ec6500b7dabcb96b2221af3b7a54290232
- 0xd2bf53c87668dbe560c8243469d838e1ec52515d7dd4d37eeb5bd2f4461605f9
- 0xd305b3f8549e6d5c0ebb9df9f36c1bda3743a4b9416e2fbe90a5a62349c18f42
- 0x425e7d78ddb790ee315d57f52fd6c109cb93cc2a77ae96caf1e43fa13705f50b
- 0x4fec7884b362cc86e6a760ab8da0ad869dd7bd6988de2b9ea22a3dd5edbffd8b
- 0x0e823c7b6bfe870939ecd2da0df204537844d1dcf4166b93ff4a198dce3d65b0
- 0x391df3ce446eca9a38e294e694378fb037d78d7660c7c688f347fd31143ba438
- 0x4bfcb79a6945f2dcfbf032dc87dd72ad1f36ec081d4b07e7ad9eb4902d60b323
- 0x9242b166bb4a1402732dac297cd20375acd3d3122f4fbe7a41a6b2b82869e2ce
- 0xf5f11c0fdd4cc527fc3dbca24a3a054d7be30119f6e4ef375d7797637950dcbd
- 0x63566cd121d90542180cf1c7283cb6722a9f6a094b6764309524ebcaa5df7233
- 0xcb35c8e9efae833d2a997b356d4d3b000b0f5841c3b9202c985c07819fe5c916
- 0xa3336de478ff1096fe3a4c0522656d3a2923e8e721fe01f8fd137ddc7734c22e
- 0xdc58bc56b35577036d6185abcf0d4c91a45df10bd65f767505c1d43fcecde566
- 0x3217f821997a6d778dcf0814a25b1296c55ab77710c675e7b15695d25a6ce67d
- 0x8760c227928c5295506cd8606e763f86cf8cd2a549820fab4dc86d29ca0d816d
- 0xa20b9be86af7d690e040c9060a373b2fc5498edf3432f43c26f74fa2febc1e9a
- 0x050f2978b537f7afb21ee1551577cdf146d1c56f4df12d24315ae5e69366b0a4
- 0x365b161a4b68d750dcc4b3ecce1154a2163c87b08762079428e68f0ebb6a754e
- Day root
- 0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
- Chained
- 0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
- Published
- On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af