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

Playwright Proxy Servers

A proxy for Playwright in Python or Node.js: whitelist auth with no credential objects, a dedicated IP per browser context, 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 Playwright without passing credentials

Playwright handles authenticated proxies better than its neighbors — proxy: { server, username, password } is a first-class option and the framework answers the auth challenge for you — but the fine print still bites. The credential fields only work for HTTP and HTTPS proxies: point Chromium at SOCKS5 with a username and it fails with “Browser does not support socks5 proxy authentication,” a browser-level limitation no Playwright release can fix. Special characters in passwords break URL parsing, secrets end up in launch configs, and every context creation drags the credential object along.

With IP whitelisting the option shrinks to one field. Add the IP of the machine running your scripts in the Dashboard — every plan includes up to five whitelisted source IPs — and pass a bare server:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "IP:port"})  # whitelisted
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://example.com")

No username, no password, no encoding surprises — and SOCKS5 becomes as usable as HTTP, since there are no credentials for Chromium to choke on. The same proxy dict works in new_context(), which is Playwright’s real superpower: one browser process, several isolated contexts, each behind its own exit IP with its own cookies and storage — parallel scraping or multi-account work without paying the RAM cost of separate browsers.

Addresses come from your package list — export it in TXT, CSV, or a custom template and map one IP to one context. Packages start at 100 IPs, from $19/mo. Product specs are in the adjacent panel; the comparison table below shows how datacenter packages compare with other proxy types. For a step-by-step walkthrough — launch options, per-context proxies, and rotating proxies from a file — see the Playwright 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 Playwright
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, which makes Playwright proxy authentication without credentials the default: pass a server, skip the username and password fields. For Playwright per-context proxies, the same applies to every context you create. 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 Playwright tests

Updated 7 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.

I set a proxy in new_context(), but Chromium ignores it. Why?

Chromium has a quirk the docs bury: per-context proxies only take effect if the browser itself was launched with a proxy option. The convention is a placeholder — chromium.launch(proxy={"server": "per-context"}) — after which every new_context(proxy=...) works as expected. Skip the placeholder and context-level proxies are silently ignored, which is easy to misread as a dead proxy list. Firefox and WebKit don't need this, so cross-browser code has to branch on the engine. The addresses themselves can come straight from your exported package list — one per context.

Playwright says “Browser does not support socks5 proxy authentication.” Is that fixable?

Not with credentials — the message is literal. Chromium's network stack has no mechanism for SOCKS5 username/password, so Playwright refuses the combination up front instead of failing silently (Firefox does support authenticated SOCKS5, if switching engines is an option). The clean fix on any engine is removing the credentials: whitelist your machine's IP in the Dashboard and pass proxy={"server": "socks5://IP:port"} with no username at all. Since every address in our packages answers on HTTP, HTTPS, SOCKS4, and SOCKS5, you can also just switch the scheme to HTTP without changing the list.

My proxy password has special characters and authentication randomly fails. What's going on?

A known trap: characters like =, @, or # in credentials break URL parsing, and depending on where the values end up, auth fails silently or the connection falls back unproxied. The immediate fix is to keep credentials out of the server string — Playwright's proxy option has dedicated username and password fields precisely for this. The structural fix is not having a password in the config at all: with IP whitelisting the launch options contain nothing secret, which also means your repo, CI logs, and error traces stop leaking proxy credentials.

Will the same proxy setup work in Firefox and WebKit?

Yes — proxy={"server": "IP:port"} is engine-agnostic, and with a whitelisted IP all three browsers connect without extra configuration. The differences appear only at the edges: Chromium needs the launch-level placeholder for per-context proxies and rejects SOCKS5 credentials, Firefox handles authenticated SOCKS5 natively, and WebKit takes the plain server option without per-context branching. If you run the full engine matrix in CI, whitelisting is the one setup that behaves identically across all of it — worth knowing before you standardize on credential objects.

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