Built for jobs that run 24/7
Web Scraping VPS for pipelines that don't time out.
Provisioned for Playwright, Selenium, Scrapy, and Puppeteer at real scale: 30+ concurrent headless browsers, a static IP for orchestration, and the RAM headroom to keep long jobs alive through Cloudflare retries and proxy churn.
30+
Concurrent browsers
99.99%
Uptime
up to 20 TB
Egress
tabs
24 warm
rss
9.1 / 12 GB
items/s
63
errors
0.4%
The volume ceiling
Scraping at scale is a memory problem long before it's an IP problem.
One Playwright tab is fine on a laptop. Fifteen concurrent tabs against a modern SPA target, with trace mode, screenshots, and network interception on, will consume 8+ GB and start swapping the moment your OS wants a browser tab of its own. That's before Redis, the DB writer, or the proxy rotator get a byte.
- Reserve 500 MB RAM per concurrent Chromium tab as a floor
- Long-running jobs need a machine that doesn't sleep, update, or lose Wi-Fi
- Postgres + Redis on the same box removes ~40 ms per item vs a remote DB
- Symmetric bandwidth matters: most home connections upload 10× slower than they download
Playwright + trace mode
~600 MB
per tab, warm on a React SPA target
Selenium + Chrome
~450 MB
per session, with default profile
Scrapy (API-only)
~120 MB
per spider, 200 req/s achievable
Puppeteer (headless)
~380 MB
per Chromium instance
Framework support
Every mainstream scraping framework, preinstalled.
Python 3.10–3.12, Node 20 & 22, Go, Rust stable. Docker + Compose v2. One command to get started.
Playwright
Best-in-class for modern JS-heavy targets. Chromium, WebKit and Firefox drivers preinstalled. Headless-shell shaves ~180 MB per browser vs full Chromium.
Selenium
Grid Hub + Node pattern works out of the box. Fleet plan hosts a Hub + 4 Nodes with capacity=5 sessions each on one machine.
Scrapy
Sweet spot for API + HTML-only scraping. Scrapyd + scrapy-splash for JS rendering fallback. Crawler plan runs 200+ req/s on light targets.
Puppeteer
Same Chromium engine as Playwright, tighter Node API. Stealth plugin works: we don't strip user-agents or block CDP.
Scheduling is boring on purpose.
We don't ship a proprietary orchestrator. The machine is a proper Linux box (or Windows Server), so you keep the exact scheduling stack you already use in production. Redis and Postgres are one apt-install away and preinstalled on Fleet+.
cron + systemd timers
Native scheduling with jitter, retry-on-fail, and journalctl logs.
Celery / RQ / Bull
Redis included on Fleet & Pipeline. Wire your workers to a shared queue.
Scrapyd
REST API to schedule spiders, pause them, or watch job stats.
Docker Compose
docker-compose up -d and forget. Compose v2 preinstalled.
Kubernetes (k3s)
For Pipeline plans, single-node k3s deploys in one command.
GitHub Actions self-hosted runner
Point your CI at the VPS for scheduled scrape jobs.
First 5 minutes
Deploy a Playwright fleet the way the docs actually recommend.
Root SSH, systemd, Docker. No panel to click through, no vendor lock-in. Bring your repo, your requirements.txt, and your proxy config.
- Root SSH from minute one, no restricted shells
- UFW closed by default, opened only where you ask
- chrome-headless-shell + all browser deps preinstalled on Linux images
import asyncio from playwright.async_api import async_playwright from proxies import next_proxy # your rotator async def scrape(url): async with async_playwright() as p: proxy = next_proxy() browser = await p.chromium.launch( headless=True, args=["--disable-blink-features=AutomationControlled"], ) ctx = await browser.new_context( proxy={"server": proxy.server, "username": proxy.user, "password": proxy.pw}, user_agent=proxy.ua, viewport={"width": 1366, "height": 768}, ) page = await ctx.new_page() await page.goto(url, wait_until="domcontentloaded") html = await page.content() await browser.close() return html # systemd unit runs 12 of these concurrently asyncio.run(asyncio.gather(*[scrape(u) for u in queue]))
Pricing
Choose Your Plan
All plans include DDoS protection, full admin access, and 24/7 support.
Basic
Entry-level remote desktop
Standard
Balanced performance
Pro
Most popular choice
Advanced
Heavy workloads
Engineer FAQ
What scraping teams ask us before signing up.
Three things usually kill it in this order. First, memory: a warm Chromium tab averages 200–500 MB and Playwright's default trace mode adds another ~100 MB per context, so 20 concurrent tabs will OOM a 16 GB laptop that's also running VS Code, Slack, and a browser. Second, sleep: macOS App Nap and Windows modern-standby will pause your process the moment the lid closes or the screen locks. Third, IP heat: after 40k requests from one residential IP the target is fingerprinting and 429-ing you, and your local retry logic just amplifies the block.
Baseline is 180–250 MB for a chrome-headless-shell process with a single blank tab. Load a real page (React app, product listing, infinite scroll) and it climbs to 400–700 MB per tab depending on the site. Playwright with trace/video recording on adds another ~100 MB per browser context. Practical planning: budget 500 MB per concurrent tab, then leave 20% headroom for the OS + your Python/Node runtime + Redis. The Headless plan (12 GB) is sized for 12–15 concurrent Chromium tabs. Fleet (24 GB) comfortably handles 30–35.
Playwright (Python / Node / .NET / Java), Selenium 4 + Grid, Scrapy + Scrapyd, Puppeteer, Requests + httpx + aiohttp, Colly (Go), and Rust reqwest / fantoccini. Chromium, chrome-headless-shell, Firefox and WebKit are preinstalled with matching driver versions. Docker images for browserless/chrome and selenium/standalone-chromium work out of the box.
Bring your own. Good proxies are workflow-specific and we don't want to mark up someone else's product. We're fully compatible with Bright Data, IPRoyal, Smartproxy, Oxylabs, SOAX, Rayobyte, and self-hosted 3proxy / Squid. The VPS itself has a clean static IPv4 you can use for API-based endpoints where the target doesn't care about residential origin (public data APIs, sitemaps, robots-friendly targets).
Whatever your team already uses. systemd timers with journalctl for straightforward cron replacement, Scrapyd for pausable/restartable spider jobs, Celery + Redis for distributed queues (Redis is preinstalled on Fleet+), or Kubernetes on k3s for Pipeline plans. tmux and screen are also available if you just want to launch and detach. We don't force you into a proprietary job runner.
For any target with real anti-bot in place (Cloudflare, DataDome, Akamai, PerimeterX), yes, eventually. That's not a VPS problem, it's an inherent limit of any single IP against a target that fingerprints. The right pattern is: use the VPS static IP for orchestration, storage, and API-friendly targets, and route the actual browser traffic through rotating residential proxies. We optimize for that pattern: no NAT weirdness that breaks sticky sessions, no MTU quirks that mangle SSL through proxies.
The VPS itself doesn't solve these. It gives you a stable environment to run whatever you use to solve them: 2Captcha / CapSolver clients, undetected-chromedriver, camoufox, curl_cffi with browser TLS fingerprints, or your own solver. The important thing is that we don't block outbound to any solver API, don't strip TLS ClientHello, and don't run any interposing proxy or WAF that would interfere with fingerprint spoofing.
Yes. Fleet and Pipeline plans include a private WireGuard mesh option so you can put a Selenium Hub on one VPS and Node workers on 2–4 others, all on a private /24. This is the cleanest way to scale to 100+ concurrent sessions without any single machine turning into a memory bottleneck.
Every plan includes a monthly transfer allowance (2–20 TB depending on plan). We measure aggregate egress; we don't charge for ingress or for traffic between your VPSes on the private mesh. If you burst past your allowance in a given month, additional TB is billed at $2/TB. No throttling, no forced downgrades.
Yes. BTC on-chain and Lightning, USDT (TRC-20 / ERC-20 / Solana), USDC, ETH on Base and Arbitrum, and Monero. Card is available if you prefer instant activation. No KYC for any crypto order.
Move your scraper off your laptop and onto a machine designed for it.
Enough RAM to run the browsers, enough bandwidth to move the data, and enough uptime that your job never wakes you at 3am.
99.99% uptime Up to 20 TB monthly egress Pay in crypto · no KYC