{"slug": "website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use", "title": "Website to Markdown – keyless HTML→clean Markdown for RAG, pay-per-use", "summary": "A community-maintained Apify actor called Website to Markdown converts web pages into clean, LLM/RAG-ready Markdown at $0.10 per 5 pages converted (about $0.02 per page), with no OpenAI key or per-token cost. The tool strips navigation, ads and boilerplate, supports same-domain crawling to a default maxPages of 50 (hard cap 200) and optional overlap-aware chunking at a default 512-token chunk size with 50-token overlap for vector databases, and is available over MCP as a pay-per-use alternative to Firecrawl and Jina Reader. Developer Fredrik Hansson's actor had 2 total users and 1 monthly active user at publication.", "body_md": "Website to Markdown — Clean Markdown for LLMs & RAG\n\nPricing\n\nfrom $44.00 / 1,000 pages converted (per 5)s\n\n[Go to Apify Store](https://apify.com/store)\n\n# Website to Markdown — Clean Markdown for LLMs & RAG\n\nTurn any web page into clean, LLM/RAG-ready Markdown. Strips nav/ads/boilerplate, optional same-domain crawl and overlap-aware chunking for vector databases. Keyless and fast.\n\nPricing\n\nfrom $44.00 / 1,000 pages converted (per 5)s\n\nRating\n\n0.0\n\n(0)\n\nDeveloper\n\n[Maintained by Community](https://apify.com/noniner)\n\nFredrik Hansson\n\nActor stats\n\n0\n\nBookmarked\n\n2\n\nTotal users\n\n1\n\nMonthly active users\n\n36 minutes ago\n\nLast modified\n\nCategories\n\nShare\n\nTurn any web page into **clean, LLM/RAG-ready Markdown**. Point it at one URL or a\nwhole docs site: it strips navigation, ads and boilerplate, keeps the main\ncontent, and returns tidy Markdown — optionally split into **overlap-aware chunks**\nready to embed into a vector database.\n\nDeterministic and **keyless** — no OpenAI key, no per-token cost. Fast, cheap, and\nbuilt for people **and** AI agents (available over MCP).\n\nA clean [Firecrawl](https://www.firecrawl.dev/) / [Jina Reader](https://jina.ai/reader/)\nalternative on Apify: pay-per-use, no subscription.\n\n## What it does\n\n- **Boilerplate removal** — drops`nav` ,`header` ,`footer` ,`aside` , forms,\nscripts, ads and common menu/sidebar classes, then picks the richest`<main>` /`<article>` container.\n- **Clean Markdown** —[turndown](https://github.com/mixmark-io/turndown) + GFM, so\ntables, code blocks and lists survive intact (ATX headings, fenced code).\n- **Same-domain crawl** — set a crawl depth to walk a whole docs site; filter with\ninclude/exclude URL globs.\n- **RAG chunking** — optional: split each page into ~N-token chunks with overlap so\nvector-DB retrieval keeps context across chunk edges.\n- **Token + word counts** — every record carries a rough token estimate for budgeting.\n\n## Input\n\n| Field | Type | Default | Notes | \n|---|---|---|---|\n| `startUrls` | string[] | — | Seed URLs (required). | \n| `maxPages` | integer | 50 | Hard cap 200. One charge per page converted. | \n| `maxDepth` | integer | 0 | Same-domain crawl depth. 0 = only the seeds. | \n| `maxConcurrency` | integer | 5 | Pages fetched/converted in parallel. | \n| `chunkForRag` | boolean | false | Emit chunk records instead of page records. | \n| `chunkSize` | integer | 512 | Target chunk size in tokens. | \n| `chunkOverlap` | integer | 50 | Token overlap between chunks (< chunkSize). | \n| `includeUrlGlobs` | string[] | — | Only follow matching links when crawling. | \n| `excludeUrlGlobs` | string[] | — | Never follow matching links (wins over include). | \n\n## Output\n\nOne dataset record per page (or per chunk when `chunkForRag` is on):\n\n```\n{  \"url\": \"https://quotes.toscrape.com/\",  \"title\": \"Quotes to Scrape\",  \"markdown\": \"# Quotes to Scrape\\n\\n> \\\"The world as we have created it...\\\"\\n...\",  \"wordCount\": 412,  \"tokenEstimate\": 540}\n```\n\nChunk records add `chunkIndex` and drop `wordCount`.\n\n## Example — messy page in, clean Markdown out\n\nA typical article arrives wrapped in nav bars, cookie banners, share widgets and footers. You get only the content:\n\n**In:** one blog/docs URL (full HTML, ~180 KB of markup)\n\n**Out:**\n\n```\n# RAG best practices\nRetrieval-augmented generation works best when your chunks keep their context.\n## 1. Clean your sourceStrip boilerplate before you embed — nav links and cookie banners poison retrieval.\n```\n\nFlip on `chunkForRag` and the same page comes back as embed-ready chunks with\noverlap and a token estimate per chunk — drop them straight into a vector DB.\n\n## Pricing\n\nPay-per-event: **$0.10 per 5 pages converted** (≈ **$0.02 / page**). No subscription,\nno token fees — you only pay for pages actually converted.\n\n## Part of the No Niner no-code data toolkit\n\nOne of 90+ no-code data tools — many chain directly into each other. Browse them all", "url": "https://wpnews.pro/news/website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use", "canonical_source": "https://apify.com/noniner/website-to-markdown", "published_at": "2026-10-25 20:20:04+00:00", "updated_at": "2026-10-25 20:42:22.546746+00:00", "lang": "en", "topics": ["ai-tools", "ai-crawlers", "agent-protocols", "ai-infrastructure"], "entities": ["Apify", "Website to Markdown", "Fredrik Hansson", "Firecrawl", "Jina Reader", "MCP", "turndown"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use", "markdown": "https://wpnews.pro/news/website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use.md", "text": "https://wpnews.pro/news/website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use.txt", "jsonld": "https://wpnews.pro/news/website-to-markdown-keyless-html-clean-markdown-for-rag-pay-per-use.jsonld"}}