Sticky Sessions: How to Hold and Manually Rotate Your Exit IP

Sticky Sessions & Manual Rotation

What Are Sticky Sessions?

When you use the proxy rotator normally, each request may exit through a different proxy IP. This is called rotation - your traffic appears to come from different locations.

Sticky sessions let you "stick" to the same exit IP across multiple requests. Think of it like reserving a specific proxy just for your session.

Normal rotation (default):
  Request 1 → Proxy A → Exit IP: 1.2.3.4
  Request 2 → Proxy C → Exit IP: 5.6.7.8
  Request 3 → Proxy B → Exit IP: 9.10.11.12

With sticky session:
  Request 1 → Proxy A → Exit IP: 1.2.3.4
  Request 2 → Proxy A → Exit IP: 1.2.3.4  ← same IP
  Request 3 → Proxy A → Exit IP: 1.2.3.4  ← same IP

When Do You Need Sticky Sessions?

  • Login sessions - Websites that check if your IP changes mid-session
  • Multi-step workflows - Shopping carts, form submissions, checkout flows
  • API rate limits - When you need consistent identity for rate limit tracking
  • Scraping sequences - When you need to maintain state across page navigations

How to Use Sticky Sessions

For Username/Password Authentication

Simply add -session- followed by any identifier to your username:

# Format: username-session-YOURID:password

# Example: Create a session called "mysession"
curl -x "john-session-mysession:password123@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com

# Every request with "john-session-mysession" uses the same exit IP
curl -x "john-session-mysession:password123@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com
curl -x "john-session-mysession:password123@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com

For IP-Based Authentication (Hybrid Auth Mode)

If you use IP-based authentication (no username/password required), you can still get sticky sessions using Hybrid Auth Mode - send a session ID in the username with an empty password:

# Format: -session-YOURID:
# Note the colon with nothing after it (empty password)

# Example with curl's -U flag
curl -U "-session-mysession:" -x "cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com

# Or with the full proxy URL format
curl -x "http://-session-mysession:@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com

How it works:

  1. Your IP is still used for authentication (must be whitelisted)
  2. The session ID is extracted from the username
  3. The empty password tells the proxy to skip password verification

This works for both HTTP and HTTPS requests.

What Is Manual Rotation?

Manual rotation means you control when to get a new IP, rather than getting a random one each request.

With sticky sessions, you keep the same IP until you decide to change it. To rotate (get a new IP), simply use a different session ID:

# Session "v1" - assigned to Proxy A (1.2.3.4)
curl -x "john-session-task1-v1:pass@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com
# Output: 1.2.3.4

# Still using "v1" - same IP
curl -x "john-session-task1-v1:pass@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com
# Output: 1.2.3.4

# NOW ROTATE: Switch to "v2" - gets assigned to different proxy
curl -x "john-session-task1-v2:pass@cld-us-xxxx.tp-ns.com:80" https://checkip.amazonaws.com
# Output: 5.6.7.8 ← new IP!

💡 Key insight: The session ID is just a string you control. Change the string, get a new IP assignment.

Session Expiration

Sessions automatically expire after 24 hours of inactivity.

  • Inactivity means no requests using that session ID
  • Each request resets the 24-hour timer
  • Active sessions never expire
10:00 - Create session "mysession" (expires tomorrow at 10:00)
14:00 - Make a request (timer resets, now expires tomorrow at 14:00)
14:01 - Make another request (timer resets again)
...
If you stop making requests for 24 hours → session expires

Keeping Sessions Alive

If you need a session to last longer than 24 hours, just make periodic requests:

# Simple keepalive - run every few hours
curl -x "john-session-mysession:pass@cld-us-xxxx.tp-ns.com:80" -s https://checkip.amazonaws.com > /dev/null

Quick Reference

Task How to Do It
Create a sticky session Add -session-YOURID to username
Keep the same IP Use the same session ID
Get a new IP (rotate) Use a different session ID
Keep session alive Make requests within 24 hours
IP auth with session Use -session-YOURID: (empty password)

