One API that tries the cheapest route first and escalates: plain HTTP, then a headless browser. Every page is checked for blocks, CAPTCHAs, login walls and empty JavaScript shells. If a check fails we try the next route. Failed fetches cost nothing.
Get 500 free creditsRead the docscurl https://fetchrouter.dev/v1/fetch \
-H "Authorization: Bearer $FR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://excalidraw.com/",
"mode": "markdown",
"expect": { "text": "Excalidraw" }
}'
{
"ok": true,
"provider": "chromium",
"billed": true,
"costCredits": 5,
"attempts": [
{ "provider": "direct", "statusCode": 200,
"verdict": { "passed": false, "reason": "empty_shell" } },
{ "provider": "chromium", "statusCode": 200,
"verdict": { "passed": true } }
],
"content": "# Excalidraw\n\n…"
}
A 200 status isn't proof the page loaded. The first attempt above returned 200 with an empty app shell. Most fetch tools would have billed it and handed your agent a blank page.
Plain HTTP first. A headless browser when the page needs JavaScript. Premium unblocking providers only if you allow them.
Status, block pages (Cloudflare, DataDome, PerimeterX, Akamai, Imperva and more), real content length, and your own expect.text or CSS selector.
Every attempt and its verdict come back in attempts, so your agent can see what happened.
Credits are taken only when a page passes every check. Blocks, timeouts and empty shells are on us.
Server-rendered HTML or markdown. $1 per 1,000 pages.
Pages that need JavaScript. Used only when needed, or when you ask for mode: "rendered".
Premium providers for heavily protected sites, 10 or 25 credits. Off unless you set maxCost to 10 or more. Not live yet.
If no route passes verification, you pay nothing. That includes blocks, CAPTCHAs, timeouts and empty pages.
1 credit = $0.001. Prepaid packs, no subscription, credits don't expire:
{
"mcpServers": {
"fetchrouter": {
"command": "npx",
"args": ["-y", "fetchrouter-mcp"],
"env": { "FETCHROUTER_API_KEY": "fr_…" }
}
}
}
Works with Claude Code, Claude Desktop, Cursor and any MCP client. Two tools:
fetch_page: verified fetch, returns markdown or HTML plus the verdict.domain_reliability: which route works for a site, from real outcomes.Plain REST works too: see the docs. There's an llms.txt for agents reading this page.
500 free credits, no card. That's up to 500 verified pages.
Shown once. Store it as FR_KEY.