Puppeteer Integration
Puppeteer headless Chrome with residential proxy β one launch option, zero setup overhead
Pass BytesFlows credentials directly into Puppeteer's --proxy-server Chrome flag. Works with puppeteer-extra-plugin-stealth β residential IPs + stealth fingerprinting for maximum evasion.
Puppeteer proxy code examples
BytesFlows uses standard Chromium proxy flags β compatible with all Puppeteer versions.
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
args: [
'--proxy-server=http://p1.bytesflows.com:8001',
],
});
const page = await browser.newPage();
// Authenticate the proxy
await page.authenticate({
username: 'YOUR_PROXY_USER',
password: 'YOUR_PROXY_PASS',
});
await page.goto('https://httpbin.org/ip');
const body = await page.evaluate(() => document.body.innerText);
console.log('Your exit IP:', JSON.parse(body).origin);
await browser.close();page.authenticate() handles proxy HTTP auth challenges. For SOCKS5, use --proxy-server=socks5://p1.bytesflows.com:1080 β SOCKS5 credentials are embedded in the URL format.
Why Puppeteer developers choose BytesFlows
Native Chrome flags β no wrappers
BytesFlows uses Chromium's --proxy-server flag. No third-party proxy library needed. Works with any Puppeteer version from 1.x to 23.x, and Puppeteer-extra with all its plugins.
Stealth plugin compatible
BytesFlows residential proxies work seamlessly with puppeteer-extra-plugin-stealth. The plugin handles browser fingerprint evasion; BytesFlows handles IP reputation β together they cover both detection vectors.
High-concurrency support
Run hundreds of parallel Puppeteer pages through BytesFlows simultaneously. Each page.authenticate() call can use different sub-user credentials for per-page IP isolation at scale.