Stealth Browser Gateway | Anti-Detect Scraping API
Pricing
from $2.00 / 1,000 actor run initializations
Stealth Browser Gateway | Anti-Detect Scraping API
Anti-detect Firefox-based browser as an API: fetch protected pages and run click scenarios, get HTML, text or JSON. Pay per page that actually returns data; blocked pages are free. Bring your own proxy. MCP ready.
Pricing
from $2.00 / 1,000 actor run initializations
Rating
0.0
(0)
Developer
Radu Furtuna
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
5
Monthly active users
13 days ago
Last modified
Categories
Features
Share
Stealth Browser Gateway: Anti-Detect Browser API for Scraping & AI Agents 🥷🌐
Fetch pages that block ordinary headless browsers, and pay only for pages that actually came back.
An anti-detect, Firefox-based browser behind a simple Apify Actor: send URLs (or a click-by-click scenario), get back clean HTML, visible text or embedded JSON (__NEXT_DATA__, JSON-LD). Works from Python, JavaScript, curl, n8n, Make, LangChain, and as an MCP tool inside Claude, Cursor and Windsurf.
Honest note. No tool opens every site. Below is a real measurement on 15 sites, 5 attempts each, with no proxy (the default). Sites that did not pass are listed too, so you know before you pay.
✅ What was measured (1 Nov 2026, Apify cloud, no proxy, 5 attempts per site)
"Success" means the real content came back (job tiles, products, listings, price data), not just HTTP 200 and not a challenge page.
| Site | Protection | Success | Median time |
|---|---|---|---|
| httpbin.org, example.com (controls) | none | 5/5 | ~3 s |
| nowsecure.nl | Cloudflare | 5/5 | 4 s |
| Zillow (listing page) | PerimeterX / HUMAN | 5/5 | 5 s |
| Walmart (search) | PerimeterX / HUMAN | 5/5 | 14 s |
| Fiverr (category) | PerimeterX / HUMAN | 5/5 | 7 s |
| Vinted (catalog) | DataDome | 5/5 | 10 s |
| Facebook Ads Library (search)* | Meta | 5/5 | 4 s |
| TikTok Explore | in-house | 3/5 | 7 s |
| Upwork (job search) | Cloudflare | 1/5 | 9 s |
| G2, Tripadvisor | DataDome | 0/5 | blocked |
| Indeed | Cloudflare | 0/5 | blocked |
| Redfin (city page) | in-house | 0/5 | redirected to another city / challenge page |
* Facebook answers HTTP 403 together with a fully usable page. Pass "successRequires": ["ad_archive_id"] so the result is judged by content, not by the status code. The same option protects you from "empty shell" pages that return 200 without data (TikTok, Redfin sometimes).
Blocked pages are not charged. In these 5 runs, G2, Tripadvisor, Indeed and 4 of 5 Upwork attempts were free.
Full raw results (run IDs, per-attempt reasons): bench/results_2026-11-01.json in the Actor source. Your results depend on the target page, your region and your proxy; treat this table as a starting point, not a promise.
Where it will not work (be realistic)
- Sites that need a residential or mobile IP: use your own proxy (see below). Without one, datacenter IPs get blocked on G2, Tripadvisor, Indeed and often Upwork.
- Interactive CAPTCHAs (Turnstile, hCaptcha, "press & hold") are not solved by this Actor.
- Pages behind a login. Use public pages only.
🚀 Quick start
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("titan_coder/stealth-browser-gateway").call(run_input={"startUrls": [{"url": "https://www.walmart.com/search?q=headphones"}],"extractMode": "html","blockMedia": True,})for page in client.dataset(run["defaultDatasetId"]).iterate_items():print(page["url"], page["status"], page["ok"], len(page["content"]))
JavaScript (Node 18+)
const res = await fetch('https://api.apify.com/v2/acts/titan_coder~stealth-browser-gateway/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>',{method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({startUrls: [{ url: 'https://www.walmart.com/search?q=headphones' }],extractMode: 'html',}),},);const items = await res.json();console.log(items[0].url, items[0].status, items[0].ok);
curl
curl -s -X POST "https://api.apify.com/v2/acts/titan_coder~stealth-browser-gateway/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://www.walmart.com/search?q=headphones"}],"extractMode":"text"}'
🛠️ Input
| Parameter | Type | Default | What it does |
|---|---|---|---|
startUrls | array | required (v1) | Public URLs to open and return. |
extractMode | string | html | html (page HTML), text (visible text), json_embedded (embedded JSON blocks). |
successRequires | string list | empty | Text that must be present for the page to count (and be billed) as a success. Use it when a site returns 403 with good data, or a 200 empty shell. |
blockMedia | boolean | true | Skips images, video and web fonts to save bandwidth and time. |
waitForSelector / waitForTimeoutMs | string / integer | none / 1000 | Wait for a CSS selector or extra milliseconds for JavaScript pages. |
maxPages | integer | 20 | Cap on pages per run. |
proxyConfiguration | object | none | Optional proxy, paid by you (see below). |
proxyCountry | string | US | Exit country when using Apify Proxy: US, GB, DE, FR, CA. |
scenario / scenarios | array | none | Interactive mode: goto, click, wait_for_response, repeat_until_no_new_response, and capture of network responses. |
Output (one dataset row per URL)
{"url": "https://www.walmart.com/search?q=headphones","finalUrl": "https://www.walmart.com/search?q=headphones","status": 200,"title": "headphones - Walmart.com","content": "<!DOCTYPE html>...","extractMode": "html","elapsedSeconds": 13.9,"ok": true,"billable": true}
ok and billable tell you whether the row counts as a success.
🌍 Proxies: you bring and pay for your own
The Actor works without any proxy by default. For sites that block datacenter IPs you can add one in proxyConfiguration:
- Apify Proxy (
{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}): traffic is billed to your Apify account. - Your own proxy (
{"proxyUrls": ["http://user:pass@host:port"]};http,httpsandsocks5are supported): billed by your provider. Only public proxy hosts are accepted.
If a proxy you asked for cannot be set up, the run stops with a clear error and charges nothing. It never quietly falls back to a direct connection.
💰 Pricing
Pay-per-event, charged only for results:
- $0.012 per successfully scraped page (
startUrlsmode), $12 per 1,000 pages. - $0.05 per completed scenario (interactive mode), charged only if every required step succeeded.
- Blocked pages, error pages, challenge pages and HTTP 202/204 answers are not charged.
- Proxy traffic (if you enable a proxy) is billed separately by Apify or by your provider.
Retries are safe: set gatewayAttemptId and a repeated call returns the saved result without running or charging again.
🤖 Run as an MCP tool (Claude, Cursor, Windsurf)
Hosted (OAuth, no token in the config):
{"mcpServers": {"stealth-browser-gateway": {"url": "https://mcp.apify.com?tools=titan_coder/stealth-browser-gateway"}}}
Local (stdio):
{"mcpServers": {"stealth-browser-gateway": {"command": "npx","args": ["-y", "@apify/actors-mcp-server", "--actors", "titan_coder/stealth-browser-gateway"],"env": { "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>" }}}}
Your agent can then call the Actor as a tool to fetch a protected page or run a click scenario. Same per-page pricing applies.
❓ FAQ
How is this different from Playwright or Puppeteer? Stock headless browsers leak automation signals and are often blocked. This one is an anti-detect Firefox build with realistic fingerprints, packaged as an API with pay-per-result billing.
Does it solve CAPTCHAs? No. If a site shows an interactive challenge, the page is reported as not successful and not charged.
Is it legal to scrape? Use it only on public pages, respect each site's terms and local law, and do not collect personal data you have no right to process.
Why did a site work for someone else and not for me? Results depend on the site, your region, your IP type and time. Add a residential proxy of your own for the strictest sites, and use successRequires so you only pay for real content.
🏷️ Keywords & Search Tags
anti-detect browser, stealth scraper, web scraping API, bypass Cloudflare, DataDome, PerimeterX, headless browser API, scrape protected websites, browser automation for AI agents, MCP browser tool, Firefox scraper, JSON extraction, Zillow scraper, Walmart scraper, Vinted scraper, Facebook Ads Library scraper
