Appearance
Usage
Minimal example: Python + Playwright
Connect to the Oxylabs Headless Browser via CDP, navigate to a page, and print its title.
python
from playwright.sync_api import sync_playwright
username = "USERNAME"
password = "PASSWORD"
endpoint = "ubc.oxylabs.io"
browser_url = f"wss://{username}:{password}@{endpoint}"
with sync_playwright() as p:
# Connect to the remote Oxylabs cloud browser
browser = p.chromium.connect_over_cdp(browser_url)
page = browser.new_page()
page.goto("https://oxylabs.io/")
print(f"Page Title: {page.title()}")
browser.close()Replace USERNAME and PASSWORD with your Oxylabs dashboard credentials.
Minimal example: Node.js + Puppeteer
javascript
const puppeteer = require('puppeteer');
const username = 'USERNAME';
const password = 'PASSWORD';
const browserUrl = `wss://${username}:${password}@ubc.oxylabs.io`;
(async () => {
const browser = await puppeteer.connect({ browserWSEndpoint: browserUrl });
const page = await browser.newPage();
await page.goto('https://oxylabs.io/');
console.log('Page Title:', await page.title());
await browser.close();
})();Geolocation targeting
To pin requests to a specific country, use a region-specific endpoint or pass the country parameter in the WebSocket URL query string as documented in the Oxylabs developer portal.
Concurrent sessions
Each account supports up to 100 concurrent sessions, with a launch rate of up to 10 sessions per second. Manage concurrency in your script by limiting the number of open browser instances.
CAPTCHA handling
CAPTCHA solving is automatic. No extra configuration is required. When the remote browser encounters a CAPTCHA, Oxylabs resolves it before returning control to your script. Solving may add a few seconds of latency depending on CAPTCHA type.