Scrapers / Developer & File Tools

Website to Markdown
hipersoft/web-to-markdown
Turn any web page into clean Markdown — stripped of nav, ads and boilerplate — ready to feed an LLM, RAG pipeline or n8n AI workflow. Article text, title and metadata from a URL.
Total users
2Monthly users
1Total runs
75Per page converted
$0.003Last rebuilt
Oct 28, 2026Overview
Turn any web page into clean Markdown — stripped of navigation, ads and boilerplate — ready to feed an LLM, a RAG pipeline, or an AI step in an n8n / Make workflow. Give it a URL and get back the article title, body as Markdown, and metadata.

What it does
- Extracts the main article content (readability) and converts it to Markdown.
- Returns title, byline, excerpt and word count.
- Optional: keep or strip links and images.
- Saves a
.mdfile per page and puts the Markdown right in the dataset (easy to pipe into an LLM node).
Use cases
- AI / RAG pipelines — clean text to embed or summarize (perfect for n8n AI Agent / LangChain nodes).
- Content archiving — save readable copies of articles.
- Summarize / repurpose — feed clean Markdown to an LLM for summaries or rewrites.
Input
{ "urls": ["https://example.com/blog/post"], "includeLinks": true, "includeImages": true }
| Field | Type | Description |
|---|---|---|
urls |
array | Pages to convert. |
html |
string | Optional raw HTML instead of URLs. |
includeLinks |
boolean | Keep hyperlinks. |
includeImages |
boolean | Keep image references. |
Output

{ "url": "https://example.com/blog/post", "title": "My Post", "wordCount": 812, "markdown": "# My Post\n\n...", "resultUrl": "https://api.apify.com/v2/key-value-stores/.../records/page-0001.md" }
Output schema
| Field | Type | Description |
|---|---|---|
url |
string (URL) | The source page. |
title |
string | Article title. |
wordCount |
integer | Words in the Markdown. |
resultUrl |
string (URL) | Link to the Markdown file. |
FAQ
Great for LLMs? Yes — the Markdown drops the page chrome so you feed the model only the real content (fewer tokens, better answers).
Can I use it in n8n? Yes — run it from the Apify node and pass the markdown field to your AI/LLM step. It also works with Make, Zapier and other integrations and the Apify API.
Notes
Original clean-room implementation. Collects only public page content.
Input
| Field | Type | Description |
|---|---|---|
urlsURLs | array | Web pages to convert to clean Markdown. One Markdown file per URL. |
htmlRaw HTML | string | Optional: convert this raw HTML instead of fetching URLs. |
includeLinksKeep links | boolean | Keep hyperlinks in the Markdown. Default: true |
includeImagesKeep images | boolean | Keep image references in the Markdown. Default: true |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~web-to-markdown/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://en.wikipedia.org/wiki/Web_scraping"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/web-to-markdown").call(run_input={
"urls": [
"https://en.wikipedia.org/wiki/Web_scraping"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/web-to-markdown').call({
"urls": [
"https://en.wikipedia.org/wiki/Web_scraping"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Page converted One web page converted to clean Markdown | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.