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.