Self-hosted, always current, no per-request pricing
⭐ Detectors evolve daily. Star us to keep Kameleo one step ahead.
Manually maintaining fingerprint configurations that get detected within hours? Kameleo keeps pace with anti-bot systems automatically, so you stop firefighting and build your actual product.
We run automated tests frequently. Here are the results with recordings of each run.
| Website | Playwright + Chromium | Playwright + Kameleo |
|---|---|---|
| Pixelscan | ❌ Watch |
✅ Watch |
| BrowserScan | ❌ Watch |
✅ Watch |
| Brotector | ❌ Watch |
✅ Watch |
| CreepJS | ❌ Watch |
✅ Watch |
| Bot Sannysoft | ❌ Watch |
✅ Watch |
| Cloudflare Turnstile | ❌ Watch |
✅ Watch |
| Google Search | ❌ Watch |
✅ Watch |
Built for developers who want control.
No per-request pricing. Your cost is fixed by the number of concurrent browsers — run 100 million requests a month and pay the same as running one million. At 40 concurrent browsers you know your cost on day one and at 10×. Competitors charge per API call, per minute, or per profile slot; here the economics stay in your control.
Your scraped data never leaves your servers. No vendor lock-in. Deploy on any machine: cloud VM, bare metal, or your own datacenter.
Stop manually re-testing which fingerprint configuration still works this week. We ship Chroma kernels within 5 days of every Chrome stable release. Junglefox (Firefox-based) follows every 2 months. Multikernel support lets you run multiple browser versions simultaneously, no forced upgrades.
Docker images available for both Linux and Windows containers. Run headlessly at scale, deploy across multiple VMs, and integrate with your CI/CD pipeline. Linux container deployments are fully supported, Kameleo is not Windows-only.
Works with Selenium, Puppeteer, and Playwright with no framework rewrite. SDKs in Python, JavaScript, and C#. Connect to your existing automation code in minutes.
- Fingerprints from real devices, always current — Millions of profiles sourced from real hardware, updated continuously. When anti-bot systems update, so do the fingerprints
- Mobile browser profiles — Engine-level mobile emulation across Android and iOS profiles. Supports Chrome on Android and Safari on iOS out of the box
- Multi-engine browser pool — Run Chroma (Chrome) and Junglefox (Firefox) simultaneously to diversify fingerprints across targets
- Persistent profiles and session warmup — Reuse profiles, import/export cookies. Profiles behave like returning users, reducing block and shadow-ban risk
- Proxy integration — HTTP, HTTPS, SOCKS5, and SSH tunnel support. Geo-location and timezone auto-matched to your proxy IP
- Headless mode — UI-free sessions on Business plan and above; same fingerprint masking quality as headed mode
- Docker containers — Linux and Windows Docker images; horizontal scaling without Windows-only constraints
- Multikernel — pin any browser version — Run multiple Chroma and Junglefox versions side-by-side; upgrade on your schedule
- No device limits — Licensing is per concurrent browser, not per machine. Deploy across as many servers as your workload demands
GUI-first tools built around manual workflows. If you're automating at scale, you'll be working against the grain.
| Feature | Kameleo | Multilogin | GoLogin |
|---|---|---|---|
| Chrome engine | ✅ Chroma | ✅ Mimic | ✅ Chromium-based |
| Firefox engine | ✅ Junglefox | ❌ | ❌ |
| Kernel update speed | ≤5 days | No SLA | No SLA |
| Pricing unit | Concurrent browsers | Profiles | Profiles |
| Typed SDK packages | ✅ Python / JS / C# | ❌ | ❌ |
| Automation frameworks | ✅ Selenium / Puppeteer / Playwright | ✅ Selenium / Puppeteer / Playwright | ✅ Selenium / Puppeteer |
| Headless mode | ✅ | ❌ | ✅ |
| Docker / container deployment | ✅ | ❌ | ❌ |
| Data stays on your servers | ✅ | ❌ | ❌ |
| Free tier | ✅ | ❌ | ✅ |
Cloud-based scraping APIs: all requests routed through vendor infrastructure, costs tied to usage volume.
| Feature | Kameleo | Zyte | ScrapeNinja |
|---|---|---|---|
| Self-hosted | ✅ | ❌ | ❌ |
| Data stays on your infrastructure | ✅ | ❌ | ❌ |
| Per-request pricing | ❌ | ✅ | ✅ |
| Fixed concurrent-browser pricing | ✅ | ❌ | ❌ |
| Bring your own proxy | ✅ | ❌ | ❌ |
| Bring your own Playwright / Selenium / Puppeteer | ✅ | ❌ | ❌ |
| Local API + SDKs (Python / JS / C#) | ✅ | ❌ | ❌ |
| Docker / container deployment | ✅ | ❌ | ❌ |
| Free tier | ✅ | ❌ Trial only | ✅ 100 req/mo |
Free to run, but the maintenance cost lands entirely on you — keeping up with every new fingerprinting vector, debugging breakage after Chrome updates, handling the issue backlog yourself.
| Feature | Kameleo | Camoufox | undetected-chromedriver / puppeteer-stealth |
|---|---|---|---|
| Commercial support | ✅ | ❌ | ❌ |
| Chrome engine | ✅ | ❌ | ✅ |
| Firefox engine | ✅ | ✅ | ❌ |
| Evasion method | ✅ C++ engine-level | ✅ C++ engine-level | |
| Multi-framework SDKs | ✅ Py / JS / C# | Python only | Py / JS |
| Mobile profiles | ✅ | ❌ | ❌ |
| Docker / container deployment | ✅ | ❌ | ❌ |
| Free to use | ✅ Free tier | ✅ Open source | ✅ Open source |
Connect with your favorite automation framework:
Selenium
from selenium import webdriver
# Get the WebDriver URL from Kameleo
ws_endpoint = f'http://localhost:5050/webdriver/{profile.id}'
driver = webdriver.Remote(command_executor=ws_endpoint)
driver.get('https://example.com')Puppeteer
import puppeteer from 'puppeteer';
const browser = await puppeteer.connect({
browserWSEndpoint: `ws://localhost:5050/puppeteer/${profile.id}`,
});
const page = await browser.newPage();
await page.goto('https://example.com');Playwright
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(f'ws://localhost:5050/playwright/{profile.id}')
page = browser.contexts[0].new_page()
page.goto('https://example.com')Working examples for every common scenario:
"Kameleo's human-like browser automation and great fingerprint masking helped our customers with their scraping and automation projects." — Pierluigi Vinciguerra, Co-Founder, Databoutique.com & The Web Scraping Club
"Kameleo keeps our scraping and automation users unblocked at scale: reliable, low-maintenance, and cost-effective." — Jason Grad, Co-Founder of Massive
"Kameleo and Scrapoxy make scraping undetectable, fast and rock-solid — no bans, no downtime." — Fabien Vauchelles, Creator of Scrapoxy
Works with your existing Playwright, Puppeteer, or Selenium setup — no framework rewrite required.
1. Install Kameleo:
# Windows
winget install Kameleo.App
# macOS
brew install --cask kameleo
# Docker (Linux & Windows containers available)
docker pull kameleo/kameleo-app:latest2. Install the SDK:
npm install @kameleo/local-api-client playwright3. Run your code:
import { KameleoLocalApiClient } from "@kameleo/local-api-client";
import { chromium } from "playwright";
const client = new KameleoLocalApiClient({ basePath: "http://localhost:5050" });
// Pick a real Chrome fingerprint and create a profile
const fingerprints = await client.fingerprint.searchFingerprints("desktop", undefined, "chrome");
const profile = await client.profile.createProfile({ fingerprintId: fingerprints[0].id });
// Connect with Playwright and automate
const browser = await chromium.connectOverCDP(`ws://localhost:5050/playwright/${profile.id}`);
const page = await browser.contexts()[0].newPage();
await page.goto("https://example.com"); // Running undetected ✓Also available in Python and C#. Supports Selenium, Puppeteer, and Playwright.
Is this really free?
Yes! The free tier includes 2 concurrent browsers, 300 minutes of browser usage per month, and 100 cloud profiles. No credit card required to start.
Why on-premise instead of a cloud API?
- Predictable cost at scale — No per-request pricing. At 40 concurrent browsers you pay the same whether you run 1 million or 100 million requests that month
- Data ownership — Your scraped data never leaves your infrastructure
- No scraping rate limits — Only API calls to fetch fingerprints count against limits; your actual scraping traffic is unlimited
- Compliance — Deploy on-premise for sensitive or regulated workloads
How often are browsers updated?
We ship new Chroma kernels within 5 days of every Chrome stable release. Junglefox (Firefox-based) is updated every 2 months. With multikernel support, you can run multiple versions simultaneously.
How is this different from stealth plugins?
Stealth plugins patch browser APIs at the JavaScript level — detectable by anything that runs before your patches or inspects the JS environment itself. Kameleo patches at the C++ engine level inside Chroma and Junglefox, so the masking is applied before any JavaScript ever runs and cannot be unwound from the page context.
When should I use Junglefox instead of Chroma?
Junglefox (Firefox-based) is valuable for two reasons: fingerprint diversity and target-specific detection logic. Some anti-bot systems apply stricter heuristics to Chrome than Firefox, or vice versa. Running a mix of Chroma and Junglefox profiles diversifies your browser engine signature across a session fleet. Junglefox is also the right choice when a target actively distinguishes Chrome from Firefox in its bot-detection stack.
What about headless mode?
Headless mode is available on Business and Enterprise plans. It launches UI-free browser sessions to reduce resource overhead.
How stable is Kameleo for long-running production workloads?
Kameleo is deployed in production by teams running multi-day, high-volume scraping operations. The CLI is designed for unattended runs. If you hit a stability problem, open an issue or reach us on chat and our support team responds directly.
We welcome contributions! Here's how you can help:
- Improve documentation — Found something unclear? Submit a PR to
/docs - Add detection tests — Know a bot detector we should test against? Check our masking report tests
- Report issues — Open an issue for bugs or feature requests
Made with ❤️ by the Kameleo Team
