Website to Markdown Crawler for LLM, RAG & AI Context avatar

Website to Markdown Crawler for LLM, RAG & AI Context

Pricing

$1.00 / 1,000 page converted to markdowns

Go to Apify Store
Website to Markdown Crawler for LLM, RAG & AI Context

Website to Markdown Crawler for LLM, RAG & AI Context

Crawl any website and get each page as clean Markdown with title, description, word count and token estimate. Menus, footers and cookie banners removed. Built by Physea Labs (Liminal). Launch Sale: 90% OFF for the first week. $0.001 per page.

Pricing

$1.00 / 1,000 page converted to markdowns

Rating

0.0

(0)

Developer

jay casey

jay casey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Give it a URL and get every page of the site as clean Markdown, ready to paste into ChatGPT, load into a vector database or feed an agent. Navigation, footers, cookie banners and scripts are stripped before conversion.

🚀 Launch Sale: 90% OFF for the first week! Prices below are the regular rates; launch-week runs are billed at a tenth of them.

What can it do?

What you getFeatures
📝 Clean Markdown: headings, lists, tables, code blocks, links⚡ Plain HTTP, no browser: 5 pages in about 2 seconds
🔢 Word count and token estimate per page🤖 robots.txt respected, same-site and same-path scoping
🏷️ Title, meta description, language, canonical URL📤 JSON, CSV, API, LangChain / LlamaIndex loaders

Who this is for

  • RAG pipelines and vector databases that need clean page text
  • Building a custom GPT or agent knowledge base from docs sites
  • Content audits and migrations: every page's text in one dataset
  • Feeding competitor docs or help centers into an LLM for analysis

What you get back

FieldTypeWhat you getExample
urlstringPage URLhttps://crawlee.dev/python/docs/quick-start
titlestringPage `Quick start
markdownstringClean Markdown of the main content# Quick start\n\nThis short tutorial...
word_countintegerWords in the Markdown1268
est_tokensintegerRough LLM token estimate (chars / 4)3790
depthintegerLink hops from the start URL0
descriptionstringMeta descriptionThis short tutorial will help you...
canonical_urlstringCanonical URLhttps://crawlee.dev/python/docs/quick-start
statusstringok, error or skippedok

Every run also writes RUN_SUMMARY.json to the key-value store (counts, spend-limit flag, pricing).

What you need to provide

FieldTypeWhat it doesExample
startUrlsarrayPages to start from. Links on the same site (and under the same path, by default) are followed.[{"url": "https://crawlee.dev/python/docs/quick-start"}]
maxPagesintegerStop after this many pages are converted.5
maxDepthinteger0 = only the start URLs, 1 = plus pages they link to, and so on.1
stayUnderStartPathbooleanOnly follow links below the start URL's folder (e.g. /docs/).true
includeGlobsarrayOptional glob patterns, e.g. https://example.com/blog/*-
excludeGlobsarrayOptional glob patterns, e.g. /tag/-
keepLinksbooleanOff gives plain text-only Markdown (fewer tokens).true
respectRobotsTxtbooleanSkip pages the site disallows for crawlers.true
maxConcurrencyintegerPages fetched at the same time.5

Quick start

  1. Click Try for free.
  2. Press Start: the sample input finishes in under a minute with no API keys or setup.
  3. Replace the sample with your own values and run again.
  4. Open the dataset, or export it as JSON, CSV or Excel.

Pricing

🚀 Launch Sale: 90% OFF for the first week!

  • page-converted: $0.001 per page converted to Markdown ($1 per 1,000 pages).
  • Failed, empty, non-HTML and robots-blocked pages are not charged.
  • Set a max cost per run in the run options and the run stops cleanly when it hits it.
  • Normal Apify platform usage applies.

Limits and honest notes

  • Pages are fetched as HTML without a browser. Sites that render their text only with JavaScript come back as error rows ("no readable text") and are not charged.
  • PDFs, images and other non-HTML files are skipped.
  • The crawl stays on the start URL's host; use several start URLs for several sites.
  • No other Apify actor is called: everything is collected in-house over plain HTTP.

Run it from code

Same input as the Console sample:

{
"startUrls": [
{
"url": "https://crawlee.dev/python/docs/quick-start"
}
],
"maxPages": 5,
"maxDepth": 1
}
curl -X POST "https://api.apify.com/v2/acts/physealabs~website-markdown-crawler/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" -d @input.json
from apify_client import ApifyClient
items = ApifyClient("YOUR_APIFY_TOKEN").actor("physealabs/website-markdown-crawler").call(run_input={"startUrls": [{"url": "https://crawlee.dev/python/docs/quick-start"}], "maxPages": 5, "maxDepth": 1})

It also works from Zapier, Make, n8n and Apify schedules.

About Physea Labs · Liminal

Built and maintained by Physea Labs: the same extraction layer that feeds Liminal, our grounded research and decision engine. If it is good enough to feed Liminal's citations, it is good enough for your pipeline.