Targeting & Username Syntax
The master reference for Proxio Residential proxies, covering how the user:pass@host:port connection string works and how to chain country, state, city, sticky-session and smart-retry parameters directly inside the username.
Everything you control on a Proxio Residential proxy (the exit country, the state, the city, whether you hold one IP or rotate every request, how aggressively a connection retries) is expressed in one place: the username. There are no extra headers, no query strings, and no separate API to call. You build a username, send it as normal proxy Basic auth, and the gateway does the rest.
This page is about Residential proxies
Username targeting applies to the Residential pool served through the
geo.proxio.cc:16666 gateway. ISP and Datacenter proxies are dedicated IPs with
their own host, port and credentials and do not use username parameters. See
ISP & Datacenter Proxies.
The connection string
Every request is routed through a standard proxy URL:
http://USERNAME:[email protected]:16666It breaks down into five parts:
| Part | Example | What it is |
|---|---|---|
| Scheme | http:// | http:// / https:// for the HTTP proxy, or socks5h:// for SOCKS5. See Protocols & Ports. |
| Username | abcxyz123def | Your credential's username plus any targeting segments you append. |
| Password | PASSWORD | Your credential's password, exactly as shown in the dashboard. |
| Host | geo.proxio.cc | The single Residential gateway hostname. |
| Port | 16666 | The single gateway port (HTTP/HTTPS and SOCKS5 share it). |
The simplest possible request uses the bare username with no targeting, so you get a fresh residential IP from the global pool on every request:
curl -x http://abcxyz123def:[email protected]:16666 https://ipinfo.ioWhere credentials come from
Your username is a 12-character random lowercase-alphanumeric string generated in
the dashboard (for example abcxyz123def), and the password is shown alongside it.
Open your Residential service's Sub-users tab to view or reset them.
The username grammar
To target a location or hold a session, you append hyphen-delimited segments to your base username. The full grammar is:
{base}[-region-{country}][-st-{state}][-city-{city}][-sessid-{sessionId}-sesstime-{minutes}[-retry-{N}[-retryrotate-1]]]Every segment in square brackets is optional. The gateway reads them as key/value
pairs, so their order does not technically matter; still, write them in the order
above so usernames stay readable and match every example in these docs. What does
matter is the geo hierarchy (country before state, state before city) and pairing
sessid with sesstime.
| Segment | Example | Meaning | Constraints |
|---|---|---|---|
{base} | abcxyz123def | Your credential's username. | Generated for you; lowercase letters and digits. |
-region-{country} | -region-us | Exit country. | 2-letter country code from the dashboard list; slugged. |
-st-{state} | -st-california | Exit state or province. | Requires a country. Slugged. |
-city-{city} | -city-losangeles | Exit city. | Requires a state. Slugged. |
-sessid-{sessionId} | -sessid-myapp_9k2p7q | Pins one exit IP (a sticky session). | Prefix must be letters, numbers or underscore only. Pair with sesstime. |
-sesstime-{minutes} | -sesstime-15 | The session window, in minutes. It slides: the session expires after this long without traffic. | Integer 1 to 90. Dashboard default 10. Very long values may be capped by the gateway (currently 60). |
-retry-{N} | -retry-3 | Extra connection retries (smart rotation). | N is 1 to 5. Works with or without a session. |
-retryrotate-1 | -retryrotate-1 | Pull a fresh IP on each retry. | Optional flag; pairs with -retry-. |
Watch out at these points
State requires a country; city requires a state
-st- is only valid when you have already set -region-, and -city- is only
valid when you have already set -st-. Appending a city without its parent state
(or a state without its country) will not target where you expect.
Typos fail silently
The gateway ignores any segment key it does not recognize instead of returning an
error. A typo like -regoin-us or an uppercase key like -Region-us simply
vanishes: the request succeeds, but from a random location. If your targeting
seems to be ignored, check the segment spelling first (keys are lowercase:
region, st, city, sessid, sesstime, retry, retryrotate).
Session prefixes: letters, numbers and underscore only
The sessionId is your own prefix plus random characters. Keep the prefix to
a-z, A-Z, 0-9 and _. A dash inside your prefix corrupts parsing,
because dashes are how the gateway separates every segment of the username.
Geo values are slugged
Country, state and city values are lowercased with everything outside a-z0-9
stripped out. New York becomes newyork; Winston-Salem becomes
winstonsalem. Full rules and a conversion table live on
Geo-Targeting.
Worked examples
Each example builds on the one before it. abcxyz123def is the base username and
PASSWORD is the credential password.
1. Bare, a fresh IP every request (auto rotation).
http://abcxyz123def:[email protected]:166662. Add a country to exit from the United States.
http://abcxyz123def-region-us:[email protected]:166663. Add state and city to exit from Los Angeles, California.
http://abcxyz123def-region-us-st-california-city-losangeles:[email protected]:166664. Hold a sticky session: the same Los Angeles IP for 15 minutes.
http://abcxyz123def-region-us-st-california-city-losangeles-sessid-myapp_9k2p7qz1m4vb1-sesstime-15:[email protected]:166665. Smart rotation: sticky, plus up to 3 connection retries that each rotate the IP.
http://abcxyz123def-region-us-sessid-myapp_9k2p7qz1m4vb1-sesstime-15-retry-3-retryrotate-1:[email protected]:16666Putting it in a request
Drop the full username into any HTTP client. This example targets the United States
and verifies the exit IP against ipinfo.io:
curl -x "http://abcxyz123def-region-us:[email protected]:16666" https://ipinfo.ioimport requests
proxy = "http://abcxyz123def-region-us:[email protected]:16666"
r = requests.get("https://ipinfo.io", proxies={"http": proxy, "https": proxy})
print(r.json())import { ProxyAgent } from "undici";
const proxyAuth = Buffer.from("abcxyz123def-region-us:PASSWORD").toString("base64");
const dispatcher = new ProxyAgent({
uri: "http://geo.proxio.cc:16666",
token: `Basic ${proxyAuth}`,
});
const res = await fetch("https://ipinfo.io", { dispatcher });
console.log(await res.json());Keep going
Geo-Targeting
Country, state and city parameters in depth, with the full slugging rules.
Session Types
Auto, sticky and smart rotation, with TTLs, retry semantics and when to use each.
Rotation Presets
Six built-in presets and how to save up to 50 of your own.
Protocols & Ports
HTTP/HTTPS and SOCKS5 on one endpoint, plus the socks5h:// DNS note.
IP Authentication
Passwordless access by whitelisting the source IPs you control.
ISP & Datacenter
Dedicated IPs for flat-rate, unlimited-bandwidth workloads.
Choosing Your Setup
A decision guide for residential proxies that helps you pick a rotation type, a geo scope, and a protocol, or start from a built-in preset or the dashboard's Proxy Advisor.
Geo-Targeting: Country, State & City
How to pin a Proxio Residential exit to a country, state or city using the -region-, -st- and -city- username segments, including the exact slugging rules and where to find the live location list.

