Playwright Stealth — 2026

Stop getting
blocked by
Cloudflare.

Headless Chromium is trivially detected in 2026. Cloudflare, DataDome, and Kasada all fingerprint it. Camoufox — a hardened Firefox fork — has a completely different fingerprint surface. Spectrae hosts it. One line change in your Playwright script.

Stealth browser at $0.05/min. No local browser. No stealth plugins. No maintenance.

Firefox

Engine

Stealth

Fingerprint

$0.05/min

Per Minute

< 1s

Session Start

01 — The Fix

One line.
Fewer 403s.

Replace chromium.launch() with a single firefox.connect() call pointing at Spectrae's Camoufox endpoint. Your page interactions, selectors, and assertions stay exactly the same.

Before — gets blocked

scrape.py
import asyncio
from playwright.async_api import async_playwright

async def scrape():
    async with async_playwright() as p:
        # Standard headless Chromium
        # Gets blocked by Cloudflare, DataDome, Kasada
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()

        await page.goto("https://protected-site.com")
        # Result: 403 / CAPTCHA / JS challenge ❌

asyncio.run(scrape())

After — stealth

scrape_stealth.pyRecommended
import asyncio
from playwright.async_api import async_playwright

async def scrape():
    async with async_playwright() as p:
        # Stealth browser — powered by Camoufox
        # Real Firefox fingerprint surface for harder-to-automate sites
        browser = await p.firefox.connect(
            "wss://browser.spectrae.dev/stealth/playwright?key=YOUR_KEY"
        )
        page = await browser.new_page()

        await page.goto("https://protected-site.com")
        # Result: page loads normally ✓

asyncio.run(scrape())

Node.js — before

scrape.ts
import { chromium } from "playwright";

// Before: headless Chromium — gets flagged
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
await page.goto("https://cloudflare-protected.com");
// 403 or Turnstile challenge

Node.js — after

scrape_stealth.tsStealth
import { firefox } from "playwright";

// After: Camoufox stealth via Spectrae — different fingerprint surface
const browser = await firefox.connect(
  "wss://browser.spectrae.dev/stealth/playwright?key=YOUR_KEY"
);
const page = await browser.newPage();
await page.goto("https://cloudflare-protected.com");
// Page loads ✓
02 — Why It Works

Chromium vs Camoufox.
Multiple detection layers.

Anti-bot systems check multiple independent signals simultaneously. Patching one signal on Chromium leaves the others exposed. Camoufox replaces the entire engine — every signal is different by default.

Detection LayerHeadless ChromiumCamoufox (Spectrae)
TLS fingerprintChromium JA3/JA4 — widely blockedFirefox TLS profile — different surface
Canvas fingerprintDeterministic headless signatureRandomised per session
WebGLExposed GPU stringsMasked hardware identifiers
Navigator APIheadless=true signals exposedReal browser navigator values
Browser engineChromium — most-fingerprinted engineGecko/Firefox — different surface
Cloudflare TurnstileBlocked in headless modePasses with real Firefox signals
03 — How It Works

Managed Camoufox.
No ops work.

01

Sign up and get an API key

Create an account at spectrae.dev. You get $1 free credit to test with.

02

Swap the endpoint in your script

Change chromium.launch() to firefox.connect() with your Spectrae key. The rest of your Playwright code is unchanged.

03

Run — sessions start in under a second

Spectrae spins up a Camoufox instance, handles cleanup on disconnect, and bills per second with a 20-second minimum.

Migrating from Browserless?

Same wsEndpoint pattern. Swap the URL, add a Camoufox profile, keep the rest of your setup.

"wss://production-sfo.browserless.io/stealth?token=..."

"wss://browser.spectrae.dev/stealth/playwright?key=..."

Usage-based pricing

Stealth browser at $0.05/min. Standard browser at $0.003/min. Per-second billing. 20-second minimum per session. $1 free on signup.

Start free →

Playwright stealth. Managed.

Your script.
Protected sites.

Get your API key

Free $1 credit. Usage-based billing.