Deposit $50.00 or more and get 10% extra balance, until Nov 14, 2026.

Create an account
BooProxies

Web scraping

How to use proxies with Puppeteer

Puppeteer drives Chrome from Node.js. The proxy address goes in a launch argument, and the username and password are given to the page.

Which proxy works best with Puppeteer?

For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.

Proxy settings for Puppeteer: host, port and login

A BooProxies plan gives you four things: a host, a port, a username and a password. These are the values for Residential; the username and password are on your plan page.

Hostresi.proxies.boo
HTTP port8080
SOCKS5 port1080
UsernameUSERNAME
Passwordfrom your plan page

The country and the session are chosen in the username, not in a separate setting. The generator on your plan page writes the username for you, and Targeting and sessions explains each part.

Puppeteer proxy setup, step by step

  1. Launch Chrome with --proxy-server and the host and port only.
  2. Call page.authenticate with the username and password before the first navigation.

Puppeteer proxy example

Node.js

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ args: ['--proxy-server=http://resi.proxies.boo:8080'] });
  const page = await browser.newPage();
  await page.authenticate({ username: 'USERNAME', password: 'PASSWORD' });
  await page.goto('https://api.ipify.org');
  console.log(await page.evaluate(() => document.body.innerText));
  await browser.close();
})();

Replace USERNAME and PASSWORD with the login from your plan page. The example asks an IP-check address, so the output is the address your request left from.

Rotating or sticky sessions for Puppeteer?

For crawling many pages with Puppeteer, leave the username without a session so every request leaves from a new IP address. For anything with steps that belong together, such as a login, a cart or a paginated search that sets cookies, add a session to the username so those requests share one address.

A sticky username looks like this:

USERNAME-country-us-time-600-session-a1b2c3d4

Puppeteer proxy not working?

  • page.authenticate is per page. Call it on every new page, or that page gets a 407.
  • One browser has one proxy. For several IP addresses at once, launch several browsers or use browser contexts with a proxy per context.
  • A 407 error means the username or password was not accepted. Copy both again from your plan page, and check that nothing added a space or cut the username short.
  • If the IP address is in the wrong country, look at the username: the country code is part of it. More fixes.

Questions about Puppeteer and proxies

Does Puppeteer work with SOCKS5 proxies?

Not with a username and password: Puppeteer can use SOCKS5 only without a login. Use the HTTP port, 8080, which works for both http and https sites.

Which BooProxies proxy should I use with Puppeteer?

For most scraping, Residential Lite is the cheapest way to get home IP addresses in the right country. Use Residential when you need a particular state or city, and Unlimited Datacenter for targets in the United States that do not block data centre addresses.

Terms explained: web scraping, rotating proxy, sticky session, rate limiting, headless browser.

Puppeteer is a product of its own makers. BooProxies is not affiliated with it; the name is used here only to say what this guide is about. Use it within the rules of the sites you work with and our acceptable use policy.