Skip to content

Documentation

Everything you need to connect, target and debug.

Connecting

Use the proxy username and password from your dashboard. They are separate from your account login. Use socks5h (not socks5) so the hostname is resolved at the exit and DNS matches the exit country.

SOCKS5
socks5h://USER:[email protected]:1080
HTTP(S) — CONNECT for HTTPS
http://USER:[email protected]:8080

Username parameters

Targeting is written into the username as key-value pairs separated by dashes, after your proxy username. The password never changes.

USER-country-tr-type-mobile-session-a1b2c3d4-ttl-30m
ParameterValuesMeaning
countryISO code, e.g. tr, us, deExit from this country. Omit for any available country.
typeresidential | mobileNetwork type. Omitted means residential. Mobile is billed at the mobile price.
sessionletters and digitsSticky session: the same exit for every connection with this id. Omit to rotate.
ttl1m – 60m (default 10m)How long a sticky session is kept after its last use.
<alias>12 charactersPin one specific exit device (an alias from a previous response).

Sticky sessions are best effort: exits are real devices, and when one goes offline the session moves to a new exit with the same filters.

Examples

Replace USER with your proxy username.

  • Any residential exit, rotating
    USER
  • Residential in Turkey, rotating
    USER-country-tr-type-residential
  • Mobile in Turkey, rotating
    USER-country-tr-type-mobile
  • Sticky residential IP for 30 minutes
    USER-country-us-type-residential-session-a1b2c3d4-ttl-30m

Code samples

curl · SOCKS5
curl -x 'socks5h://USER-country-tr-type-residential:[email protected]:1080' 'https://api.ipify.org?format=json'
curl · HTTP
curl -x 'http://USER-country-tr-type-residential:[email protected]:8080' 'https://api.ipify.org?format=json'
Python · requests
# pip install "requests[socks]"
import requests

proxy = "socks5h://USER-country-tr-type-residential:[email protected]:1080"
proxies = {"http": proxy, "https": proxy}

r = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(r.json())
Node.js · undici
// npm install undici
import { ProxyAgent, fetch } from 'undici';

const agent = new ProxyAgent('http://USER-country-tr-type-residential:[email protected]:8080');
const res = await fetch('https://api.ipify.org?format=json', { dispatcher: agent });
console.log(await res.json());

Errors

What a refused connection looks like on each protocol:

ConditionHTTP proxySOCKS5
Wrong username or password407 Proxy Authentication RequiredAuthentication failure
Balance is zero402 Payment RequiredAuthentication failure
Your IP is not in the allowlist407 Proxy Authentication RequiredAuthentication failure
Account suspended407 Proxy Authentication RequiredAuthentication failure
Too many open connections429 Too Many RequestsReply 0x02 (not allowed)
No exit online for the filters503 Service UnavailableConnection failure (general failure reply)

An account that runs out of balance mid-transfer has its open tunnels closed. A malformed username is reported as an authentication failure.

IP allowlist

In Settings you can list up to 20 IPv4 or IPv6 addresses. When the list is not empty, the proxy only accepts your credentials from those addresses. Changes reach the gateway within about 15 seconds.

How bytes are billed

  • Both directions are counted: bytes you send plus bytes you receive.
  • 1 GB = 1,000,000,000 bytes (decimal, not 1,073,741,824).
  • Mobile traffic is billed at the mobile price, everything else at the residential price.
  • Usage is deducted from your balance as it happens; the dashboard shows it per day.