# HubVibe Page Extractor

> HubVibe Page Extractor is a paid API for AI agents from hubvibe-io.com, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-18).

Fetches any web page using a real browser renderer and returns its readable text, title, meta description, and links — handling JavaScript-rendered pages correctly.

## Facts

- Endpoint: POST https://hubvibe-io.com/work/extract/page?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hubvibe-page-extractor-8d852e99
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NlL9zanxHqmRsvb7R9F7l

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 hubvibe-page-extractor-8d852e99 -d '<json body>'
```

Example prompt: Can you fetch the page at https://techcrunch.com/2024/01/15/openai-funding and give me its title, description, and the full readable text?

## When to prefer this

Choose this endpoint when you need to extract human-readable content from a web page, especially one built with JavaScript frameworks (React, Vue, Angular) where a plain HTTP fetch would return an empty shell. Prefer this over raw HTML fetchers when you want clean text and metadata already extracted rather than raw markup.

## Known failure modes

- URL is unreachable or returns a non-200 status — extraction fails with an error
- JavaScript-heavy page takes too long to render — may fall back to direct fetch, missing dynamic content
- Paywalled or login-gated pages return only the gate content, not the full article
- Anti-bot protections (Cloudflare, CAPTCHAs) block the fetch entirely
- Malformed or non-HTTP URL causes a validation error

## How this service works

Web scraping / web page to clean text: any URL rendered in a real browser (JavaScript pages included) and returned as readable text with title, description and links. Use it to read an article, docs page or product page before summarising or extracting. Input: url. Raw status, headers and body: fetch.raw. A question answered from the page: research.brief.

## Output

Returns the page's title, meta description, clean readable text content extracted from the rendered DOM, and a list of links found on the page. When browser rendering is unavailable, falls back to a direct HTTP fetch of the raw HTML.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string"
  },
  "language": {
   "type": "string",
   "pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
   "maxLength": 35
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "result": {
   "url": "https://example.com",
   "text": "Example Domain. This domain is for use in illustrative examples...",
   "links": [
    {
     "href": "https://www.iana.org/domains/example",
     "text": "More information..."
    }
   ],
   "title": "Example Domain",
   "final_url": "https://example.com/",
   "truncated": false,
   "text_chars": 172,
   "description": "Example Domain for documentation.",
   "javascript_rendered": true
  },
  "status": "ok",
  "worker": "extract.page",
  "price_usd": 0.1,
  "provenance": {
   "steps": [
    {
     "ms": 640,
     "ok": true,
     "step": "page",
     "provider": "web"
    }
   ],
   "attempts": 1,
   "elapsed_ms": 660,
   "providers_used": [
    "web"
   ]
  },
  "receipt_id": "rcpt_9f1c2b3a4d5e6f70",
  "receipt_url": "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hubvibe-page-extractor-8d852e99/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hubvibe-io.com](https://www.zero.xyz/host/hubvibe-io.com/llms.txt)
