Web Search to Markdown

We pull live Google search results through Serper.dev and convert the top 3 pages to clean, AI-ready Markdown — in one request. No scraping, no boilerplate.

🔍Top 3 results extracted
🇺🇸USA results by default
One request, all sources
🔗Powered by Serper.dev
Tip: you can also type the query directly into the URL — markdown.new/search/best-iphone
Searching the web and extracting markdown…

How it works

One request. Three sources. Clean Markdown out.

1

Type a query

Enter anything you’d type into Google. We search via Serper.dev with USA results by default.

2

Top 3 extracted

The first three organic results are fetched in parallel and converted to Markdown via Cloudflare’s native pipeline — same engine that powers / and /crawl.

3

Copy or pipe

Browse sources here, or hit /search/<query> directly to get a single combined .md file ready for your LLM.

API Reference

Search the web programmatically. No authentication required.

GET /search/:query
Browser shortcut — type the query directly into the URL. Returns a single combined Markdown document. Dashes are converted to spaces.
curl 'https://markdown.new/search/best-iphone' # JSON envelope: curl 'https://markdown.new/search/best-iphone?format=json&n=5'
POST /search
Programmatic search. Body accepts q, n, gl, hl, retain_images, format. Defaults to JSON for POST.
curl -X POST 'https://markdown.new/search' \ -H 'Content-Type: application/json' \ -d '{"q":"best iphone","n":3,"gl":"us"}'

Default response is combined Markdown. Add ?format=json for a structured envelope with per-source metadata, extraction methods, and the original Serper results.

Search Options

Tune the request via query string or POST body.

Parameter Description Default
q Search query (required for POST; in path for GET)
n How many sources to extract (1–5) 3
gl Geo-location for SERP — e.g. us, uk, de us
hl UI language for SERP en
format Response format: markdown or json markdown
retain_images Keep ![]() images in extracted markdown false

Rate limits: 30 searches/minute per IP, 500/day per IP, and a global hard cap of 60,000/day across all callers.

Frequently Asked Questions

Everything you need to know about Web Search.

How is this different from /crawl?
/crawl walks an entire site you already know about — great for docs, blogs, or product pages. /search goes the other way: you give it a question and it finds the most relevant pages on the open web, then converts the top 3 to Markdown in one round-trip. Use /search for research, RAG ingestion, or grounding an LLM answer in fresh sources.
Where do search results come from?
We use Serper.dev as a thin proxy over Google search. Results are not cached — every /search request hits Serper live. Markdown extraction of the resulting pages reuses the same edge cache as the rest of markdown.new (5-minute TTL).
How is the markdown extracted?
Each of the top N URLs runs through markdown.new’s standard 3-tier pipeline: (1) Cloudflare Markdown for Agents, (2) Workers AI toMarkdown(), (3) Browser Rendering. The fastest tier that succeeds wins. The method field in the JSON response shows which one ran for each source.
Can I get more than 3 results?
Yes — pass ?n=5 (the hard cap). Higher values would burn your daily Serper budget too fast. The full Serper response always includes 10 organic results in the JSON envelope, so you can pick others to extract manually via the URL converter.
Why does the URL look ugly with dashes?
The slug parser converts dashes to spaces, so /search/best-iphone becomes the query best iphone. If you need a literal dash, URL-encode the space instead: /search/coca-cola%20zerococa-cola zero.
What happens if a page can’t be extracted?
It still appears in the result list with an extraction failed badge and the original Serper snippet. The other sources are not affected — each extraction runs independently in parallel.
What are the rate limits?
Three layers, all cumulative: 30 searches/minute per IP (sliding window), 500 requests/day per IP (shared with the URL converter), and a global hard cap of 60,000 searches/day across all callers to protect the Serper budget. The global cap fails closed: if the database can’t be reached we treat it as exhausted to be safe.
Are results cached?
Search results (the SERP itself) are not cached — you always get fresh rankings. Page extractions use the existing 5-minute Cloudflare Cache API layer, so popular URLs in the top 3 will return faster on repeat searches.