Session Types: Auto, Sticky & Smart
The three Proxio Residential rotation types explained, auto (fresh IP per request), sticky (hold one IP for 1 to 90 minutes) and smart (sticky plus connection retries), with the sessid/sesstime mechanics and exact retry rules.
Proxio Residential has exactly three rotation types, and you choose between them
purely by which username segments you append. There is no separate setting to flip:
add no session segments and you get auto; add a session and you get sticky; add a
session plus retries and you get smart.
| Type | IP behavior | Session segments | Retries | Best for |
|---|---|---|---|---|
auto | A fresh IP on every request | none | no | High-volume scraping, maximum IP diversity |
sticky | The same IP held for sesstime minutes | -sessid-…-sesstime-… | no | Logins, carts, any multi-step flow |
smart | Sticky plus automatic connection retries | -sessid-…-sesstime-…-retry-… | yes (1 to 5) | Flaky targets where you want built-in resilience |
Auto: rotate every request
The default. With no session segments, each request draws a new residential IP from the pool. Geo-targeting still works, so you can rotate through fresh IPs that all exit from the same country, state or city.
http://abcxyz123def-region-us:[email protected]:16666Use auto when every request is independent and you want the widest possible IP spread: price checks across many product pages, broad SERP sampling, general crawling.
Sticky: hold one IP
A sticky session pins a single exit IP so a sequence of requests all come from the same address. You create one by adding two segments:
-sessid-{sessionId}: an identifier you choose. It is a prefix (the dashboard default issession_) followed by random characters, for examplemyapp_9k2p7qz1m4vb1. Send the samesessidand you keep the same IP.-sesstime-{minutes}sets the session window. An integer from 1 to 90 minutes; the dashboard default is 10. Very long values may be capped by the gateway (currently at 60 minutes).
http://abcxyz123def-region-us-sessid-myapp_9k2p7qz1m4vb1-sesstime-30:[email protected]:16666The sesstime window is sliding: every request on the session extends it. So a
session you keep using stays on its IP, and it expires after sesstime minutes of
no traffic. Once it has expired, the next request on that sessid gets a new IP.
Two behaviors that surprise people:
- Changing geo does not change the session. The session is keyed by
sessidalone, so reusing the samesessidwith different-region-/-st-/-city-values keeps returning the same pinned IP. To actually move, start a newsessid. - A session can still rotate early. Sticky pins are best-effort: an exit going offline, or infrastructure-level rebalancing, can land a session on a new IP before its window is up. Design flows to tolerate a rare mid-session change.
Keep the session prefix clean
The prefix in your sessionId must contain only letters, numbers and underscore.
A dash inside it will corrupt parsing, because dashes separate every segment of the
username. myapp_ is fine; my-app- is not.
Forcing a new IP
You have two ways to drop a sticky IP before its timer runs out:
- Change the
sessid. A new session identifier is a new session, so it lands on a new IP immediately. - Rotate from the dashboard. Open your Residential service's Sub-users tab, where each credential's active sticky sessions are listed. From there you can rotate one session, rotate all of them, or drop a session entirely.
Smart: sticky with connection retries
Smart rotation is a sticky session with an automatic retry layer, for targets that occasionally refuse a connection. You add it on top of a session:
-retry-{N}is the number of extra connection attempts, from 1 to 5.-retryrotate-1pulls a fresh IP on each retry. By default a retry already rotates the IP; this flag is the explicit form of that behavior.
-retry- does not actually require a session: the gateway accepts it on its
own, and sessionless attempts simply dial a fresh IP each time. Some built-in
presets use exactly that combination for
scraping workloads.
http://abcxyz123def-region-us-sessid-myapp_9k2p7qz1m4vb1-sesstime-15-retry-3-retryrotate-1:[email protected]:16666What actually gets retried
The retry rules are deliberately narrow:
- Retries cover only connection-level failures: a failed TCP dial, a CONNECT
timeout, or a
502/503/504from the upstream. - Content responses are never retried. A
403(or any other status the destination actually returns) is passed straight back to you, unchanged. - Failed attempts transfer no data, so they never count against your bandwidth quota. You are only billed for the attempt that succeeds.
Retries are not a block-bypass
Because a 403 is a real answer from the site, smart retry will not paper over blocks. It is for transient connection problems, not for content that refuses you.
Which one should you use?
| Your goal | Type | Why |
|---|---|---|
| Scrape many independent pages fast | auto | Every request gets a fresh IP; no state to manage. |
| Log in, add to cart, check out | sticky | The site sees one consistent IP across the flow. |
| Long forms, surveys, sign-ups | sticky (up to 90 min) | Hold the IP for the whole multi-minute session. |
| Hit an unreliable endpoint | smart | Connection failures retry automatically without burning quota. |
Not sure where to start? The Rotation Presets bundle
sensible combinations of type, sesstime, retries and protocol for common jobs.
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.
Rotation Presets
Proxio ships six built-in rotation presets that bundle a rotation type, session length, retry policy, protocol and geo scope for common jobs, and you can save up to 50 private presets of your own.

