# NetIntel Web Extractor

> NetIntel Web Extractor is a paid API for AI agents from netintel-production-440c.up.railway.app, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-15).

Fetches a public HTML page or PDF URL and returns its content as clean Markdown with metadata like title, word count, and content quality score

## Facts

- Endpoint: GET https://netintel-production-440c.up.railway.app/web/extract
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-web-extractor-cbbd3b92
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M5gOm77PNIX1xYYoLm5ZW

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 netintel-web-extractor-cbbd3b92
```

Example prompt: Can you fetch the article at https://techcrunch.com/2024/01/15/openai-funding and give me the full text as markdown along with the title and word count?

## When to prefer this

Use this endpoint when you need to retrieve and read the textual content of a public webpage or PDF as clean Markdown, especially when you also want quality metadata (grade, score, word count). Prefer it over generic HTTP fetch tools when you need structured extraction with readability scoring rather than raw HTML.

## Known failure modes

- URL is unreachable or returns non-200 status — status_code reflects the HTTP error
- Page is JavaScript-heavy SPA with no static HTML content — markdown may be empty or minimal
- PDF parsing fails for encrypted or malformed PDFs — may return error or empty content
- Content is too large and gets truncated — truncated flag set to true
- Invalid or missing url query parameter — request rejected with validation error
- Payment failure via x402 micropayment — 402 response before content is returned

## How this service works

Extract article / main content from any URL or PDF to clean, LLM-ready Markdown (web scraper / reader / html-to-markdown) — strips scripts, nav, ads, and boilerplate while preserving headings, links, lists, tables, code blocks, and blockquotes; extracts the text layer from PDFs. Returns Markdown body, title, word count, and a quality grade so agents can read articles and documents without a browser or paid scraping service.

## Output

Returns a JSON object containing the page's Markdown-rendered content, title, final resolved URL, HTTP status code, content type, character and word counts, output byte size, a quality grade (letter, e.g. 'A') and numeric score (0-100), a findings array, and a boolean indicating whether the content was truncated.

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "Public URL of an HTML page or PDF to extract (e.g. https://www.sitemaps.org/protocol.html)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string"
      },
      "grade": {
       "type": "string"
      },
      "score": {
       "type": "number"
      },
      "title": {
       "type": "string"
      },
      "findings": {
       "type": "array"
      },
      "markdown": {
       "type": "string"
      },
      "final_url": {
       "type": "string"
      },
      "truncated": {
       "type": "boolean"
      },
      "char_count": {
       "type": "number"
      },
      "word_count": {
       "type": "number"
      },
      "status_code": {
       "type": "number"
      },
      "content_type": {
       "type": "string",
       "description": "article | pdf | other (non-HTML/PDF falls back to best-effort plain text)"
      },
      "output_bytes": {
       "type": "number"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://www.sitemaps.org/protocol.html",
  "grade": "A",
  "score": 100,
  "title": "sitemaps.org - Protocol",
  "findings": [],
  "markdown": "## Sitemaps XML format\n\nThis document describes the XML schema for the Sitemap protocol...",
  "final_url": "https://www.sitemaps.org/protocol.html",
  "truncated": false,
  "char_count": 21619,
  "word_count": 2707,
  "status_code": 200,
  "content_type": "article",
  "output_bytes": 21619
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netintel-web-extractor-cbbd3b92/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netintel-production-440c.up.railway.app](https://www.zero.xyz/host/netintel-production-440c.up.railway.app/llms.txt)
