cd /news/ai-tools/show-hn-save-an-api-that-turns-any-u… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-35160] src=savemarkdown.co β†— pub= topic=ai-tools verified=true sentiment=Β· neutral

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

Save, a new API that converts any URL into clean Markdown optimized for large language models, launched with a free tier of 1,000 pages per month. The service fetches web pages server-side, optionally renders JavaScript, and strips clutter like navigation and ads to produce LLM-ready content. Paid plans start at $29 per month for higher usage limits.

read3 min views1 publishedJun 20, 2026

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

Get your free key

Starter

25,000 pages / month

  • βœ“ Everything in Free
  • βœ“ 25k pages a month
  • βœ“ AI-formatted output
  • βœ“ Email support

Start free

Pro

150,000 pages / month

  • βœ“ Everything in Starter
  • βœ“ 150k pages a month
  • βœ“ Priority rendering
  • βœ“ Higher rate limits

Start free

Scale

600,000 pages / month

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

Talk to us

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.

Get a free key

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

── more in #ai-tools 4 stories Β· sorted by recency
── more on @save 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/show-hn-save-an-api-…] indexed:0 read:3min 2026-06-20 Β· β€”