v1.0 — Now live

Any URL.
Clean markdown.
One request.

MDtools is a blazing-fast REST API that fetches any web page and returns structured markdown — handling disclosure-heavy docs, hidden panels, and links automatically.

$ curl -s "https://api.markdownify.dev/convert
    ?url=https://example.com"
< 500msAverage response time
99.9%API uptime SLA
1,000Free requests / month
0Auth required to try

Simple by design

No SDKs. No configuration. Send a URL, get markdown back.

Step 01

Pass a URL

Send any http or https URL as a query parameter. Blog posts, docs, news articles — anything publicly accessible.

Step 02

We fetch and extract

MDtools fetches the page, strips boilerplate, expands likely disclosure content, and runs it through our markdown extraction pipeline.

Step 03

Receive clean markdown

Get back text/markdown with headings, links, and a metadata preamble for RAG, mapping, or downstream pipelines.

API Reference
GET /convert
url string · required · Target http or https URL REQUIRED include_links boolean · default true · Preserve hyperlinks in output OPTIONAL preserve_hidden boolean · default true · Expand likely disclosure content OPTIONAL include_metadata boolean · default true · Add metadata and hierarchy preamble OPTIONAL

See it in action

Real-world conversions from documentation sites, news, and articles.

REQUEST GET /convert
curl -s \
  "https://api.markdownify.dev/convert
    ?url=https://docs.python.org/3/
    &include_links=true
    &preserve_hidden=true"

# HTTP 200 · text/markdown · 1.2 KB
RESPONSE 200 OK
# Python 3 Documentation

## What's new in Python 3.13?

Python 3.13 is the latest stable release. It adds a new
interactive REPL with multi-line editing, color output,
and improved error messages.

## Getting Started

- [Tutorial](https://docs.python.org/3/tutorial/)
- [Library Reference](https://docs.python.org/3/library/)
- [Language Reference](https://docs.python.org/3/reference/)

## Downloads

Python 3.13.0 was released on 7 October 2024.
REQUEST GET /convert
curl -s \
  "https://api.markdownify.dev/convert
    ?url=https://blog.example.com/llms-in-production
    &include_links=false"

# HTTP 200 · text/markdown · 4.7 KB
RESPONSE 200 OK
# Running LLMs in Production

Published April 2025 · 8 min read

Large language models are no longer just research curiosities.
Getting them into production, however, requires careful thought
about latency, cost, and reliability.

## Choosing the right inference stack

The two dominant approaches are hosted APIs and self-hosted
inference servers. Each has trade-offs around cost-per-token,
data privacy, and cold-start latency.

## Caching strategies

Prompt caching can cut inference costs by 60–80% for
repetitive workloads. Consider semantic caching at the
application layer for even greater savings.
REQUEST GET /convert
curl -s \
  "https://api.markdownify.dev/convert
    ?url=https://techcrunch.com/2025/05/ai-agents
    &preserve_hidden=true"

# HTTP 200 · text/markdown · 3.1 KB
RESPONSE 200 OK
# AI Agents Are Eating Software

by Sarah Chen · May 21, 2025

A new wave of autonomous AI agents is transforming how
software is built, deployed, and maintained. Unlike earlier
chatbots, these systems can plan multi-step tasks, use tools,
and iterate on their own outputs.

## The agentic stack

At its core, an agent needs three things: a capable model,
a well-designed tool set, and a memory system. The last part
remains the hardest engineering problem.

Companies like Anthropic, OpenAI, and Google have released
agent orchestration frameworks, but the field is still young.

Everything you need, nothing you don't

Built for developers who need reliable, clean text extraction — not a 50-dependency scraping framework.

Handles disclosure content

Accordion panels, tab panels, and details-style sections can be expanded before extraction without globally unhiding unrelated page chrome.

Link-aware extraction

Toggle include_links to keep full markdown link syntax or strip URLs for cleaner LLM ingestion.

Sub-500ms response

Async architecture runs network fetching off the event loop. Typical responses return in under 500ms for well-connected targets.

REST API — no SDK

Plain HTTP. Use curl, fetch, requests, or any HTTP client. Zero lock-in.

No auth to start

Free tier works without an API key. Sign up only when you're ready to scale past 1,000 requests per month.

LLM-ready output

Structured headings, clean paragraphs, and optional link stripping make the output ideal for feeding into RAG pipelines or prompt context.

Start free. Scale when ready.

No credit card required for the free tier. Upgrade anytime.

Free
$0 / month

For personal projects and exploration.

  • 1,000 requests / month
  • All query parameters
  • No API key required
  • No SLA guarantee
  • No priority support
Get started
Enterprise
Custom

For organisations with high-volume or custom needs.

  • Unlimited requests
  • Dedicated infrastructure
  • Custom SLA
  • SSO / SAML
  • Dedicated Slack support
Contact sales

Use the account and saved-work APIs directly

This is a thin built-in client for local development and preview testing. It uses your real session, API key, conversion, and collection endpoints.

Sign in

Use an existing account to unlock API key management and saved markdown.

Verify email

In development bootstrap mode, signup returns a verification token. Paste it here to verify the account before creating API keys.

No verification token captured yet.

Account session

Current user, session refresh, logout, and account deactivation.

Not signed in.

API keys

Create a key for persisted conversions, then revoke it when you are done testing.

No new API key issued this session.

Saved conversions

Review persisted conversions and apply the same retrieval filters your app can use programmatically.

Collections

Create and manage named groups of saved conversions.