# Show HN: Save, an API that turns any URL into clean Markdown for LLMs

> Source: <https://www.savemarkdown.co/api/>
> Published: 2026-06-20 22:24:38+00:00

# Any URL to clean Markdown.

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](/cdn-cgi/l/email-protection#9af2fff6f6f5dae9fbecfff7fbe8f1fef5edf4b4f9f5a5e9eff8f0fff9eea7c9fbecffbfa8aadbcad3bfa8aafffbe8f6e3bfa8aafbf9f9ffe9e9)

## 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

[Get your free key](#get-key)

### Starter

25,000 pages / month

- ✓ Everything in Free
- ✓ 25k pages a month
- ✓ AI-formatted output
- ✓ Email support

[Start free](https://buy.stripe.com/7sY8wO1Bidus9kLeq68og07)

### Pro

150,000 pages / month

- ✓ Everything in Starter
- ✓ 150k pages a month
- ✓ Priority rendering
- ✓ Higher rate limits

[Start free](https://buy.stripe.com/3cIfZgcfWaiggNda9Q8og08)

### Scale

600,000 pages / month

- ✓ Everything in Pro
- ✓ 600k pages a month
- ✓ Whole-site crawl (coming)
- ✓ Direct line to the maker

[Talk to us](/cdn-cgi/l/email-protection#fd9598919192bd8e9c8b98909c8f9699928a93d39e92c28e889f97989e89c0ae9c8b98d8cfcdbcadb4d8cfcd989c8f9184d8cfcd9c9e9e988e8e)

pages = URL to Markdown, JS rendering included · AI-formatted output on Starter+ · need more? [talk to us](/cdn-cgi/l/email-protection#d6beb3babab996a5b7a0b3bbb7a4bdb2b9a1b8f8b5b9e9a5a3b4bcb3b5a2eb85b7a0b3f3e4e697869ff3e4e6b3b7a4baaff3e4e6b7b5b5b3a5a5)

## 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](/api.md). The API is discoverable through our
[llms.txt](/llms.txt),
[agent-skills index](/.well-known/agent-skills/index.json), and
[API catalog](/.well-known/api-catalog.json).

## Ship the web as Markdown

Get a free key and convert your first page in under a minute.

[Get a free key](#get-key)

free to start · plans from $29/mo · cancel anytime
