Documentation
Standard SOCKS5 and HTTP proxies. Nothing to install, no SDK to adopt.
Quick start
Grab your credentials from the dashboard, then:
curl -x socks5h://USERNAME:PASSWORD@HOST:1080 https://api.ipify.org
The address you get back is a real residential device, not our server.
Endpoint types
Three shapes, all generated from the dashboard.
Rotating
One address. Every request exits from a different device. Use it when you want maximum IP diversity and do not need continuity between requests.
HOST:1080:USERNAME:PASSWORD
Sticky sessions
The session id in the username pins you to one device until you stop using it. Necessary whenever a site treats a mid-flow IP change as suspicious — logins, carts, multi-step forms.
HOST:1080:USERNAME-session-a1b2c3d4:PASSWORD
Port-based sessions
One port per session. Each line in the list is a distinct
host:port holding its own exit IP, and no two lines — yours or
anyone else's — ever share an address. Tooling that expects a proxy list,
and that drops entries which fail, works exactly as it would with per-IP
proxies.
Because each line reserves a real address, a generated list is trimmed to the number of unused exit IPs the network actually has. Asking for more returns fewer lines and tells you why, rather than handing back duplicates that fail on first use.
HOST:10000:USERNAME:PASSWORD
HOST:10001:USERNAME:PASSWORD
HOST:10002:USERNAME:PASSWORD
Country targeting
Append -country-XX to the username, using a two-letter code.
Combine it with a session if you want both.
USERNAME-country-us
USERNAME-country-gb-session-a1b2c3d4
If no device in that country is online, the connection is refused rather than silently served from elsewhere.
curl
curl -x socks5h://USERNAME:PASSWORD@HOST:1080 https://example.com
# country-targeted
curl -x socks5h://USERNAME-country-us:PASSWORD@HOST:1080 https://example.com
Use socks5h, not socks5 — the h
sends the hostname to the exit device instead of resolving it locally. Without
it your DNS leaks and the resolver location will not match the exit IP.
Python
import requests
proxy = "socks5h://USERNAME:PASSWORD@HOST:1080"
r = requests.get("https://api.ipify.org",
proxies={"http": proxy, "https": proxy})
print(r.text)
Requires pip install requests[socks].
Node.js
import { SocksProxyAgent } from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://USERNAME:PASSWORD@HOST:1080');
const res = await fetch('https://api.ipify.org', { agent });
console.log(await res.text());
Playwright
const browser = await chromium.launch({
proxy: {
server: 'socks5://HOST:1080',
username: 'USERNAME',
password: 'PASSWORD',
},
});
Browsers
Firefox supports SOCKS5 with authentication directly. Chrome and every Chromium browser do not — they silently drop the credentials. For those, run a local proxy that adds the credentials on the way out, or use a port-based endpoint with IP allowlisting.
HTTP API
Authenticate with your API key from the dashboard.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://HOST/api/buyer/overview
| Endpoint | Returns |
|---|---|
| GET /api/buyer/overview | Balance, usage, pool size |
| POST /api/buyer/endpoints | Generate an endpoint list |
| GET /api/buyer/usage | Daily traffic, last 30 days |
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"count":10,"country":"us","session":"ports","format":"list"}' \
https://HOST/api/buyer/endpoints
Limits & policy
- Unlimited concurrent connections and sticky sessions.
- Traffic never expires; there is no monthly minimum.
- Mail ports (25, 465, 587) are blocked. Residential exits are not for sending mail.
- Private address ranges are blocked — the network cannot reach anything on a supplier's local network.
- Every request is logged against the account that made it.
Requests are billed on bytes measured at our gateway, in both directions, for successful connections.