Usage Examples

Connect to Evomi Scraping Browser using the Chrome DevTools Protocol (CDP) WebSocket. Use your preferred framework and language; examples below show idiomatic setups.

ℹ️

CDP URL format:

wss://browser.evomi.com?key=YOUR_API_KEY&os=windows&proxy_country=US&adblock=true

Optional: os, proxy_country, adblock=true. Disable Turnstile solving with solve_cloudflare=false.

Puppeteer (Node.js)

const puppeteer = require('puppeteer');

(async () => {
  const cdpUrl = 'wss://browser.evomi.com?key=YOUR_API_KEY&os=windows&proxy_country=US&adblock=true';
  const browser = await puppeteer.connect({ browserWSEndpoint: cdpUrl, defaultViewport: null });
  const page = await browser.newPage();
  await page.goto('https://check.evomi.com', { waitUntil: 'networkidle2' });
  console.log(await page.title());
  await browser.close();
})();

Playwright (Node.js)

const { chromium } = require('playwright');

(async () => {
  const ws = 'wss://browser.evomi.com?key=YOUR_API_KEY&proxy_country=US';
  const browser = await chromium.connectOverCDP(ws);
  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://check.evomi.com');
  console.log(await page.textContent('body'));
  await browser.close();
})();

Patchwright (Python)

from patchwright.sync_api import sync_playwright

cdp = 'wss://browser.evomi.com?key=YOUR_API_KEY&proxy_country=US&adblock=true'

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(cdp)
    context = browser.contexts[0] if browser.contexts else browser.new_context()
    page = context.new_page()
    page.goto('https://check.evomi.com')
    print(page.title())
    browser.close()

Rod (Go)

package main

import (
    "fmt"
    "github.com/go-rod/rod"
)

func main() {
    cdp := "wss://browser.evomi.com?key=YOUR_API_KEY&proxy_country=US&solve_cloudflare=false"
    browser := rod.New().ControlURL(cdp).MustConnect()
    page := browser.MustPage("https://check.evomi.com")
    fmt.Println(page.MustEval("() => document.title"))
    browser.MustClose()
}

Tips for scale

  • Reuse a single session to perform multiple tasks sequentially when possible.
  • For high concurrency, create multiple independent sessions with separate CDP URLs.
  • Use proxy_country to route traffic geographically without code changes.
  • Toggle solve_cloudflare=false for debugging site flows without auto‑solving.