# HorizonPulse URL Fetcher (Clean Text)

> HorizonPulse URL Fetcher (Clean Text) is a paid API for AI agents from horizonpulse.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-29).

Fetches a public HTTP/HTTPS URL and returns best-effort clean text or markdown, with SSRF protection and size/time limits

## Facts

- Endpoint: GET https://horizonpulse.dev/api/fetch?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/horizonpulse-url-fetcher-clean-text-d3e64f31
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mqsKgmxK_NFphJ11fQEZx

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 horizonpulse-url-fetcher-clean-text-d3e64f31
```

Example prompt: Can you fetch the contents of https://example.com/blog/ai-trends and give me the clean readable text from that page?

## When to prefer this

Use this endpoint when you need to retrieve the readable text content from a public webpage in a clean, stripped format — ideal for summarization, information extraction, or reading web pages as plain text. Prefer this over the generic HTTP proxy sibling when you specifically want clean text/markdown output rather than raw HTML, headers, or JSON. SSRF safety makes it suitable for agent pipelines where user-supplied URLs are passed directly.

## Known failure modes

- Private or localhost URLs are blocked (SSRF protection)
- Response body exceeds ~200KB cap — content may be truncated
- Request times out after ~8 seconds for slow or unresponsive URLs
- Non-public or authentication-gated URLs return empty or error
- Non-HTML content types (PDFs, binaries) may not convert cleanly to text
- URL is malformed or missing — returns validation error

## How this service works

Fetch a public http(s) URL (?url=...) and return best-effort clean text/markdown; SSRF-safe with size/time caps

## Output

Returns best-effort clean text or markdown extracted from the fetched URL, stripped of HTML boilerplate, scripts, and styling. Includes the page's readable content with size capped at ~200KB and a time cap of ~8 seconds. Private/localhost URLs are blocked for SSRF safety.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "Absolute http(s) URL to fetch (required). Private/localhost blocked; ~200KB / 8s caps."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "description": "Horizon Pulse URL fetch (clean text)"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "format": "markdown",
  "content": "# Example\n\nClean text…",
  "finalUrl": "https://example.com",
  "truncated": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/horizonpulse-url-fetcher-clean-text-d3e64f31/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from horizonpulse.dev](https://www.zero.xyz/host/horizonpulse.dev/llms.txt)
