What Is a Sticky Session?
A sticky session keeps your requests on the same exit IP for a period of time instead of switching on every request. Pool providers build it from a session ID in the proxy username plus a timer, usually minutes and at most 24 hours. A dedicated line is sticky by default: its IP stays until you rotate it.
In brief
- On a pool, the same session ID sends requests to the same exit until the timer runs out, the session goes idle or the exit device disconnects.
- Documented ceilings, checked October 30, 2026: 24 hours at Oxylabs and Decodo, with a 10-minute default; Bright Data documents a 5-minute idle limit.
- The timer is a ceiling, not a promise. Residential and mobile exits can go offline early.
- On a dedicated line there is no session ID. The address stays until you rotate it, or until the carrier assigns a new one.
- Use sticky sessions for logins, carts and multi-step forms; rotate for broad collection with no login.
How sticky sessions work
Most pool products give you one gateway address. Each new connection to it is matched to an exit IP from the provider's network. Without extra instructions, the provider may pick a different exit every time.
A sticky session adds an instruction: keep everything with this label on one exit. The label is a session ID you choose, written into the proxy username. Bright Data's IP rotation documentation puts it plainly: requests carrying the same -session value are forwarded to the same proxy IP, and changing the value gets you a new one. Oxylabs and Decodo work the same way with their own parameter names.
Three things end a sticky session:
- The timer. The provider's default or the duration you set.
- Idle time. No requests for a while and the provider releases the exit.
- The exit disappearing. On residential and mobile pools the exit is a real device on someone's connection. When it goes offline the provider either moves you to a new IP silently or fails the request.
The term means something else in web hosting. On a load balancer, a sticky session keeps one visitor on the same backend server, usually with a cookie; AWS documents this for Application Load Balancers. Same idea, different layer: one keeps a server, the other keeps an exit IP.
Typical durations
| Provider | Default | Maximum | When the exit drops |
|---|---|---|---|
| Oxylabs | 10 minutes, or 60 seconds idle | 1440 minutes (sesstime) | New IP with sessid; HTTP 502 with sessid_oneip |
| Bright Data | Ends after 5 minutes idle | Not stated on the page | Same session value can land on a new IP |
| Decodo | Dashboard presets from 1 to 60 minutes | 1440 minutes (sessionduration) | May rotate before the set time |
| Dedicated mobile line | No timer; IP stays until rotated | Until you rotate or the carrier reassigns | Not applicable; the device is yours |
Session limits come from each provider's documentation. These were read on October 30, 2026; check the linked page before you build on a number.
- Oxylabs. Its session control page says a session lasts 10 minutes by default, or ends after 60 seconds without requests, whichever comes first. The
sesstimeparameter extends it up to 1440 minutes. Withsessid, a dropped exit is replaced automatically; withsessid_oneip, the request fails with a 502 instead. - Bright Data. The rotation page gives a 5-minute idle time: if more than 5 minutes pass between requests, the next one gets a random IP even with the same session value. Session IDs must be alphanumeric.
- Decodo. Its session types page offers 1, 10, 30 or 60 minutes from the dashboard and any whole number of minutes from 1 to 1440 through
sessionduration. It notes that the longer the session, the higher the chance it ends early, because the residential device behind it goes offline.
A useful reading of these numbers: the idle limit matters more than the maximum. A script that pauses for six minutes between steps loses a Bright Data session long before any 24-hour ceiling.
Dedicated line vs pool session
A pool session borrows an exit for a while. A dedicated line is the exit.
On a Coronium line, one physical device with its own SIM is rented to one customer. You connect to that line's own host and ports, over HTTP or SOCKS5. There is no session ID to manage and no idle timer: the carrier IP stays the same until you change it with the dashboard button, an API call, the rotation link or a timer you set, with at least 60 seconds between rotations. Some device types rotate on request only, and Brazil lines have no timer.
Two cautions that pool users rarely meet:
- The rotation link rotates on every GET request, including link previews. Do not paste it into chat apps or documents that fetch previews, or the IP will change when someone views the message.
- The carrier can still change the IP. Mobile networks reassign addresses when a device reconnects. A dedicated line is steady in normal operation, not frozen.
For longer account work, that difference is the point. A pool session of 30 minutes that may end early suits a checkout; a line that keeps its IP for days suits an account you log in to every morning.
Check that your session holds
Before trusting any session setting, measure it. This loop prints the exit IP once a minute for five minutes:
PROXY='http://USER:PASSWORD@HOST:PORT'
for i in 1 2 3 4 5; do
printf '%s ' "$(date +%T)"
curl -s -x "$PROXY" https://api.ipify.org
echo
sleep 60
done
The same address on every line means the session held. A change tells you the timer, the idle limit or the exit ended it. Run it once with your normal gap between requests: if your real job pauses for longer than the provider's idle limit, this is where you will see it.
If the password contains characters such as @ or :, percent-encode them in the URL; the proxy formats guide shows how. The commands on this page were run with curl 8.7.1 against a local test proxy.
When to use a sticky session
Keep one IP when the site connects your requests to each other:
- Logging in, then working inside the account.
- Carts, checkouts and payment steps.
- Multi-page forms and sign-up flows.
- Anything with a session cookie that the site checks against the IP.
Rotate when each request stands alone:
- Collecting public pages with no login.
- Spreading many small requests across addresses.
- Checking how a page looks from several locations.
If you need both, run two setups: a steady line for account work and rotation for collection. Mixing them on one account, so that it appears from a new IP every few minutes, is the pattern most sites read as automation.
Sources and review scope
Sources reviewed October 30, 2026. Standards, vendor documents and regulator pages were read on the date above. Where a page shows commands, they were run with curl 8.7.1 and Python Requests 2.32 against a local authenticated test proxy; addresses in the output are replaced with documentation ranges. Vendor parameters change, so confirm them in the vendor documentation linked here.
Frequently asked questions
More proxy questions
Short answers first, then the detail, with the standard or vendor document behind each claim.
Related workflows
Dedicated 4G and 5G carrier lines, with live stock and prices for each country and carrier.
When to keep one IP and when to rotate.
Rotation by button, API, link or timer on a dedicated line.
Rotation methods, timing and their trade-offs.
The gateway model behind most sticky sessions.
One device and one SIM per customer.
Short answers to common proxy questions.
Where to get a dedicated line
A Coronium mobile proxy is one physical device with its own SIM, rented to one customer. It connects over HTTP or SOCKS5, the IP changes by dashboard button, API link or timer, and data is not metered on dedicated lines. Brazil lines are the exception: 20 GB of data a month and a new IP on request only, with no timer. Stock and prices differ by country and carrier.