# Vextorium Web-to-Markdown Converter

> Vextorium Web-to-Markdown Converter is a paid API for AI agents from api.vextorium.com, paid per call via x402, $0.0045/call, status unknown (last checked 2026-10-11).

Fetches any public web page or PDF by URL and returns its main content as clean, LLM-ready markdown with metadata (title, description, author, date, language, canonical URL), stripping boilerplate like menus and cookie banners.

## Facts

- Endpoint: POST https://api.vextorium.com/v1/web-to-markdown?utm_source=zero.xyz
- Price: $0.0045/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vextorium-web-to-markdown-converter-fe810087
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vSC1RORDcj19_f8dAxhnK

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 vextorium-web-to-markdown-converter-fe810087 -d '<json body>'
```

Example prompt: Can you fetch the page at https://docs.x402.org/introduction and give me its main content as clean markdown — keep it under 10000 characters and include the list of links found on the page?

## When to prefer this

Choose this endpoint when you need to give an LLM the content of a specific public URL — a docs page, article, or PDF — as clean, structured markdown without writing your own scraper. It is purpose-built for agentic workflows where boilerplate removal, metadata extraction, and LLM-readiness matter. Prefer it over generic HTTP fetch tools when you want headings, lists, links, tables, and code blocks preserved, and noise like cookie banners removed automatically. SSRF-safe fetching makes it suitable for untrusted or user-supplied URLs.

## Known failure modes

- URL is unreachable or returns non-200 status — endpoint returns an error with the HTTP status from the origin
- URL points to a private/intranet address — blocked by SSRF-safe fetching policy
- Page requires JavaScript rendering — static fetcher may return empty or incomplete content
- PDF is scanned image-only — markdown output may be empty or minimal
- max_characters set below 500 or above 100000 — validation error returned
- URL is malformed or missing scheme — schema validation error on the url field

## How this service works

Read any public web page or PDF and get its main content as clean, LLM-ready markdown (headings, lists, links, tables, code) plus metadata: title, description, author, date, language, canonical URL. Menus, cookie banners and footers removed. Optional list of links. SSRF-safe fetching.

## Output

Returns a JSON object with: the resolved URL, content type (html/pdf), word count, character count, a boolean indicating if content was trimmed, the markdown string of the main content, a metadata object (title, description, site, language, canonical URL, OG image), optional array of links found on the page, and any warnings (e.g. content was trimmed).

## 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": "Full http(s) URL of a web page or PDF"
      },
      "include_links": {
       "type": "boolean",
       "description": "Also return the list of links found (default false)"
      },
      "max_characters": {
       "type": "integer",
       "maximum": 100000,
       "minimum": 500,
       "description": "Maximum markdown length (500-100000, default 20000)"
      }
     }
    },
    "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",
      "null"
     ],
     "properties": {
      "url": {
       "type": [
        "string",
        "null"
       ]
      },
      "type": {
       "type": [
        "string",
        "null"
       ]
      },
      "words": {
       "type": [
        "number",
        "null"
       ]
      },
      "trimmed": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "markdown": {
       "type": [
        "string",
        "null"
       ]
      },
      "metadata": {
       "type": [
        "object",
        "null"
       ],
       "properties": {
        "site": {
         "type": [
          "string",
          "null"
         ]
        },
        "image": {
         "type": [
          "string",
          "null"
         ]
        },
        "title": {
         "type": [
          "string",
          "null"
         ]
        },
        "language": {
         "type": [
          "string",
          "null"
         ]
        },
        "canonical": {
         "type": [
          "string",
          "null"
         ]
        },
        "description": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      },
      "warnings": {
       "type": [
        "array",
  
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://docs.x402.org/introduction",
  "type": "html",
  "words": 188,
  "trimmed": true,
  "markdown": "Welcome\n\n# Welcome to x402\n\nThis guide will help you understand x402, the open payment standard, and help you get started building or integrating services with x402.\n\nx402 is the open payment standard that enables services to charge for access to their APIs and content directly over HTTP. It is buil…",
  "metadata": {
   "site": "x402",
   "image": "https://coinbase-5dac824f.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DWelcome%26title%3DWelcome%2Bto%2Bx402%26description%3DThis%2Bguide%2Bwill%2Bhelp%2Byou%2Bunderstand%2Bx402%252C%2Bthe%2Bopen%2Bpayment%2Bstandard%252C%2Band%2Bhelp%2Byou%2Bget%2Bstarted%2Bbuil…",
   "title": "Welcome to x402 - x402",
   "language": "en",
   "canonical": "https://docs.x402.org/introduction",
   "description": "This guide will help you understand x402, the open payment standard, and help you get started building or integrating services with x402."
  },
  "warnings": [
   "Content trimmed to 1200 characters (of 3590). Raise max_characters if you need more."
  ],
  "url_final": "https://docs.x402.org/introduction",
  "characters": 1200
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vextorium-web-to-markdown-converter-fe810087/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.vextorium.com](https://www.zero.xyz/host/api.vextorium.com/llms.txt)
