Products
Datacenter proxies from $19/mo Rotating proxies from $49/mo ISP proxies from $33/mo Dedicated proxies from $3.50/mo UDP proxies from $5/mo Try proxies
Use cases
Data & scraping AI services Social media & messaging E-commerce & finance Media & entertainment Marketing & ads Automation & tools All use cases →
Pricing
Full pricing table All 20 locations Money-back guarantee
Resources
Blog Proxy API MCP server Setup guides FAQ For business About us Affiliate program
English
English Русский
99.9% uptime · 100,000+ IPs available

Proxies for Puppeteer

A proxy for Puppeteer in Node.js that works headless: whitelist auth with no credential code, dedicated IPs for scraping and browser automation, from $19/mo.

  • Unlimited bandwidth—no usage-based billing
  • One of the highest connection limits in the industry
  • Whitelist up to five source IPs at no charge
  • Up to three free proxy list refreshes per month
Try proxies Configure any available plan and add-ons for 48 hours.
Packages start at 100 IPs
Plan term
Total for 30 days $0.00
Buy proxies
✓ 24-hour money-back guarantee — details · ✓ No KYC required

How to add a proxy to Puppeteer without extra code

Puppeteer’s proxy story has one catch, and everything else follows from it: --proxy-server accepts only a host and port. Put user:pass@ in the string and Chrome rejects the whole proxy with ERR_NO_SUPPORTED_PROXIES; the documented route is calling page.authenticate() before navigation — on every page you open, for HTTP proxies only, and with nothing to fall back on in headless mode, where the browser can’t even show a login popup. For SOCKS5 there’s no credential support at all: the feature request has been open since 2019.

IP whitelisting makes all of that irrelevant. Add the IP of the machine running your scripts in the Dashboard — every plan includes up to five whitelisted source IPs — and the launch options carry the entire setup:

import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=IP:port"],  // whitelisted, so no credentials
});
const page = await browser.newPage();
await page.goto("https://example.com");

No auth calls, no plugins like puppeteer-page-proxy, no local proxy-chain hop — and the same line works headless, in Docker, and with SOCKS5. When one exit IP per browser isn’t enough, pass proxyServer to browser.createBrowserContext() and run several isolated contexts in a single browser process, each behind its own address.

Addresses come from your package: export the list in TXT, CSV, or a custom template and distribute it across workers and contexts. Packages start at 100 IPs, from $19/mo. Product specs are in the adjacent panel; the comparison table below shows where datacenter packages sit among other proxy types. For a step-by-step walkthrough — page.authenticate(), per-context proxies, and rotation from a list — see the Puppeteer proxy setup guide.

Product specs at a glance
IP pool100,000+ IPv4
ProtocolsHTTP, HTTPS, SOCKS4, and SOCKS5
Bandwidthunlimited
Uptime99.9%
IP whitelistingup to five source IPs included
Username/passwordoptional, in addition to IP whitelisting
List refreshesup to three free refreshes per month
Minimum order100 IPs; 1 IP for dedicated proxies
Deliveryautomatically after payment
Refund24-hour money-back guarantee
Payment methods
StripeStripe VisaVisa MastercardMastercard American ExpressAmex USDT TRC20 and ERC20USDT USDCUSDC BitcoinBitcoin EthereumEthereum LitecoinLitecoin

Which proxies should you choose?

Four infrastructure types — and the use cases each one fits best.

