Automation & Data Scraping
Why scrapers need isolated environments
Blocks are usually not about the IP alone — it's the combination of fingerprint + behavior + IP. Giving each scraping session its own fingerprint and proxy treats "a real device" as the unit of scraping:
| Scraping pain | Traditional fix | Virtual Browser fix |
|---|---|---|
| Detected as headless | UA spoofing with patchwork | Real Chromium core + complete fingerprint |
| Same-IP blocks | Rotating proxy pool | Proxy pool × fingerprint pool — double dispersion |
| Lost login state | Re-login triggers risk control | Environments keep cookies; sessions are reusable |
| Complex orchestration | Self-managed browser clusters | REST API / CLI scheduling of environments |
Three integration paths
1. Local REST API (Pro)
Environments as resources, CRUD-style scheduling:
# Create and start a proxy-bound environment
curl -X POST http://127.0.0.1:PORT/api/env/create \
-H 'Content-Type: application/json' \
-d '{"proxy": "socks5://user:pass@host:port"}'
# Response includes the CDP endpoint for Playwright / Puppeteer2. Playwright over CDP
const { chromium } = require('playwright')
// cdpUrl is returned after the environment starts
const browser = await chromium.connectOverCDP(cdpUrl)
const page = await browser.contexts()[0].pages()[0]
await page.goto('https://example.com', { waitUntil: 'domcontentloaded' })
const data = await page.$$eval('.item', els =>
els.map(el => el.textContent.trim())
)
// Close when done — fingerprint and cookies persist in the environment3. MCP: let an AI agent drive it
Virtual Browser ships an MCP service, so AI tools like Cursor can call "create environment / start / open page" directly and turn scraping flows into natural-language tasks.
User: Scrape prices from these 20 product pages, one environment each
AI: Started 20 isolated environments (unique fingerprints + rotating proxies), scraping done, results in CSV.Pacing suggestions
| Target difficulty | Suggested setup |
|---|---|
| Lenient (docs, public data) | A few environments, low rotation |
| Medium (e-commerce listings, search) | Environment pool + residential proxies + random dwell |
| Strict (social media, logged-in content) | Environments bound to accounts long-term, human-like pacing |
Session reuse is an underrated lever
Environments keep cookies and local storage, so after one login you can visit at low frequency for a long time — far more human-like (and cheaper) than "fresh environment + re-login every time".
FAQ
Q: Is the API available on the free plan? GUI management of isolated environments is free forever; REST API, window synchronizer, MCP, and cloud sync are Pro features. Prototype on free, then upgrade if needed.
Q: How is this different from plain Playwright + proxies? Playwright's own browser fingerprint is public and uniform. Every Virtual Browser environment is a complete, stable, reusable fingerprint identity — and the GUI makes manual intervention easy.
Q: Can scraped data feed my pipeline directly? Yes. Environments are just the browser layer; extraction and storage stay in your Playwright / Puppeteer code, fully under your control.
Next: read the automation API guide and the API reference, or download the client to start.



