Skip to content

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 Scraping

The 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 Scraping

What failure looks like

ErrorLikely cause
WebSocket connection failedBad API key or no paid plan active
TimeoutError: page.goto timed outTarget site is slow or blocked; increase timeout
Error: apikey is requiredMissing or malformed connection URL
403 Forbidden on the WSS handshakeAccount 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.