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.
socks5h://USER:[email protected]:1080http://USER:[email protected]:8080Username 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| Parameter | Values | Meaning |
|---|---|---|
country | ISO code, e.g. tr, us, de | Exit from this country. Omit for any available country. |
type | residential | mobile | Network type. Omitted means residential. Mobile is billed at the mobile price. |
session | letters and digits | Sticky session: the same exit for every connection with this id. Omit to rotate. |
ttl | 1m – 60m (default 10m) | How long a sticky session is kept after its last use. |
<alias> | 12 characters | Pin 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 -x 'socks5h://USER-country-tr-type-residential:[email protected]:1080' 'https://api.ipify.org?format=json'curl -x 'http://USER-country-tr-type-residential:[email protected]:8080' 'https://api.ipify.org?format=json'# 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())// 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:
| Condition | HTTP proxy | SOCKS5 |
|---|---|---|
| Wrong username or password | 407 Proxy Authentication Required | Authentication failure |
| Balance is zero | 402 Payment Required | Authentication failure |
| Your IP is not in the allowlist | 407 Proxy Authentication Required | Authentication failure |
| Account suspended | 407 Proxy Authentication Required | Authentication failure |
| Too many open connections | 429 Too Many Requests | Reply 0x02 (not allowed) |
| No exit online for the filters | 503 Service Unavailable | Connection 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.