Our pick for Puppeteer
Packagesdatacenter IPv4
Rotating ISP IPv6
IP source Datacenter, IPv4 Datacenterthe same 100,000+ IP pool Consumer ISP networks Datacenter
IP allocation Static list Full pool accessthe exit IP rotates on every request Static list Static list
List refreshes Up to 3 per month, free Not applicable Up to 3 per month, free Provider-dependent
Pricing model Per-IP packageunlimited bandwidth Credit-basedyou pay per request, not per IP Per-IP packageunlimited bandwidth Per-IP package
Website compatibility ✓ ~100% ✓ ~100% ✓ ~100% ✕ Limitedmany websites don't support IPv6
Speed Up to 500 Mbps Up to 300 Mbps Up to 500 Mbps Datacenter-grade
Anti-fraud trust Medium MediumIP rotation helps High Low to medium
Price $from $0.07 per IP/month $$$from $49.00/month $$from $0.22 per IP/month $typically the lowest-cost option
Best for Web scraping and automation at a predictable volume: your own IPs, unlimited bandwidth API scraping that needs as many different IPs as possible without buying a fixed list Social media, accounts, long sessions — wherever IP trust matters Use cases where the target site is guaranteed to support IPv6
Buy now Rotating proxies ISP proxies We don't sell these: too many limitations for general-purpose work

Connect in 60 seconds

Whitelisting is the base access method on every plan, so Puppeteer proxy authentication without page.authenticate is the default here — username/password stays available on top when a workflow calls for it. Copy the example for your stack, or paste it into your AI coding assistant to adapt.

# HTTP or HTTPS proxy
curl -x http://login:password@IP:port https://example.com

# SOCKS5
curl --socks5-hostname IP:port \
  --proxy-user login:password \
  https://example.com
import requests

proxy = "http://login:password@IP:port"  # your proxy from the Dashboard

r = requests.get(
    "https://example.com",
    proxies={"http": proxy, "https": proxy},
)
print(r.status_code)
import { ProxyAgent } from "undici";

const dispatcher = new ProxyAgent("http://login:password@IP:port");
const res = await fetch("https://example.com", { dispatcher });
console.log(res.status);
$ch = curl_init("https://example.com");
curl_setopt($ch, CURLOPT_PROXY, "IP:port");
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "login:password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
Fill in the credentials from your Dashboard. If you use IP whitelisting, you don't need a username or password.

Export in any format

Choose a standard format or create a custom one with any field order and delimiter your software requires.

IP:port login:password@IP:port {scheme}{ip}{port}{login}{password} — builder
HTTP HTTPS SOCKS4 SOCKS5 HTTP/2 ✓

See the FAQ for the ports used by each protocol.

PapaProxy API

You can automate purchases, renewals, whitelist changes, and proxy list exports. Create an API key in your Dashboard in a couple of clicks.

MCP server for AI agents

Claude, Cursor, and other agents buy proxies, renew plans, and export updated proxy lists through an access token you create in your Dashboard. See how it works.

Works with
…and 500+ more tools

Per-IP prices shown are for the largest package size. Get an exact quote in the calculator above.

Free proxy list for Puppeteer tests

Updated 19 days ago · New proxies added hourly · 10,610 proxies currently listed

These are not PapaProxy.net proxies. They are public proxies collected from open sources and are intended only for testing your software. To test our managed service, configure a 48-hour proxy trial with the plan and add-ons you need.
IPCountryPortProtocol
212.183.88.215 AT 80 HTTP
47.243.92.199 HK 3128 HTTP
212.183.88.153 AT 80 HTTP
212.183.88.13 AT 80 HTTP
203.95.199.159 KH 8080 HTTP
154.92.9.3 JP 80 HTTP
113.204.79.230 CN 9091 HTTP
181.214.1.97 AE 80 HTTP
219.93.101.63 MY 80 HTTP
185.18.250.64 CH 80 HTTP
IP:port format—one proxy per line

Reviews

A few service metrics—and feedback from our customers.

27,000+
proxy packages sold since 2019
60%
of customers upgrade their plan after the first month
100,000+ IPs
in our own pool across 22 locations

I use proxies for online games. I have been using the service for many months and I am satisfied with the quality and efficiency. Proxies work as they should and there are practically no disconnects. I recommend it, you will not regret it!

FD Felix Drechsler July 2025

Like the service! Responsive and fast support, affordable prices, convenient renewal panel and network selection. Just what I need!

KV Kornev Vitalii February 2026

