Skip to main content
A US residential proxy is enabled by default. The browser’s traffic passes through that residential IP before reaching the website, so the website sees the proxy’s location—not your server’s. A cloud browser routing its traffic through a residential proxy before reaching a website A cloud browser routing its traffic through a residential proxy before reaching a website Set browser_settings / browserSettings when you create a V4 run to choose another country:
The current TypeScript SDK type requires proxyCountryCode whenever browserSettings is present. Use "us" to keep the default, or null to disable the managed proxy.

Disable proxies

Pass null for QA or internal sites that do not need a residential proxy:

Custom proxy

Custom proxies are available to all accounts, including free and pay-as-you-go accounts. No subscription is required. Normal credit, spend, and concurrency limits still apply. The request format depends on what you are creating: browser_settings is the Python SDK keyword for agent runs. In REST JSON, the agent-run field is browserSettings.

Standalone browsers

For a browser you control with Playwright, Puppeteer, or another CDP client, put customProxy directly in the request body:
curl
Replace the proxy details with yours. Omit both username and password if your proxy does not require authentication. Do not wrap these settings in browserSettings or browser_settings on /api/v4/browsers. Keep the returned browser ID and stop the browser with PATCH /api/v4/browsers/{id} and {"action":"stop"} when finished. See the Create browser reference and Browser quickstart.

Agent runs

For a hosted agent, pass the proxy in the run’s browser settings:
A custom proxy overrides proxyCountryCode and must be passed again when a follow-up provisions a new browser. See the Create run reference for the complete settings object.