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
| Protocol | Use it when | Notes |
|---|---|---|
| HTTP | Your client is an HTTP library, a browser or a headless browser. | HTTPS targets tunnel through CONNECT. Widest support. |
| SOCKS5 | You 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.
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.