One API call turns any web page into LLM-ready Markdown. Built for AI agents, RAG pipelines, and scrapers β fetch, render JavaScript, strip the clutter. You get the content, not the noise.
1,000 pages/mo free Β· no card Β· plans from $29/mo
Get a free API key #
1,000 pages a month, free. No credit card. Your key works instantly.
need higher limits or a paid plan? talk to us
A tiered engine that only spends what it must #
Fetch
We fetch the URL server-side with a real browser fingerprint and a strict SSRF guard. Static and server-rendered pages stop here.
Render if needed
If a page is a JavaScript shell, we escalate to a headless render β only when the content is too thin, so you never overpay.
Extract
Nav, ads, cookie banners and boilerplate are stripped. You get headings, lists, links, images and code as clean Markdown.
One call, clean Markdown back #
curl -X POST https://api.savemarkdown.co/v1/convert \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
js
const res = await fetch("https://api.savemarkdown.co/v1/convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SAVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://example.com/article" }),
});
const { markdown, meta } = await res.json();
console.log(markdown); // clean Markdown
python
import os, requests
res = requests.post(
"https://api.savemarkdown.co/v1/convert",
headers={"Authorization": f"Bearer {os.environ['SAVE_API_KEY']}"},
json={"url": "https://example.com/article"},
)
print(res.json()["markdown"])
Response
{
"markdown": "π Title: Example Article\nπ Source: ...\n\n---\n\n## Heading\n\nClean body...",
"meta": { "tier": 1, "cached": false, "domain": "example.com", "template": "markdown" },
"usage": { "credits": 1 }
}
Simple plans that grow with you #
Start free, no card. Move up when you need more. Every account begins on the free tier.
Free
1,000 pages / month
- β Any URL to clean Markdown
- β Automatic JavaScript rendering
- β No credit card
- β 300+ site-specific extractors
Starter
25,000 pages / month
- β Everything in Free
- β 25k pages a month
- β AI-formatted output
- β Email support
Pro
150,000 pages / month
- β Everything in Starter
- β 150k pages a month
- β Priority rendering
- β Higher rate limits
Scale
600,000 pages / month
- β Everything in Pro
- β 600k pages a month
- β Whole-site crawl (coming)
- β Direct line to the maker
pages = URL to Markdown, JS rendering included Β· AI-formatted output on Starter+ Β· need more? talk to us
POST /v1/convert #
Authenticate with Authorization: Bearer sk_live_β¦
. Keys are server-side only β never ship one in a browser or app bundle.
url
string required The page to convert. http(s) only.
template
string optional Omit for raw Markdown. Pass an AI template (clean, summary, outlineβ¦) for LLM formatting (token-metered).
render
"auto" | "never" | "always" optional JavaScript rendering. Default "auto" escalates to Tier 2 only when a page is a JS shell.
fresh
boolean optional Bypass the 24h cache and refetch.
Walled gardens: YouTube routes through its official transcript API. X / Instagram / TikTok are best-effort. We never use ghost accounts or scrape behind logins.
The web, readable by your agent #
LLMs read Markdown, not HTML. Point an agent, a RAG ingest job, or a research loop at any URL and get back tokens worth keeping. This spec is also available as plain Markdown at /api.md. The API is discoverable through our llms.txt, agent-skills index, and API catalog.
Ship the web as Markdown #
Get a free key and convert your first page in under a minute.
free to start Β· plans from $29/mo Β· cancel anytime