Examples

Python

import requests

# With username/password authentication
PROXY = "http://john-session-mysession:password123@cld-us-xxxx.tp-ns.com:80"

# All requests use the same exit IP
for i in range(5):
    response = requests.get("https://checkip.amazonaws.com", proxies={"http": PROXY, "https": PROXY})
    print(f"Request {i+1}: {response.text.strip()}")

With IP-based authentication (Hybrid Auth Mode):

import requests

# IP auth with session ID - note the empty password after the colon
PROXY = "http://-session-mysession:@cld-us-xxxx.tp-ns.com:80"

for i in range(5):
    response = requests.get("https://checkip.amazonaws.com", proxies={"http": PROXY, "https": PROXY})
    print(f"Request {i+1}: {response.text.strip()}")

Node.js

const axios = require("axios");
const HttpsProxyAgent = require("https-proxy-agent");

// With username/password authentication
const agent = new HttpsProxyAgent(
  "http://john-session-mysession:password123@cld-us-xxxx.tp-ns.com:80"
);

// All requests use the same exit IP
for (let i = 0; i < 5; i++) {
  const response = await axios.get("https://checkip.amazonaws.com", {
    httpsAgent: agent,
  });
  console.log(`Request ${i + 1}: ${response.data.trim()}`);
}

With IP-based authentication (Hybrid Auth Mode):

const axios = require("axios");
const HttpsProxyAgent = require("https-proxy-agent");

// IP auth with session ID - note the empty password (nothing after colon)
const agent = new HttpsProxyAgent(
  "http://-session-mysession:@cld-us-xxxx.tp-ns.com:80"
);

for (let i = 0; i < 5; i++) {
  const response = await axios.get("https://checkip.amazonaws.com", {
    httpsAgent: agent,
  });
  console.log(`Request ${i + 1}: ${response.data.trim()}`);
}

Manual Rotation Example

import requests

def get_proxy(session_id):
    return f"http://john-session-{session_id}:password123@cld-us-xxxx.tp-ns.com:80"

# Use session v1
proxy_v1 = get_proxy("task-v1")
print(requests.get("https://checkip.amazonaws.com", proxies={"http": proxy_v1, "https": proxy_v1}).text.strip())
# Output: 1.2.3.4

# Rotate to v2 when needed
proxy_v2 = get_proxy("task-v2")
print(requests.get("https://checkip.amazonaws.com", proxies={"http": proxy_v2, "https": proxy_v2}).text.strip())
# Output: 5.6.7.8

Common Questions

Q: How many sticky sessions can I have?

A: Unlimited. Create as many session IDs as you need.

Q: What if my assigned proxy goes down?

A: The proxy rotator automatically assigns you a new healthy proxy. Your session continues working, just with a different IP.

Q: Do sessions survive proxy server restarts?

A: No. Sessions are stored in memory on the rotating proxy server. In the rare event of a server restart, your next request will automatically get a new proxy assignment.

Q: Can I choose which specific IP I get?

A: No. The proxy rotator assigns a proxy from the pool automatically. You control when to rotate, not which IP you get.

Q: I use IP-based authentication. Can I still use sticky sessions?

A: Yes! Use Hybrid Auth Mode - send a session ID in the username with an empty password: -session-YOURID:. Your IP is still used for authentication, but you get the session stickiness. See the "For IP-Based Authentication" section above.

  • rotating, setup, sticky-session, sticky session, manual rotation, ip rotation
  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

Proxy Server Cloud Software Settings

Our required software settings for using The Cloud with all custom software: URLs Use HTTPS, not...

Why do you include Search Engine GETs with the Proxy Server Cloud when The Cloud can't be used for Search Engines?

The Proxy Server Cloud is our high-speed solution designed for white-hat, competitive research...

Rotating Proxy Servers Software Settings

Required Software Settings for Using Rotating Proxy Servers with Custom Software   User Agents...