# ReadFetch Section Extractor

> ReadFetch Section Extractor is a paid API for AI agents from readfetch.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-31).

Extracts a specific heading section or CSS-selected element from a webpage, returning only the targeted content as Markdown or plain text instead of the full page.

## Facts

- Endpoint: POST https://readfetch.com/v1/section?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/readfetch-section-extractor-3e6de501
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tEEKeiH7egJBYyhqkRdVp

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability readfetch-section-extractor-3e6de501 -d '<json body>'
```

Example prompt: Grab just the 'Pricing' section from https://example.com/product using render mode so JavaScript loads, and return it as markdown — cap it at 5000 characters.

## When to prefer this

Choose this endpoint when you only need a specific section or element from a page rather than the full content — it's more token-efficient and cheaper than fetching the whole page. Ideal when the target content is organized under a known heading or identifiable CSS class. Prefer the full-page scrape endpoints when the structure is unknown or you need the complete document. Use residential egress mode when the target site blocks datacenter IPs.

## Known failure modes

- Heading not found: 200 response with empty body and list of available headings
- URL unreachable or returns non-200: error response indicating fetch failure
- JavaScript-heavy page content missing when using 'fast' mode instead of 'render'
- CSS selector matches no elements: empty result returned
- Datacenter IP blocked by target site when not using residential egress
- Content exceeds max_chars and is truncated at the limit
- Invalid CSS selector syntax causing a parse error

## How this service works

One heading or one selector instead of the whole page. A heading that is not found returns 200, an empty body and the list of headings that do exist.

## Output

Returns the content of the specified heading section or CSS-selected elements as Markdown or plain text, up to the configured character limit. If the heading is not found, returns HTTP 200 with an empty body plus a list of all headings that exist on the page. If a CSS selector is used, returns up to 20 matched elements concatenated.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "Public page URL to extract from."
  },
  "mode": {
   "enum": [
    "fast",
    "render"
   ],
   "type": "string",
   "default": "render",
   "description": "fast = HTTP-first; render = one browser pass when plain HTTP fails (default)."
  },
  "format": {
   "enum": [
    "markdown",
    "text"
   ],
   "type": "string",
   "default": "markdown",
   "description": "Output flavour for the matched section (markdown default)."
  },
  "heading": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "example": "Introduction",
   "description": "Heading text to match (case-insensitive, whitespace-normalised). Required unless `selector` is set — send exactly one of `heading` or `selector`, not both."
  },
  "selector": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "description": "CSS selector; up to 20 matches concatenated. Required unless `heading` is set — use selector when the section has no stable heading text."
  },
  "max_chars": {
   "type": "number",
   "default": 8000,
   "maximum": 20000,
   "minimum": 100,
   "description": "Truncate matched text after this many characters."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/readfetch-section-extractor-3e6de501/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from readfetch.com](https://www.zero.xyz/host/readfetch.com/llms.txt)
