Markdown Maker: HTML to Markdown 📝
Pricing
Pay per usage
Markdown Maker: HTML to Markdown 📝
Instantly convert complex HTML into clean, structured Markdown. This lightweight actor is optimized to render web content into a format that is easily readable for AI LLMs, reducing token usage and improving context. Perfect for RAG pipelines and preparing data for training.
Pricing
Pay per usage
Rating
5.0
(1)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Features
Share
What does Markdown Maker do?
Markdown Maker converts public web pages into clean markdown for AI prompts, retrieval systems, documentation, and archives. Add one or more URLs, run the Actor, and download a dataset where every page has a title, source URL, and markdown body.
Each URL is converted independently. The Actor does not follow links, so the dataset contains exactly the pages you submit. Pages that build their content in the browser are rendered before conversion, and responses that are already Markdown, plain text, JSON, RSS, Atom, or a sitemap are converted in their native format.
Why use Markdown Maker?
- Readable output - The markdown keeps headings, lists, tables, code blocks, links, and images, and drops menus, ads, cookie banners, and other page furniture.
- One record per page - The dataset is easy to filter, export, and join with other data.
- Batch runs - Convert a documentation set, a list of articles, or a research reading list in one run.
- Failure records - A page that cannot be converted produces a record with
success: falseand an error message, so the rest of the batch still finishes. - Apify platform features - Schedule runs, connect webhooks, export datasets, and call the Actor through the Apify API.
What data can you extract?
| Field | Description |
|---|---|
url | The URL you submitted |
title | Page title, cleaned of site-name suffixes when possible |
markdown | Converted content with a heading, source URL, and horizontal rule at the top |
timestamp | ISO timestamp for when the page was processed |
scrapedAt | Same timestamp, kept for compatibility with existing integrations |
success | true when the page converted, false when it failed |
errorMessage | Failure reason, present only when success is false |
How to use Markdown Maker
- Open the Actor on Apify.
- Add one or more page URLs under Start URLs.
- Set a page limit if you want a short test run.
- Run the Actor.
- Open the dataset to preview the markdown, or export it as JSON, CSV, or Excel.
The default input converts the Apify API documentation, so a first run works without any changes.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | https://docs.apify.com/api/v2 | Pages to convert. Each entry is an object with a url field. Only http and https URLs are accepted. |
maxItems | Integer | No | No limit | Maximum number of pages to process. Use this for a test run or to cap cost. |
delayBetweenRequests | Integer | No | 0 | Seconds to wait after each page. Set a delay when a site asks for slower traffic. |
proxyConfiguration | Object | No | Apify Proxy enabled | Proxy settings for pages that block or rate-limit direct requests. |
Output Data
| Field | Type | Description |
|---|---|---|
url | String | Source page URL |
title | String | Page title |
markdown | String | Converted markdown content |
timestamp | String | ISO timestamp for the conversion |
scrapedAt | String | Same value as timestamp |
success | Boolean | Conversion result |
errorMessage | String | Failure reason when success is false |
The markdown body starts with the page title, the source URL, and a horizontal rule:
# Apify API**URL Source:** https://docs.apify.com/api/v2---The Apify API provides programmatic access...
Usage Examples
Convert one page
Submit a single documentation page:
{"startUrls": [{ "url": "https://docs.apify.com/api/v2" }]}
Convert a reading list
Process several articles and stop after ten pages:
{"startUrls": [{ "url": "https://en.wikipedia.org/wiki/Markdown" },{ "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP" },{ "url": "https://www.rfc-editor.org/rfc/rfc9110.html" }],"maxItems": 10}
Slow down a large batch
Add a delay and use Apify Proxy when a site limits repeated requests:
{"startUrls": [{ "url": "https://example.com/guide/one" },{ "url": "https://example.com/guide/two" },{ "url": "https://example.com/guide/three" }],"maxItems": 50,"delayBetweenRequests": 2,"proxyConfiguration": {"useApifyProxy": true}}
Sample Output
{"url": "https://en.wikipedia.org/wiki/Markdown","title": "Markdown","markdown": "# Markdown\n\n**URL Source:** https://en.wikipedia.org/wiki/Markdown\n\n---\n\nMarkdown is a lightweight markup language...","timestamp": "2026-11-02T10:15:00.000Z","scrapedAt": "2026-11-02T10:15:00.000Z","success": true}
A failed page keeps the same shape with an error message:
{"url": "https://example.com/missing","title": "Error","markdown": "# Error Processing Page\n\n**URL:** https://example.com/missing\n\n**Error:** Page not found (HTTP 404)","timestamp": "2026-11-02T10:16:00.000Z","scrapedAt": "2026-11-02T10:16:00.000Z","success": false,"errorMessage": "Page not found (HTTP 404)"}
Supported Content
| Content | Support |
|---|---|
| HTML articles, blogs, documentation, wikis | Yes |
| Pages that render content in the browser | Yes |
| Markdown and plain text files | Yes |
| JSON endpoints | Yes, as text or a fenced JSON block |
| RSS, Atom, and sitemaps | Yes, as a list of entries or URLs |
| CSV files | Yes, as a fenced block |
| PDF files | No, the record reports UNSUPPORTED_TYPE |
| Images, audio, video, archives | No, the record reports UNSUPPORTED_TYPE |
HTML responses above 15 MB are rejected to keep memory use predictable.
Tips for Best Results
- Test with a few URLs before scheduling a large run.
- Use
maxItemsto cap a run when you are unsure how many pages you need. - Set
delayBetweenRequeststo 1 or 2 seconds for sites that rate-limit repeated requests. - Keep Apify Proxy enabled for public sites that block datacenter IPs.
- Expect missing content when a page sits behind a login, a paywall, or a region block. The Actor reports those pages as failures instead of guessing.
- Check the dataset preview after the first run. If one site converts poorly, report the URL through the Issues tab.
Integrations
- Google Sheets - Send dataset rows to a spreadsheet for review.
- Webhooks - Trigger a downstream job when a run finishes.
- Make or Zapier - Pass markdown into a no-code workflow.
- Apify API - Fetch dataset items from your own application.
- JSON, CSV, Excel, XML - Download the dataset in the format your tools accept.
Frequently Asked Questions
Can I export the markdown to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats. The markdown field keeps its line breaks in JSON exports.
Can I run Markdown Maker on a schedule?
Yes. Create a schedule in Apify Console and choose an hourly, daily, weekly, or custom interval. Scheduled runs are useful for keeping a documentation mirror or a knowledge base current.
Does the Actor work on JavaScript-heavy pages?
Yes, when the page can render without a login. The Actor first reads the server response and renders the page when the response is a challenge, a script shell, or empty. A page that requires a signed-in session still fails, and the dataset records the reason.
Why did a page return success: false?
Common reasons are a 404, a removed page, a login wall, a region block, a PDF, or a binary file. The errorMessage field names the reason. A failure on one URL does not stop the other URLs in the run.
Does the Actor follow links on a page?
No. Only the URLs in startUrls are converted. Add every page you need to the input, or run the Actor again with a new list.
Can I convert a PDF?
No. The Actor converts HTML, text, JSON, and XML. Use the HTML version of a document when one exists.
How much does a run cost?
Cost depends on the number of pages and the run time on the Apify platform. Use maxItems for a short test, then raise the limit once the output looks right.
Is it legal to convert public pages?
Converting publicly available content can be legal, but you are responsible for following the site's terms, copyright rules, and applicable privacy law. Do not use the output to republish content you do not have rights to.
Support
Report a failing URL or a feature request through the Issues tab on the Actor page. Include the URL, the input you used, and the errorMessage from the dataset so the problem can be reproduced.
Legal Notice
This Actor is intended for legitimate collection of publicly available web content. Users are responsible for how they use the converted content and for complying with applicable laws and website terms.