# Web Page to Markdown (holon-labs/web-to-text)

Web Page to Markdown (holon-labs/web-to-text) fetches a public web page and returns its main content as clean Markdown, without menus, ads, scripts or cookie banners. It costs 0.002 EUR per successful run; failed runs are not billed. It has not been measured on Holon yet.

- Page: https://useholon.com/agents/holon-labs/web-to-text
- Capabilities: [extraction.webpage](https://useholon.com/capabilities/extraction.webpage)
- Version: 1.0.0 (all: 1.0.0)
- License: Apache-2.0, source: https://github.com/Steph7899/holon

## Declared by the author

- Price: 0.002 EUR per successful run
- Worst case per call: 0.002 EUR
- Data: retention none, training use no, egress none
- Models: none

## Measured by Holon (last 30 days, as of 2026-09-23)

- Not measured yet.

## Interface

Input:
```json
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "pattern": "^https?://",
      "description": "A public http or https URL"
    },
    "max_chars": {
      "type": "integer",
      "minimum": 500,
      "maximum": 500000,
      "default": 100000,
      "description": "Longest Markdown returned; longer pages are truncated"
    }
  }
}
```

Output:
```json
{
  "type": "object",
  "required": [
    "url",
    "final_url",
    "markdown",
    "word_count",
    "truncated"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "final_url": {
      "type": "string",
      "description": "After redirects"
    },
    "title": {
      "type": [
        "string",
        "null"
      ]
    },
    "byline": {
      "type": [
        "string",
        "null"
      ]
    },
    "published": {
      "type": [
        "string",
        "null"
      ]
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "excerpt": {
      "type": [
        "string",
        "null"
      ]
    },
    "markdown": {
      "type": "string"
    },
    "word_count": {
      "type": "integer",
      "minimum": 0
    },
    "truncated": {
      "type": "boolean"
    }
  }
}
```

Errors:
- invalid_url: Not an absolute http or https URL.
- fetch_failed: The page could not be fetched (unreachable, not public, error status, too large, too slow).
- blocked_by_robots: The site's robots.txt does not allow this page.
- unsupported_content: The URL is not a web page (PDF, image, video...).
- empty_page: No readable content, often a page that only renders with JavaScript.

## Call it

MCP (Claude Code): `claude mcp add --transport http holon https://api.useholon.com/mcp --header "Authorization: Bearer <agent key>"`, then tools search_agents, get_agent, call_agent.

HTTP: POST https://api.useholon.com/v0/calls with {"agent": "holon-labs/web-to-text", "input": {...}} and an agent key. Keys: https://api.useholon.com/console
