Two very different products share the name — a desktop profile manager a person drives, and a programmable cloud browser that code drives — and picking the wrong half wastes a quarter.
"Anti-detect browser" covers two things that share almost no engineering. Get this split right and the shortlist writes itself.
Buy a profile manager when a person is the operator. Multilogin is the reference implementation: it runs on your own machine — Windows 10 or later, macOS 14 or later, Ubuntu 22 or later, 64-bit, minimum 4 GB of RAM, and a GUI is required — and gives every profile an individually configurable fingerprint. WebRTC, timezone, geolocation, languages, screen resolution, fonts, media devices, navigator, WebGL, canvas, AudioContext and port-scan protection each carry explicit Masked, Custom, Real or Disabled modes, advertised on the product page as 55+ customizable parameters. Profiles persist in local or cloud storage with a converter between them, cookies import and export, and CookieRobot ages an account by browsing for it. If the work is ten people signing into two hundred accounts by hand, nothing in the cloud column replaces that.
Buy a programmable browser fleet when the operator is code. Browserbase, Browserless and Wayfern all hand an existing Playwright or Puppeteer script a browser that already runs somewhere else: no desktop to patch, no GUI in the path, and concurrency is a number on a plan rather than a room full of machines. What you give up is the per-vector panel. Browserbase exposes an os setting of windows, mac, linux, mobile or tablet alongside advancedStealth and a Verified tier; Browserless exposes emulationOs of windows, macos, linux or android with device slugs like pixel-8-pro; Wayfern exposes none at all, because its fingerprint APIs are restricted to service accounts. Coarse controls, in exchange for sessions that start from a socket and scale sideways.
This is not a preference ranking. It runs from the products that are anti-detect browsers in the strict sense down to the ones buyers switch to once they realise they never needed a browser. Wayfern sits fourth because that is where it honestly falls on that axis.
A desktop anti-detect browser built around many isolated profiles, each with its own fingerprint, proxy and cookie jar, automated through Selenium, Puppeteer or Playwright over a remote WebDriver, a CLI, or the Postman-documented API.
Best for Teams of humans operating many long-lived logged-in accounts, where per-vector fingerprint control and cookie tooling matter more than concurrency.
A managed cloud browser platform with published quickstarts for Playwright, Puppeteer and Selenium, contexts that persist cookies and storage between sessions, browsers in four regions, and a Verified tier running a purpose-built Chromium with real browser fingerprints.
Best for Prototyping on a $0 tier and growing into region-pinned browsers with managed proxies across a stated 201 countries.
Cloud browsers reachable three ways — a WebSocket for existing Puppeteer and Playwright code, stateless REST endpoints, and BrowserQL, a GraphQL API its docs call "a stealth-first browser automation tool" — across Chromium, Chrome, a stealth build, Firefox, WebKit and Edge.
Best for Work that needs a non-Chromium engine, or a declarative captcha and anti-bot API instead of hand-written waits.
A CDP gateway: connect Playwright or Puppeteer to a fingerprinted cloud browser over one WebSocket, choose the residential exit down to city and ISP in the connection string, and pay from a single credit balance shared with the scrape, search and captcha APIs.
Best for Long logged-in flows that must hold one browser identity and one exit IP from sign-in through checkout, driven entirely by code.
Not an anti-detect browser, and does not claim to be: its documentation presents anti-detect browsers as third-party tools you plug its proxies into, and lists 31 of them as integration targets, alongside residential, ISP, datacenter and mobile networks, managed unblocking APIs and a hosted Browser API.
Best for Supplying geo-targeted IPs — country, US state, city, ZIP or ASN on residential — to whichever browser you already chose.
Also not a browser: a context API that turns pages into markdown or schema-shaped JSON, with scrape, crawl, map, search, interact and batch endpoints, per-plan rate limits published rather than hidden, and a self-hosting guide in the repository.
Best for Pipelines with no login and no clicking, where an anti-detect browser is an expensive way to fetch HTML.
The right-hand column is Multilogin X throughout — the most thoroughly documented product in the strict category, and the fairest single stand-in for the desktop model. Every cell in it was read from Multilogin’s own pages; where they publish no figure, the cell says so instead of guessing.
| Capability | Wayfern | Them |
|---|---|---|
| Where the browser runs | Pooled cloud instances we operate. Your machine only holds a WebSocket open. | Your own hardware: Windows 10+, macOS 14+ or Ubuntu 22+, 64-bit only, minimum 4 GB RAM, 1 GB free disk, GUI required. |
| Engine choice | Chromium-family only — the supported clients are Playwright’s chromium.connectOverCDP and puppeteer.connect. | The product page offers Mimic (Chromium) or Stealthfox (Firefox); a Multilogin blog post says Stealthfox was retired and “no longer exists in the current Multilogin package”, so their own sources conflict on Firefox. |
| Per-vector fingerprint control | Not exposed to customers. Sessions run a fingerprinted Wayfern browser, and the fingerprint APIs sit behind a service-account guard. | Thirteen documented vectors, each with explicit modes — WebRTC, timezone, canvas, WebGL, AudioContext, fonts, media devices and more, marketed as 55+ parameters. |
| State between sessions | None. Cookies, storage and the exit IP live exactly as long as the CDP socket stays open, then go. | Durable profiles in local or cloud storage with a converter between them, plus cookie import, cookie export, pre-made cookies and CookieRobot. |
| How automation attaches | One CDP WebSocket carrying a link token: no SDK to install, no create call, no session id to poll for. | Selenium, Puppeteer, Playwright, a CLI and Postman endpoints — but only through a remote WebDriver; a local WebDriver “will break automation”. |
| Headless | The only mode. There is no GUI anywhere in the path. | Opt-in: headless_mode=true on the launcher endpoint, --profile-id <id>:true on the CLI, or "is_headless": true in the API body. |
| Automation rate limit | A per-link cap between 1 and 100 concurrent connections, default 10. The connection over the cap is refused at the handshake with close code 4003 rather than quietly queued. | 50 requests per minute on Pro 10 and 100 on Pro 50, Pro 100 and Business, shared by every member of the workspace; API automation starts at Pro 10. |
| Concurrent-session ceiling | 20 on Developer, 100 on Business, 400 on Scale. | Plans are sized by profile count and team seats; no concurrent-session ceiling appears on the pricing or automation pages. (not published) |
| Exit IP targeting | country, region, city, isp and a sticky session id in the connection string, each checked against the live catalog — an unknown code is refused with close code 4007 instead of silently falling back. | Built-in residential proxies advertised across 150+ countries and 1,400+ cities, with daily quality testing. |
A request/response API discards its state between calls; a held CDP session keeps one identity — fingerprint, cookies, exit IP — for the whole run.
A fingerprint that passes the check on page one is worth nothing if the cookie jar, the local storage and the exit IP change by page four. That axis is what the category is actually arranged along, and it is why a request/response scraping API can never be an anti-detect browser however good its unblocking is: every call is independent by construction, so whatever made the last one plausible is already gone.
Wayfern sits on the held-session side. The session is created when the CDP socket opens — there is no REST endpoint to start one and nothing to poll — and the same browser, the same cookie jar and, when you ask for one, the same sticky residential exit stay yours until you close it. The pool only hands an instance back to connections carrying the same link token, the same workload and the same exit, so a browser is never reused across tokens or geos.
Where the competition is straightforwardly ahead: Wayfern keeps nothing once the socket closes. Browserbase Contexts persist the Chromium user data directory between sessions — cookies, localStorage, IndexedDB, session storage, service workers, form autofill and browser preferences — and Browserless authenticated profiles restore cookies, localStorage and IndexedDB on any launch that passes ?profile=, within a 2 MB and 50-origin cap. If the workflow is "log in once in March, still be logged in in June", both of those do something Wayfern does not.
Nobody here charges the same way, which makes list prices almost useless side by side. What matters is which meter your work consumes fastest.
Per profile and seat (Multilogin). Tiers are sized by how many profiles you keep, not by how long anything runs: a free-forever tier with 5 cloud profiles, Pro 10, Pro 50 and Pro 100 at $11, $29 and $40 a month, and Business on a slider from 300 to 10,000 profiles between $89 and $900 a month, with annual billing advertised at 35% off. Cheap when you hold a few hundred accounts and a person drives them; entirely unrelated to how many browser-hours you burn.
Per browser-hour and per unit (Browserbase, Browserless). Browserbase publishes Free at $0 with 3 concurrent browsers and 1 browser hour, Developer at $20 with 25 concurrent and 100 browser hours then $0.12 an hour, Startup at $99 with 100 concurrent and 500 hours then $0.10 an hour, and Scale on request. Browserless publishes annually-billed Prototyping at $25 for 20,000 units, Starter at $140 for 180,000 and Scale at $350 for 500,000, with overages of $0.0020, $0.0017 and $0.0015 per unit. Read the ceilings as carefully as the rates: Browserbase returns HTTP 429 past your concurrency limit and the docs state the request "was effectively dropped", and Browserless caps a single session at 15, 30 or 60 minutes by tier.
Per successful request (ScrapingBee, Firecrawl, Bright Data’s unblocking APIs). ScrapingBee publishes an explicit credit table — 1 credit for a rotating proxy without JavaScript, up to 75 for stealth with JavaScript — and its Auto-Mode climbs from the cheapest configuration that works, bills only the tier that succeeded, and bills 0 when every configuration fails. Firecrawl is 1 credit per page for scrape, crawl and map. Bright Data bills only successful requests by default on Web Unlocker, although enabling custom headers or cookies switches it to billing 100% of requests, failures included. This is the cheapest meter in the category, right up until you need to click something.
Per credit, from one balance (Wayfern). An open page costs 8 credits an hour with a 60-second minimum per page, residential egress is 320 credits per GB metered per byte as it is consumed, and datacenter egress is free. The same balance pays for the Web Data API — scrape is 1 credit per page — plus search and captcha solves, so discovery and interaction never need two contracts. Plans run Developer at $19 for 1,520 credits and 20 concurrent sessions, Business at $99 for 9,000 and 100, and Scale at $499 for 46,000 and 400, with 20% off yearly and non-expiring packs of 1,000 / 5,000 / 20,000 credits at $12.50 / $55 / $200. The honest caveat: there is no free tier. The cheapest way in is $19 a month, where Browserbase, Browserless and Firecrawl all publish a $0 one.
If your automation already drives Chromium locally, or through Multilogin’s remote WebDriver, the move to a hosted fleet is one changed line — the connect call — followed by one real decision about where state lives. Everything after connectOverCDP is the Playwright you already wrote.
Identity is the part that is not a one-liner. A profile manager keeps a profile directory around between runs; Wayfern does not, so anything that used to be implied by "the profile is still signed in" has to become an explicit step: sign in at the top of the run, or hold the socket open for the whole flow. Add session= and the sign-in on step one and the checkout on step six are seen from the same residential IP.
import { chromium } from "playwright";
// The session is created when this socket opens — no REST call, nothing to poll.
// country / region / city / isp choose the residential exit; session= holds one
// IP for the run. Omit them all and you get the free datacenter exit.
const browser = await chromium.connectOverCDP(
"wss://browser.wayfern.com/ws?token=<LINK_TOKEN>&country=US®ion=CA&session=run42",
);
const page = await browser.contexts()[0].newPage();
await page.goto("https://example.com/login");
// ...ordinary Playwright from here: fill, click, waitForSelector.
await browser.close();It depends what you need to control. Both models ship a consistent, non-default browser identity; the difference is who holds the dials. Multilogin gives you thirteen documented fingerprint vectors with Masked, Custom, Real and Disabled modes. Browserbase exposes an os setting of windows, mac, linux, mobile or tablet plus advancedStealth and its Verified tier, Browserless an emulationOs of windows, macos, linux or android with Android device slugs, and Wayfern exposes nothing — its fingerprint APIs are service-account only. If your requirement is auditable per-vector control, only the desktop model delivers that today.
Most of them. Browserbase publishes Free at $0 and Developer at $20; Browserless publishes Free at $0 and Prototyping at $25 billed annually; Firecrawl publishes Free at $0 and Hobby at $16 billed yearly; ScrapingBee gives 1,000 free credits with no card and starts at $49; Multilogin has a free-forever tier with 5 cloud profiles. Wayfern has no free tier — the cheapest self-serve plan is Developer at $19 a month. Bright Data is the outlier the other way: its residential network is not self-serve at all, accounts on a personal email address are explicitly ineligible, and access requires human-reviewed KYC returned within a stated 48 hours.
They are usually not on the plan you will start on. Browserbase’s own documentation says "Browserbase offers Verified on the Scale plan" and suggests building the proof of concept on standard browsers and proxies instead; Scale is custom-priced through sales. ScrapingBee’s stealth proxy costs 75 credits a call, currently works only with JavaScript rendering enabled, and while it is on, the docs list custom headers and cookies, the timeout parameter and the infinite_scroll instruction as unsupported. Price the tier you will run in production, not the one you will prototype on.
Often not, but check the granularity before you assume. Bright Data’s own docs treat anti-detect browsers as third-party products you plug its proxies into and list 31 of them, and it targets country, US state, city, ZIP and ASN on residential (datacenter and ISP are country-only). Browserbase requires a country with optional state and city across a stated 201 countries, and warns that proxies: true is a best-effort attempt at a US exit that may route through a nearby country. Multilogin advertises 150+ countries and 1,400+ cities. Wayfern takes country, region, city and isp in the connection string with a sticky session id, and refuses an unknown code rather than silently substituting one.
When nothing you do needs a session at all. If the job is fetch-and-parse with no sign-in, no form and no multi-step flow, a request API is cheaper and simpler: Firecrawl returns markdown or schema-shaped JSON at 1 credit a page, ScrapingBee’s Auto-Mode charges only for the cheapest configuration that worked and nothing when all of them fail, and Wayfern’s own scrape endpoint is 1 credit per page from the same balance as its sessions. Holding a browser open to read one page is the most expensive way to do it on every platform on this list.
Browser sessions, the Web Data API, search and captcha solving all draw on one credit balance. Start on any of them.