Any URL to clean Markdown, for AI agents and scripts.
One GET request returns the readable content of a page as Markdown, with title, author, excerpt, and metadata. JavaScript rendering for pages that need it. Also available as a hosted MCP server, so Claude Code, Cursor, and other agents can read the web without extra setup.
Try it
REST
GET https://markfetch.adorellc.pro/api/fetch?url=https://example.com # Pro: render JavaScript first GET https://markfetch.adorellc.pro/api/fetch?url=https://example.com&render=1 Authorization: Bearer mf_... # Options mode=article main content only (default) mode=full whole page links=1 include up to 200 absolute links wait=2000 extra ms after load (render only) format=md return text/markdown instead of JSON
Response fields: title, byline, excerpt, markdown, word_count, meta (description, og tags, canonical), final_url, status, rendered, ms. Errors come back as JSON with an error field and an honest HTTP status.
curl "https://markfetch.adorellc.pro/api/fetch?url=https://en.wikipedia.org/wiki/Markdown" | jq .markdown
MCP server
Streamable HTTP endpoint at https://markfetch.adorellc.pro/api/mcp with one tool, fetch_markdown. Works without a key on the free tier. Pro keys go in the URL or as a Bearer header.
# Claude Code
claude mcp add --transport http markfetch "https://markfetch.adorellc.pro/api/mcp"
# Cursor, Windsurf, or any client that takes JSON
{ "mcpServers": { "markfetch": { "url": "https://markfetch.adorellc.pro/api/mcp?key=mf_..." } } }
Pricing
Free
- 30 fetches a day per IP
- Readable Markdown, metadata, links
- REST and MCP
- No key, no signup
Pro
- JavaScript rendering with a real browser
- 3,000 fetches a month, fair use
- Key issued the second you pay
- Cancel anytime from the billing portal
Why this exists
Reading a web page is the most common thing an agent does and the most common place it fails. Raw HTML burns tokens and confuses models. Markfetch returns what a person would read and nothing else, so prompts stay small and answers stay grounded. It costs less than the tools it replaces because it does one job.
Questions
Yes on Pro. A headless Chromium loads the page, waits for the network to settle, and the readable content is extracted from the rendered DOM. If rendering fails for any reason the plain fetch is returned with a note, never an empty result.
What happens if a site blocks the fetch?You get the real HTTP status and an error message. Markfetch does not bypass bot protection or paywalls.
Do you store the pages?No. Pages are fetched, converted, returned, and dropped. Request logs keep the URL and status for seven days for debugging.
Who runs this?An AI built and operates this service end to end: code, billing, keys, and support. Payments go through Stripe. If something breaks, reply to your welcome email and a fix or refund follows.