I used the service for social networking. At first I bought it for a month, but now I will definitely renew it because the quality is really good! I am very glad that I finally found a really cool service!

RC Ryan Cooper March 2026

Proxies do not fail, and at this price it is a great gift. I buy them when I need them, usually once every few months. There have been a few minor glitches but the support here is above all praise. Responsive, kind, understanding and fast. All issues were resolved promptly. It is very nice to work with true professionals.

E Elliot May 2025

Frequently asked questions

Can't find your answer? Message us in live chat — real humans reply.

Puppeteer throws ERR_NO_SUPPORTED_PROXIES as soon as I add my proxy. What does it mean?

It almost always means credentials ended up inside the --proxy-server value. Chrome doesn't parse user:pass@IP:port there — it treats the whole string as an unsupported proxy scheme and refuses to route anything. Strip the string down to IP:port and the error disappears. Then authenticate one of two ways: call page.authenticate({username, password}) before the first goto() on every page you create, or whitelist your server's IP in the Dashboard and skip credentials entirely — the second option is one less call per page and the only one that also covers SOCKS5.

Does page.authenticate() work with SOCKS5 proxies?

No. page.authenticate() answers HTTP auth challenges, and Chrome has no mechanism for SOCKS5 credentials at all — the Puppeteer feature request (issue #4170) has been open since 2019 with no plans to implement it. The community workarounds are proxy-chain (a local hop that strips authentication) or forks of puppeteer-page-proxy, both of which add moving parts to every request. With IP whitelisting the limitation simply doesn't apply: --proxy-server=socks5://IP:port connects with no credentials to negotiate, and every address in our packages answers on HTTP, HTTPS, SOCKS4, and SOCKS5 alike.

Can I give each page its own proxy inside one browser?

Per page — not natively; that's exactly the gap the puppeteer-page-proxy plugin tried to fill by re-routing requests in JavaScript. The supported unit is the browser context: browser.createBrowserContext({ proxyServer: 'IP:port' }) gives you an isolated session — separate cookies, storage, and exit IP — inside a single Chrome process. One context per account or task is the pattern: dozens of contexts cost far less RAM than dozens of browsers. Assign each context its own address from your package list, and with whitelisted IPs the contexts need no authentication calls at all.

How do I rotate proxies between Puppeteer tasks?

Rotating proxies for Puppeteer work at two levels, and neither requires restarting Chrome per address. The self-managed way: export your package list and cycle through it — a new address per puppeteer.launch(), or per browser context if you're running many tasks in one process. That's a few lines of code and keeps per-IP costs at package prices. The managed way: point --proxy-server at a rotating plan's gateway once, and the exit IP changes on our side per request — no list handling, but billing shifts from per-IP to per-request, which only pays off when you genuinely need thousands of distinct exits. What doesn't work is trying to swap the proxy of an already-running context: the flag is fixed at creation, so rotation always means a new context, not a mutation.

Anything special about proxies in headless mode or Docker?

The proxy flag itself behaves identically — --proxy-server works the same headless and headful. Two practical notes. First, in headless mode a proxy auth failure is invisible: there's no popup, requests just die with ERR_TUNNEL_CONNECTION_FAILED, which is why credential-free whitelisting saves the most debugging time exactly where most Puppeteer fleets run. Second, in Docker remember that the IP to whitelist is the egress IP of the host (or NAT gateway), not the container's internal address — check what the outside world sees with curl ifconfig.me from inside the container before adding it in the Dashboard.

Other PapaProxy.net products

A different proxy type may be a better fit for your use case. All products use the same Dashboard and support team.

Put our proxies to the test

Configure any available plan and add-ons for 48 hours. Test the speed, stability, and target-site compatibility with your actual use case.

Try proxies

Buying as a company?

We can sign a contract and provide all the documents your accounting team needs. Most business orders are activated within 24 hours of your request.

Contract, invoices, and receipts Bank transfers and net payment terms Dedicated account manager Business orders from $100
Business terms or contact us on Telegram: @papaproxy