# FetchHarbor URL Scraper

> FetchHarbor URL Scraper is a paid API for AI agents from fetchharbor.benlab.download, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Fetches the content of a single public HTTP(S) URL and returns the final URL, HTTP status, content type, and decoded body text.

## Facts

- Endpoint: GET https://fetchharbor.benlab.download/scrape
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fetchharbor-url-scraper-51b6cf35
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_EAPrfAnUnP2-MbC2Dhirb

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 fetchharbor-url-scraper-51b6cf35
```

Example prompt: Can you fetch the contents of https://en.wikipedia.org/wiki/Large_language_model and give me the raw page text?

## When to prefer this

Use this endpoint when an agent needs to retrieve the raw content of a single known public URL — for example, reading a live webpage, fetching an article, or accessing a remote resource as part of a research or extraction pipeline. It is a good fit when privacy-safe, sandboxed web access is needed with bounded response size and redirect revalidation built in. Prefer it over general HTTP clients when you want server-side blocking of private/reserved IP ranges for safety. Not suited for crawling entire sites, authenticated pages, or non-HTTP resources.

## Known failure modes

- Private, localhost, link-local, or reserved IP destinations are blocked and return an error
- Redirect chains that resolve to blocked destinations are rejected after revalidation
- Response body exceeds size limit — truncated or rejected
- Upstream server timeout — duration bound exceeded
- Invalid or malformed URL returns a validation error
- Non-public schemes (e.g. ftp://, file://) are not supported
- Upstream server returns 4xx/5xx which is forwarded in the status_code field

## How this service works

Fetch one public HTTP(S) URL for research, extraction, or agent workflows. Returns the final URL, upstream status, content type, and decoded content. Private, local, metadata, and reserved destinations are blocked; redirects are revalidated and response size and duration are bounded.

## Output

Returns a JSON object containing: the final resolved URL (after any redirects), a success/failure status string, the upstream HTTP status code (100–599), the content-type header value (or null), and the fully decoded body content as a string. Response size and duration are bounded server-side.

## 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",
       "format": "uri"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "status",
      "url",
      "status_code",
      "content_type",
      "content"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri"
      },
      "status": {
       "type": "string",
       "const": "success"
      },
      "content": {
       "type": "string"
      },
      "status_code": {
       "type": "integer",
       "maximum": 599,
       "minimum": 100
      },
      "content_type": {
       "type": [
        "string",
        "null"
       ]
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fetchharbor-url-scraper-51b6cf35/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fetchharbor.benlab.download](https://www.zero.xyz/host/fetchharbor.benlab.download/llms.txt)
