TL;DR
Set your Proxyon endpoint through Puppeteer's --proxy-server launch flag, then authenticate with page.authenticate(). Rotating and sticky sessions both work through the same endpoint; you just choose which one to point to.
Puppeteer has no built-in proxy field. It relies on a Chromium launch argument instead, and authentication runs as a separate step. In this article, we'll explore how to set the proxy, authenticate correctly, and pick between rotating and sticky sessions.
Set the Proxy

Pass the endpoint as a launch argument, per the official Puppeteer docs:
const browser = await puppeteer.launch({
args: ['--proxy-server=http://proxy.proxyon.io:PORT']
});This routes every request through Proxyon at the Chromium level, before any page loads.
Authenticate

Credentials don't go in the URL for this flag. Call page.authenticate() right after opening the page, and before page.goto():
const page = await browser.newPage();
await page.authenticate({ username: 'user', password: 'pass' });Skip this step and every request returns a 407 Proxy Authentication Required error.
Rotating vs. Sticky Sessions

Residential proxies rotate the IP on every request by default, ideal for scraping search results or product pages at volume. For flows that need one identity across several steps, like a login, append a session ID to the username to lock the IP. Datacenter proxies follow the same pattern but suit targets with lighter fingerprint checks.
Also Read: How to Scrape JavaScript-Heavy Sites With Playwright and Proxies
Confirm It's Working

Run the Proxy Tester against your credentials before a full scrape, or navigate Puppeteer to an IP-check page and log the response. A mismatch means the launch flag or authentication step is wrong.
Also Read: Rotating Residential Proxies Explained
FAQ

Does this work with SOCKS5?
Yes, swap http:// for socks5:// in the launch flag, nothing else changes.
Why do I get a 407 error?
page.authenticate() either wasn't called or ran after page.goto() instead of before it.
Can I rotate mid-session?
Yes, drop the session ID from the username and each new request gets a fresh IP.
Does headless mode change the setup?
No, proxy configuration is identical whether headless is true or false.
Does this work with puppeteer-extra and the stealth plugin?
Yes, the proxy setup is independent of plugins. Stealth handles fingerprinting, the launch flag and page.authenticate() handle the proxy, and both run together without conflict.
Can I use Proxyon's IPv6 proxies with Puppeteer?
Yes, IPv6 datacenter proxies work the same way. Just make sure your network and the target site actually support IPv6, or requests will fail before Puppeteer even gets a response.
Final Thoughts
Puppeteer and Proxyon come down to two steps: the launch flag and
page.authenticate(). Get those right, and rotation, sessions, and error handling take care of themselves. Proxyon runs pay-as-you-go, so testing this setup costs nothing beyond a small deposit.