Appearance
Test
Status: NEEDS-ACCOUNT
Classification: NEEDS-ACCOUNT (cloud API) Install method: No standalone SDK. Use Playwright or Puppeteer as the client library (npm install playwright or pip install playwright). Connect via ZenRows WebSocket URL. Cost tier: Paid plans starting at $69/month. No meaningful free tier for the Scraping Browser product. What is required: A ZenRows account at zenrows.com with an active paid subscription and a valid API key (ZENROWS_API_KEY). No self-hosted option.
Smoke Test: Node.js + Playwright (requires paid API key)
This is the minimal end-to-end smoke test. It connects to the ZenRows cloud browser, navigates to a public test page, and prints the page title. A successful run confirms your API key is valid, the WebSocket connection works, and ZenRows is routing requests correctly.
Command
bash
ZENROWS_API_KEY=your_key_here node -e "
const { chromium } = require('playwright');
const connectionURL = 'wss://browser.zenrows.com?apikey=' + process.env.ZENROWS_API_KEY;
(async () => {
const browser = await chromium.connectOverCDP(connectionURL);
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/ecommerce/', { timeout: 30000 });
const title = await page.title();
console.log('TITLE:', title);
await browser.close();
})();
"Expected success output
TITLE: Ecommerce Test Site to Practice Web ScrapingThe exact title string confirms the page loaded and ZenRows returned real page content through the residential proxy network.
Smoke Test: Python + Playwright (requires paid API key)
bash
ZENROWS_API_KEY=your_key_here python3 -c "
import asyncio, os
from playwright.async_api import async_playwright
connection_url = 'wss://browser.zenrows.com?apikey=' + os.environ['ZENROWS_API_KEY']
async def run():
async with async_playwright() as p:
browser = await p.chromium.connect_over_cdp(connection_url)
page = await browser.new_page()
await page.goto('https://www.scrapingcourse.com/ecommerce/', timeout=30000)
print('TITLE:', await page.title())
await browser.close()
asyncio.run(run())
"Expected success output
TITLE: Ecommerce Test Site to Practice Web ScrapingWhat failure looks like
| Error | Likely cause |
|---|---|
WebSocket connection failed | Bad API key or no paid plan active |
TimeoutError: page.goto timed out | Target site is slow or blocked; increase timeout |
Error: apikey is required | Missing or malformed connection URL |
403 Forbidden on the WSS handshake | Account suspended or key revoked |
Tested Status
Not tested in this SOP build. A ZenRows paid API key is required to run the smoke test. The connection endpoint is wss://browser.zenrows.com and requires an active subscription starting at $69/month. The commands above are the canonical test pattern sourced directly from official ZenRows documentation.