# AgentUtility Scrape Website

> AgentUtility Scrape Website is a paid API for AI agents from x402.agentutility.ai, paid per call via x402, $0.04/call, status unknown (last checked 2026-09-15).

Scrapes a single webpage and extracts title, description, canonical URL, OpenGraph/Twitter metadata, headings, body content, and outbound links using Cheerio (no headless browser)

## Facts

- Endpoint: POST https://x402.agentutility.ai/scrape-website
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentutility-scrape-website-498fbfd7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gRY2slaMJSQMrdlaElva_

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 agentutility-scrape-website-498fbfd7 -d '<json body>'
```

Example prompt: Can you scrape https://example.com/blog/post-1 and give me the page title, meta description, OpenGraph tags, and all the outbound links — return the body content as clean markdown?

## When to prefer this

Choose this endpoint when you need fast, cheap webpage scraping for static pages or server-side-rendered sites and you want structured metadata (title, OG tags, headings, links) alongside body content in multiple formats. It is significantly faster and cheaper than headless browser alternatives. Avoid it for JavaScript-heavy SPAs that require browser execution — use a screenshot or browser-rendering service instead.

## Known failure modes

- URL is unreachable or returns non-200 status — endpoint returns an error with HTTP status
- Page is a JavaScript-heavy SPA that requires a real browser — content may be empty or incomplete since Cheerio does not execute JS
- Invalid or malformed URL input — returns validation error
- Rate limit or network timeout on the target server — returns timeout error
- Paywalled or bot-blocked pages — may return partial or no content

## How this service works

Scrapes any webpage and pulls title, description, canonical URL, OpenGraph + Twitter card metadata, headings, and outbound links from a single URL. Server-side rendering; body content rendered as text, raw HTML, or clean markdown, with optional link extraction. Cheerio-based with no headless browser, so it is fast and cheap, ideal for static pages and SSR sites. For JS-heavy SPAs that need a real browser, see website-screenshot. Use it as a web scraping API or webpage metadata extractor.

## Output

Returns structured data including page title, meta description, canonical URL, OpenGraph and Twitter card metadata fields, H1-H6 headings, body content in text/HTML/or markdown format, and an array of outbound links found on the page.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "Public URL to fetch and parse. Must include scheme (http/https). Follows redirects."
      },
      "format": {
       "enum": [
        "text",
        "html",
        "markdown"
       ],
       "type": "string",
       "description": "Body output format. 'text' (default, plain text), 'html' (raw HTML body), or 'markdown' (clean markdown — best for LLM ingestion)."
      },
      "user_agent": {
       "type": "string",
       "description": "Custom User-Agent header. Defaults to a modern desktop Chrome UA."
      },
      "include_links": {
       "type": "boolean",
       "description": "If true, also returns an array of all <a href> links found on the page. Default false."
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "h1": {
       "type": "string"
      },
      "og": {
       "type": "object",
       "properties": {}
      },
      "url": {
       "type": "string"
      },
      "lang": {
       "type": "string"
      },
      "text": {
       "type": "string"
      },
      "title": {
       "type": "string"
      },
      "format": {
       "type": "string"
      },
      "twitter": {
       "type": "object",
       "properties": {}
      },
      "canonical": {
       "type": "null"
      },
      "final_url": {
       "type": "string"
      },
      "body_chars": {
       "type": "integer"
      },
      "description": {
       "type": "string"
      },
      "status_code": {
       "type": "integer"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "h1": "Example Domain",
  "og": {},
  "url": "https://example.com",
  "lang": "en",
  "text": "Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\nLearn more",
  "title": "Example Domain",
  "format": "text",
  "twitter": {},
  "canonical": null,
  "final_url": "https://example.com/",
  "body_chars": 128,
  "description": "",
  "status_code": 200
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentutility-scrape-website-498fbfd7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.agentutility.ai](https://www.zero.xyz/host/x402.agentutility.ai/llms.txt)
