01 Developers

One proxy setting. Any client.

Everything you need to send your first request, then scale it. Examples use the values from your proxy list.

Quick start

Open your proxy list, copy any row, and run:

curl --proxy "http://USERNAME:PASSWORD@ADDRESS:PORT" \
  https://example.com

If the page comes back, you’re done. Every other client is the same idea: give it the proxy URL and keep your existing code.

Proxy URL

A proxy is identified by an address and a port. With username and password authentication the full URL is:

http://USERNAME:PASSWORD@ADDRESS:PORT
socks5://USERNAME:PASSWORD@ADDRESS:PORT

Use the http:// form for HTTP and HTTPS targets (the client opens a CONNECT tunnel for HTTPS) and the socks5:// form when your tool speaks SOCKS. Both work on every IP.

Authentication

Username and password

The default. Credentials are the same for every IP on your plan and are shown in the proxy list. Rotate them from the dashboard if they leak; old credentials stop working immediately.

IP allowlist

Switch the authentication method to IP allowlist and add the public IP of the machine making requests. Requests from an allowed IP need no credentials. If your egress IP changes (laptops, cloud instances without a static IP), requests fail with 407 until you update the list.

HTTP and SOCKS5

ProtocolUse it whenNotes
HTTPYour client is an HTTP library, a browser or a headless browser.HTTPS targets tunnel through CONNECT. Widest support.
SOCKS5You need non-HTTP traffic, or your tool prefers SOCKS.DNS resolves on the proxy side when the client supports remote resolution.

Client examples

Python (requests)

import requests

proxy = "http://USERNAME:PASSWORD@ADDRESS:PORT"
r = requests.get("https://example.com", proxies={"http": proxy, "https": proxy})
print(r.status_code)

Node.js (undici)

import { ProxyAgent, fetch } from "undici";

const dispatcher = new ProxyAgent("http://USERNAME:PASSWORD@ADDRESS:PORT");
const res = await fetch("https://example.com", { dispatcher });

Playwright

const browser = await chromium.launch({
  proxy: { server: "http://ADDRESS:PORT", username: "USERNAME", password: "PASSWORD" },
});

Puppeteer

const browser = await puppeteer.launch({ args: ["--proxy-server=ADDRESS:PORT"] });
const page = await browser.newPage();
await page.authenticate({ username: "USERNAME", password: "PASSWORD" });

Selenium (Chrome)

Chrome has no flag for proxy credentials. Use the IP allowlist method and pass --proxy-server=ADDRESS:PORT, or load a small extension that answers the auth challenge.

Desktop browsers

Chrome, Firefox, Safari and Brave accept a manual proxy in their network settings. Enter the address and port; the browser prompts for the username and password on the first request.

Country targeting

Locations are assigned per plan, not per request. In Configure plan, add countries and set how many IPs each should have; the proxy list then shows the country and city of every IP, so your code can pick by location. Unassigned IPs are placed randomly.

Gateway endpoint

Switch the connection method to Gateway endpoint and every IP becomes reachable at one hostname with its own port. Your configuration never changes when an IP is replaced; only the exit address behind the port does.

Tip. Use the gateway for long-lived deployments and the direct address when you need the lowest latency.

Troubleshooting

407 Proxy Authentication Required

  • Username/password mode: check for a trailing space or an URL-encoded character in the password. Copy from the proxy list again.
  • IP allowlist mode: your public IP is not on the list, or it changed. Add the current one in the dashboard.

Connection timed out

  • Confirm the port. Direct and gateway ports differ.
  • Outbound firewall rules on your side may block the port range. Try from another network to confirm.
  • A single IP showing Checking in the list is being verified; wait a minute or replace it.

The target site blocks or challenges you

  • Datacenter IPs are more likely to be challenged by consumer-facing sites. Try residential IPs for those targets.
  • Spread requests across more IPs and keep a realistic rate per IP.
  • Replace the affected IPs from the proxy list; replacements arrive in seconds.

HTTPS errors

The proxy does not inspect TLS. Certificate errors come from the target or from a client that sends HTTPS through an http:// proxy URL without CONNECT support; update the client or use SOCKS5.

Still stuck? Send us the proxy address and the exact error.

API access

The dashboard is the primary interface today. If you need to list IPs, replace them or change locations from code, tell us what you’re building and we’ll set you up.