Send a URL. Get the page back.
Clearfetch is a web scraping API for websites behind bot protection. You send one request with your API key and get back the fully rendered HTML. We handle challenges, retries and blocks on our side.
We're not accepting sign-ups yet.
Clearfetch is in private development. We'll announce public access on this page.
# one request, any protected page curl https://api.clearfetch.io/v1/fetch \ -H "Authorization: Bearer $CLEARFETCH_KEY" \ -d '{"url": "https://shop.example.com/p/1182"}'
Built because the usual tools stopped working.
Clearfetch started as internal infrastructure. Our own data pipeline had to read heavily protected sites every day, and the existing scraping APIs and automation stacks kept getting blocked. So we built a fetch engine that gets through.
Pages fetched from a DataDome-protected site by the standard automation and anti-detect tools we tested, including captcha solvers.
Pages fetched by our engine from the same site, with no human in the loop and no captcha-solving service.
Internal test, October 2026. It's a small sample from one target, so read it as a signal, not a benchmark. We'll publish broader success rates before public access opens.
How it works
You see one HTTP endpoint. Everything that keeps a request from being blocked happens behind it.
-
You send a URL
A single POST with your API key and the page you want. No SDK required. Any language that can make an HTTP request works.
-
We get through
We load the page, run its JavaScript, detect bot challenges and clear them. If a request is blocked, we retry it on a fresh session.
-
You get the HTML
You get the rendered page, the final URL after redirects, and an honest status. A blocked page comes back as blocked, never as an empty 200.
One endpoint, a small contract
This is a draft of the API we're building toward and may change before launch.
POST /v1/fetch { "url": "https://shop.example.com/p/1182", "country": "ch" } 200 { "status": 200, "html": "<!doctype html>…", "finalUrl": "https://shop.example.com/p/1182", "elapsedMs": 4210 }
| Response | Meaning |
|---|---|
200 | The page loaded. html has the rendered document. |
403 | The site still blocked us after retries. block says how: captcha, ban, interstitial or Cloudflare. |
504 | The page never finished loading within the deadline. |
429 | You've reached your plan's concurrency. Try again after the time in Retry-After. |
400 | The URL is missing or isn't a valid http(s) address. |
What we're building for launch
We're keeping the first release small: the fetch has to be reliable before anything else gets added.
JavaScript rendering
You get pages after their scripts have run, including the ones that render everything client-side.
Country targeting
You can request a page as it appears from a specific country. That matters for prices, listings and availability.
Sticky sessions
You can keep the same identity across a series of requests, for example for pagination or multi-step flows.
Billing on success
We're designing billing so that blocked and timed-out requests don't count against your plan.
Block reporting
Every failure says what stopped it, so your pipeline can decide whether to retry, wait or skip.
Structured extraction
Instead of raw HTML, describe the fields you need, such as price, title or address, and get clean JSON back.
Clearfetch is for publicly accessible pages. It won't fetch content behind a login, and it paces traffic per site so we don't add meaningful load to the sites we visit.
Not open yet
We aren't taking sign-ups or issuing API keys at this stage. If you have a protected site you need data from and want to tell us about it, email us. Announcements about access will be posted on this page.