Hyper Solutions founder Patrick van den Bosch on browserless bypasses, session consistency, AI-assisted reverse engineering and the economics of solving at scale.
Akamai, DataDome, Incapsula and Kasada each ship JavaScript that inspects the visiting client, encodes what it finds and sends it back to be judged. Much of that code is heavily obfuscated, and some of it runs inside a custom virtual machine designed to keep it unreadable.
Reverse engineering one of these systems means working out what the script collects, how it encodes it, and which values the server actually checks. Then the vendor ships a new build, and on some systems that happens daily.
Patrick van den Bosch and his team have been working through that cycle since 2020. He is the founder of Hyper Solutions, which builds request-based solutions for all four vendors. During our recent Reddit AMA, he described where his team's time really goes:
>
Most of the time is usually spent testing, understanding how the antibot updates and how to maintain it at scale.
The Hyper Solutions team started out as sneaker developers. According to the company, its API now handles more than 2.5 billion requests a month.
In our thirteenth r/WebScrapingInsider AMA, we asked Patrick how he approaches an unfamiliar protection, why bypasses that work in testing fail later, where AI helps, and how to judge whether a bypass is worth the cost.
Here are the nine biggest lessons from the discussion.
An internet law professor explains how computer-access rules, contracts and copyright shape real scraping decisions about accounts, access methods, suppliers and data.
The page is public, so scraping it must be fine.
The scraper only collects prices, and prices are facts.
The scraping API vendor sends the requests, so the legal side is their problem.
Each assumption answers part of the question. None answers all of it, because a scraping operation involves how you reach a site, what you agreed to, what you copy and what you do with it.
As Santa Clara University law professor Eric Goldman put it during our recent Reddit AMA:
>
For my students, I summarize the law of scraping with the following tagline: “Scraping is ubiquitous but not clearly legal.” This breaks my students’ brains. If it’s so ubiquitous, it must be clearly legal…right?
That is not a claim that all scraping is unlawful. It describes a widespread activity governed by overlapping rules that courts have not settled.
Eric is Associate Dean for Research and Professor at Santa Clara University School of Law, where he co-directs the Datta Center for High Tech Law. He has practiced internet law since 1994, taught it since 1996, and fielded his first client question about scraping around 1997.
In our twelfth r/WebScrapingInsider AMA, we asked Eric how US law treats public data, logins, anti-bot systems, scraping vendors and AI agents.
Here are the nine biggest lessons, connected to the decisions you actually make. Like Eric's answers, this covers US law and is general education, not legal advice for your particular operation.
Experienced scraping engineers get better results by diagnosing what actually failed, keeping sessions consistent and choosing complexity carefully, not by stacking on more stealth.
Your scraper gets blocked. So you swap the proxies.
Still blocked. You add a stealth plugin, then a new browser, then a CAPTCHA solver.
Each change feels like progress. But each one is a guess, and some of those guesses make things worse. A scraper that rotates its fingerprint every few requests can get blocked faster than one that changes nothing.
The engineers who get consistent results start somewhere else. Before they change anything, they work out what actually failed, and ask one question: does this change address the actual cause?
As freelance anti-bot engineer Ibrahim El Khalil Mlata put it during our recent Reddit AMA:
>
I treat it like a decision tree, isolate variables one by one, most people jump straight to replacing proxies, but in my experience its often the fingerprint or the scraping behavior
Ibrahim is a web scraping and anti-bot engineer based in Algeria who has spent the last seven years reverse engineering anti-bot defenses across retail pricing, legaltech, logistics, hospitality and AI-training-data pipelines. Among the work he has done: running 1,000+ spiders across 300 retailers, reviving a dead 160-spider fleet, matching 100K+ hotel reviews a month, and taking mobile apps apart with Frida when the website is locked down. You can find his work on GitHub.
In our eleventh r/WebScrapingInsider AMA, we asked Ibrahim how he diagnoses blocks, when reverse engineering is worth the effort, and what keeps a scraping system useful once it is in production.
Here are the nine biggest insights from the discussion.
Scrape.do's team explains why it avoids browsers on most requests, maintains sessions for difficult targets, tests approaches as sites change, and worries about pages that look successful but contain incomplete data.
From the outside, a scraping API looks simple. You send a URL. You get a page back.
Behind that one response, the Scrape.do team describes a stack of decisions, and several of them run against what most developers would assume.
The company reports that more than 99% of its requests work without a browser. Yet its engineers still open individual difficult targets and tune configurations for them by hand. And the failure they find hardest to catch is not the obvious block. It is the response that comes back successfully with part of the data missing.
That raises a question worth asking even if you only scrape a handful of sites: what does an operation handling 10 billion+ pages a month know about getting reliable data that still applies at your scale?
At a small scale, scraping is mostly a technical problem. At our scale, it becomes a continuous systems and operations problem.
Batuhan has worked in web scraping and reverse engineering for many years and has been building Scrape.do since 2020. He was joined in the thread by Lead Software Engineer Mert B., R&D engineers Raif Tekin and Muhammet Derviş Aygan, and Selman Gokce, who leads marketing and SERP product marketing. The traffic volumes, percentages and internal systems described below are the team's own reported figures, not independent measurements.
A disclosure: ScrapeOps routes a significant amount of traffic through Scrape.do, and we know the team well. That is exactly why we wanted to get past the feature list and into the operation behind it.
In our tenth r/WebScrapingInsider AMA, we asked the Scrape.do team when browsers are actually necessary, how sessions and site-specific configurations decide the hard cases, and what it takes to keep data flowing after the first request succeeds.
Here are the nine biggest insights from the discussion.
Reliable scraping isn't decided by the proxy alone. It comes down to target-level reputation, session and browser identity, and knowing when a 200 response still isn't usable data.
Most proxy problems get diagnosed the same way.
A target starts blocking you, so you rotate the IP. Traffic slows down, so you buy more capacity. The response comes back 200, so you assume the scrape worked.
None of that holds up once a scraper runs at real, sustained volume.
In Geonode's AMA with r/WebScrapingInsider, the harder questions weren't really about whether "unlimited" proxies are good or bad. They exposed a system underneath that label: a pool can look healthy in aggregate while quietly failing against one target, the same IPs can behave differently once the client's browser identity changes, and a scraping API has to manage sessions and validate responses long after the proxy request itself succeeded.
The proxy turns out to be one variable inside a larger control system. The real problem is knowing which variable actually broke, and what to check next.
As Geonode's CEO and co-founder Jean-Patrick Bisson put it during our recent Reddit AMA:
>
Reputation is per target, not one number, so an address burned on one retailer is fine everywhere else.
Jean-Patrick is CEO and co-founder of Geonode, a residential proxy and scraping API provider that operates its own network rather than reselling third-party supply. He answered questions in the thread alongside his team, posting under the company's account.
In our ninth r/WebScrapingInsider AMA, we asked Jean-Patrick how target-level reputation actually gets managed, what "unlimited" pricing depends on economically, how Geonode's scraping API handles sessions and browser identity, and where response validation stops being the provider's job.
Here are the six biggest insights from the discussion.
The best proxy provider is not a company. It is whichever provider produces a usable result most cheaply for your website, page type and volume, and because provider efficiency is so uneven, at scale that choice becomes a routing and validation problem.
Every few weeks someone asks me the same question: which proxy provider is the best?
It is a reasonable question. Every comparison post on Google promises an answer. Every provider's homepage claims to be it.
And every developer who has burned a weekend switching providers wants a name they can stop thinking about.
There isn't one.
At ScrapeOps we currently route billions of requests a month through more than 50 proxy providers and scraping APIs. The same provider can be the cheapest, fastest option on one e-commerce site and one of the worst on another.
The winner can change between a product page and a search page on the same domain. It changes again when volume goes from 10,000 pages to 1 million.
What you are actually buying is not "a proxy". You are buying how efficiently a particular provider has learned to solve a particular target.
That efficiency is uneven, commercially motivated, and hidden behind headline prices that rarely survive contact with a real URL.
For our eighth r/WebScrapingInsider AMA I sat in the guest seat myself and opened up four years of provider benchmarking data to the community. If I had to compress the whole thread into two sentences, it would be these:
>
There is no best proxy provider. There is only the best provider for your websites, workload and volume.
For context on where this comes from: I am the CEO and Co-Founder of ScrapeOps, a proxy aggregator that routes traffic across the proxy provider market and benchmarks providers against each other in production, across roughly 60,000 domains.
Before ScrapeOps I worked at ScraperAPI, one of the companies that established the modern web scraping API model. So I have seen this industry from both the provider side and the buyer side.
In the AMA, the community asked how to actually compare providers, why two providers can charge 20x apart for the same page, what success rate hides, and where the economics of anti-scraping are heading.
Here are the nine biggest insights from the discussion.
A stealth browser is not judged only by whether one fingerprint looks like Chrome, but by whether its generated population, network identity and runtime behavior keep describing the same believable machine.
The usual way to think about browser stealth is a checklist. Make every browser look different from the next one. Patch the fingerprint surfaces a detector reads. Keep changing the values that might give away automation.
The CloakBrowser AMA points somewhere harder. A browser can be unique without looking real. A change meant to hide automation can make the browser stranger than the machines it is trying to blend into.
And the fingerprint is only one layer. The same browser can fail because the IP was never going to pass, because its profile and fingerprint have drifted into two different identities, or because it behaves unlike stock Chrome once a page goes into the background.
So the thing being graded is not really a bag of browser properties. It is a whole session, and its network identity, browser identity, stored state and behavior all have to agree with each other.
What makes the AMA worth reading is that the team does not present this as solved. They describe patches they shipped and then deleted, production failures they could not explain at first, experiments that ran for days, and one answer they corrected after another practitioner pushed back.
Per-instance uniqueness is the easy half. The hard half is population-level: if the generator has a statistical signature, values clustering in ranges real hardware doesn't, or fields correlating in ways real machines don't, then you're detectable as a population even though no two instances match.
The AMA was hosted around CloakBrowser, a Chromium binary with fingerprint patches applied at the C++ source level rather than injected from JavaScript, wrapped as a drop-in replacement for Playwright and Puppeteer. The team is three people and stays behind the brand deliberately, since anti-bot vendors watch projects like this. The responding lead engineer describes close to 30 years in software, most of it in defense and embedded work, with time in telecom, finance, real-time systems and driver development. They say the browser started as an internal tool: a client needed heavy automation against a CRM with reCAPTCHA in front of it, nothing on the market stayed stable, so they built their own and ran it for over a year before releasing it.
That background matters because the strongest answers in the thread are about low-feedback debugging and production regressions, not product features.
In our third r/WebScrapingInsider AMA, we asked the CloakBrowser team how a stealth browser gives itself away at population scale, why the browser is often the wrong thing to debug, and how you test something whose only feedback is pass or fail.
Here are the six biggest insights from the discussion.
An agent can click every button correctly and still fail the task. This AMA is about what sits underneath that: persistent identity, stealth that never holds still, and the harder problem of verifying a run actually did what it was supposed to.
Browser automation used to have a simple job. Give a program a browser, define the clicks, keep the selectors alive when the site changes.
Browser agents are making that job description obsolete. Current models can write browser code, recover from their own mistakes, and chain together workflows that used to take real engineering hours.
None of that turns out to be the hard part.
The hard part is what happens after the agent acts. Did it keep the identity it started with? Did the IP change under it mid-task? Did the run actually finish the job, or did it just perform a sequence of actions that looked right?
That split came up again and again in a Reddit AMA with Alexander Yue, who works on evaluations at Browser Use.
Its the verifier/reward function that is the missing piece for being able to do reinforcement learning for browser agents.
Yue works on evaluations at Browser Use and on physics and CS research at Stanford SLAC. Browser Use's open source harness has passed 107k GitHub stars, and its newer v4 platform runs agents on hosted, persistent browser sessions instead of throwaway headless instances. He was joined in the thread by Reagan Hsu, Browser Use's founding engineer, though the questions below were answered by Yue.
In our fourth r/WebScrapingInsider AMA, we asked Yue how much of the browser an agent should actually control, what identity survives between runs, why stealth resists a single score, and how anyone proves a run did the job.
Here are the six biggest insights from the discussion.
An agent can write the scraper for you. Production still depends on everything around it: validation, deterministic execution, session trust, and hard limits on autonomous repair.
A production scraper can fail loudly. A selector breaks, a request times out, a CAPTCHA appears, the job crashes.
Those failures are the easy ones. They page you.
The dangerous failure is the one that looks healthy. The run is green, the row count is plausible, the dashboard is quiet, and the data is wrong.
That failure mode gets worse when an AI agent builds the scraper, because the agent's misreading of the page does not stay a one-off mistake. It gets compiled into the thing that runs every day afterwards.
Which changes what you should be asking about AI scraping. Not whether an agent can find the data and generate a scraper, but what happens after it decides: who checks the result, which layer does the repeated work, what happens when the target stops trusting the session, and how much the system is allowed to change on its own.
As BrowserAct's Product Creative Director Huey put it during our recent Reddit AMA:
>
AI should sit at the points of uncertainty, not in every repeated execution.
Huey works on BrowserAct, an AI browser automation platform where an Agent explores a target site in a real cloud browser and generates a reusable Bot that handles the repeated runs. He was joined by Wade Lin, BrowserAct's CTO, whose team runs the browser runtime, proxy and cloud-execution layers underneath that Agent.
In our seventh r/WebScrapingInsider AMA, we asked Huey and Wade where AI actually belongs in a production scraper, what it still cannot solve, and how much autonomy a self-repairing system should be given.
The interesting part is how constrained their answers were. Here are the six biggest insights from the discussion.
A scraper is not judged only by whether its fingerprint looks like Chrome, but by whether its IP, cookies and connection history continue to describe the same believable browser.
When a scraper starts getting blocked, the standard advice is predictable.
Change the User-Agent. Add the missing headers. Rotate the proxy. Generate new cookies. Try another Chrome profile. If none of that works, rotate everything more often.
But every one of those components can look valid on its own while becoming contradictory when combined. A Chrome User-Agent can be paired with the wrong TLS behavior. A valid cookie can appear from the wrong IP. One persistent cart token can jump between five supposed devices.
That problem becomes more visible at production scale. One request may look perfectly ordinary. A thousand sessions following the same sequence, timing and teardown can reveal the automation template behind them.
As Saksham Solanki, creator of the open-source HTTP client httpcloak, put it during our recent Reddit AMA:
>
Rotating the pieces separately manufactures a client that doesn't exist anywhere in the real world, and that's easier to spot than whatever you were trying to hide.
Saksham built httpcloak, a Go HTTP client designed to reproduce browser behavior across TLS, HTTP/2, HTTP/3 and the connection lifecycle, while working against a Cloudflare-protected target that was scoring on TLS and running HTTP/3. His experience comes from capturing browser traffic, comparing Chrome's networking behavior at the frame and byte level, and repeatedly correcting cases where httpcloak passed every public fingerprint test but still differed from Chrome underneath.
In our sixth r/WebScrapingInsider AMA, we asked Saksham why apparently browser-identical clients still get blocked, how identity breaks across proxies and sessions, where HTTP clients stop being sufficient, and what browser-impersonation product claims hide.
Here are the nine biggest insights from the discussion.