Developers
Playwright proxies.
Set proxy on the browser or the context. Use a sticky session when cookies must stay on one IP. Rotate when you are only fetching public pages.
Launch with a sticky exit
One context, one session id. Reuse the same username for the life of the job if the site ties the cookie jar to the IP.
import { chromium } from "playwright";
const browser = await chromium.launch({
proxy: {
server: "http://GATEWAY:7777",
username: "USER-country-DE-session-pw12ab34-ttl-60",
password: "PASS",
},
});
const page = await browser.newPage();
await page.goto("https://ip-api.com/json");
console.log(await page.textContent("body"));
await browser.close(); When to pick Mobile or ISP instead
Playwright on residential is enough for most public pages. Use mobile when the target is a carrier-only app path. Use ISP when a logged-in workspace must sit on one IP for days, not minutes.
FAQ
Chromium vs Firefox?
Both accept the same proxy object. Test WebRTC leaks if you care about real IP bleed — disable WebRTC or use a socks path you have verified.
Headless detection?
A proxy does not fix headless fingerprints. Pair sticky residential or ISP with a realistic context if the target scores the browser.