Quick answer
Rotating vs sticky proxies: what is the difference?
Rotating vs sticky proxies: a rotating proxy gives each new connection a different exit IP, while a sticky proxy keeps one IP for a set time; Nameless Proxy includes both in every residential pack, from $0.53/GB, with no KYC and payment in crypto. Use rotating for many independent requests, and sticky sessions for up to 60 minutes for multi-page flows. No KYC — no ID, no selfie, no documents. Pay in crypto.
Rotating vs sticky at a glance
| Rotating session | A new exit IP for each new connection; the default when the username has no session ID |
|---|---|
| Sticky session | The same exit IP for every connection that uses the same session ID, for up to 60 minutes |
| How to switch | In the username: add or remove -session-{id}-ttl-{minutes} |
| Username format | USERNAME-country-{cc}-city-{city}-session-{id}-ttl-{minutes} |
| Extra cost | None: both session types come with every residential pack |
| Dedicated 4G/5G port | Keeps its IP until you rotate it by link, API or timer |
| Price | Residential from $0.53/GB; dedicated ports from $2.63/day |
| KYC and payment | No KYC; crypto only (BTC, USDT, USDC, ETH, SOL, LTC) |
What is a rotating proxy?
A rotating proxy is a proxy endpoint that sends each new connection out through a different IP address from a pool. You keep one host, one port and one set of credentials; the gateway changes the exit for you.
The point is spread. A thousand requests that come from a thousand household IPs look like a thousand visitors, not one server, and no single IP carries much load. That suits jobs made of independent requests, where no request depends on the one before.
How do rotating proxies work?
The gateway picks a new exit each time your client opens a new connection. At Nameless Proxy, a username without a session ID, such as USERNAME-country-ma, means "any exit in Morocco, new for each connection".
The detail that trips people up is the word connection. Most HTTP clients keep a connection open and reuse it for several requests (keep-alive). For HTTPS, the proxy carries each connection inside one CONNECT tunnel (RFC 9110), so every request in that tunnel leaves from the same exit. A requests.Session in Python, or a browser tab, can therefore stay on one IP until the connection closes.
import requests
proxy = "http://USERNAME-country-ma:[email protected]:7777"
proxies = {"http": proxy, "https": proxy}
# New connection for each call: a different exit IP each time
for _ in range(3):
print(requests.get("https://api.ipify.org", proxies=proxies, timeout=30).text)
# One Session reuses its connection: usually the same exit IP
with requests.Session() as s:
s.proxies.update(proxies)
for _ in range(3):
print(s.get("https://api.ipify.org", timeout=30).text)What is a sticky session?
A sticky session keeps the same exit IP across separate connections, for as long as you ask. You create one by adding a session ID and a length in minutes to the username: every connection that uses the same ID leaves from the same exit.
At Nameless Proxy a sticky session lasts for up to 60 minutes. The ID is any short string of letters and digits that you choose, such as cart42. Start a new ID whenever you want a new IP.
One honest limit: residential exits are real home connections. A device can go offline, and then the session moves to another exit before its time is up. Long flows need retries.
What is a sticky residential proxy?
A sticky residential proxy is a residential proxy used with a sticky session: the same household IP for a set time, instead of a new one per connection. It combines the trust of a home IP with the stability that multi-step flows need. These examples all use the same residential pack:
| Username | Session | What you get |
|---|---|---|
USERNAME-country-ke | Rotating | A new Kenyan exit for each new connection |
USERNAME-country-ke-session-a1-ttl-10 | Sticky, 10 min | The same Kenyan exit for 10 minutes |
USERNAME-country-ae-city-dubai-session-b2-ttl-30 | Sticky + city, 30 min | The same Dubai exit for 30 minutes |
USERNAME-country-ae-city-dubai-session-b3-ttl-30 | New sticky session | Another Dubai exit, kept for 30 minutes |
City availability changes during the day and is shown in the dashboard. Targeting stops at the city: no ASN, ISP or ZIP-code targeting.
Rotating or sticky: which should I use?
Ask one question: does the next request depend on the IP of the previous one? If not, rotate. If it does, stay sticky for as long as the flow lasts, and no longer.
| Task | Session | Why |
|---|---|---|
| Crawling many public product or listing pages | Rotating | Independent requests; load spread over many IPs |
| SERP checks at volume | Rotating | Each query stands alone |
| Paginated results (page 1, 2, 3…) | Sticky, a few minutes | Some sites tie pagination to the visitor |
| Local price check in one city | Sticky + city | Same exit while you read prices, stock and delivery |
| Testing a multi-step flow on your own site | Sticky | A changing IP mid-flow can reset the session |
| Ad verification per location | Sticky per check | One stable view of each landing page |
What does a mixed setup look like in practice?
Most real projects use both session types at once. Take a team that monitors public prices for one product range in three cities:
- Discovery runs rotating. A crawler walks thousands of public category and product URLs, with a new exit for each connection, so no single household carries the load.
- Each city check runs sticky. For each city, one worker opens a 10-minute sticky session with city targeting and reads the product page, the delivery estimate and the stock line from the same IP, so the three answers belong together.
- Failures restart cleanly. If a sticky exit drops, the worker starts a new session ID and repeats that city's check, instead of mixing two IPs in one record.
One pack and one password cover all of it: only the username changes.
How do I set rotating or sticky sessions?
Everything happens in the proxy username, so you can mix both session types with one pack and one password. The format is USERNAME-country-{cc}-city-{city}-session-{id}-ttl-{minutes}; leave out the session part to rotate.
# Rotating: each run gets a new exit in Morocco
curl -x http://USERNAME-country-ma:[email protected]:7777 https://api.ipify.org
# Sticky: the same exit for 15 minutes, as long as you reuse session "job7"
curl -x http://USERNAME-country-ma-session-job7-ttl-15:[email protected]:7777 https://api.ipify.orgimport uuid
import requests
GATEWAY = "gw.namelessproxy.com:7777"
def proxies(country, sticky_minutes=None):
user = f"USERNAME-country-{country}"
if sticky_minutes: # a fresh session ID = a fresh exit IP
user += f"-session-{uuid.uuid4().hex[:10]}-ttl-{sticky_minutes}"
url = f"http://{user}:PASSWORD@{GATEWAY}"
return {"http": url, "https": url}
# Each worker keeps its own exit for 20 minutes
worker_proxies = [proxies("za", sticky_minutes=20) for _ in range(4)]
for p in worker_proxies:
print(requests.get("https://api.ipify.org", proxies=p, timeout=30).text)More patterns for requests, httpx, aiohttp and Scrapy: Python proxy guide. First connection and error codes: quick-start guide.
What about mobile proxies: rotating or sticky?
A dedicated 4G/5G port works like a long sticky session that you control: it keeps its carrier IP until you rotate it, by link, by API or on a timer, or until the carrier reassigns it. A new IP takes about 5–15 seconds, at most once per 30 seconds per port. Scripts: how to rotate a mobile IP.
Rotating mobile traffic, billed per GB from $1.50/GB, is the rotating option: the pool changes the carrier IP for you, with country targeting.
Which mistakes should I avoid?
- Assuming rotation per request. With keep-alive, rotation happens per connection. Close connections if you need a new IP each time.
- Sharing one session ID across workers. Every worker then leaves from the same IP. Give each worker its own ID.
- Asking for longer sessions than you need. A shorter session loses less when a home exit drops.
- Rotating in the middle of a flow. A new IP halfway through a multi-step form on your own site can reset it.
- No retries. Exits are real devices; retry with backoff and a new session ID.
- Ignoring the rules. Sessions do not change the Acceptable Use Policy: fake accounts, ban evasion and credential stuffing are banned.
Rotating vs sticky proxies: FAQ
Is rotating or sticky better for web scraping?
Rotating, for most scraping of public pages: each request is independent, and the load spreads over many IPs. Switch to short sticky sessions only where a site ties pagination, filters or a cart to the visitor. Pace your requests either way; see web scraping.
How long does a sticky session last?
At Nameless Proxy, for up to 60 minutes. You set the length in minutes with the ttl part of the username, for example -session-cart42-ttl-30. Reuse the same session ID to keep the IP; use a new ID to get a new one.
Why does my rotating proxy keep the same IP?
Because your client reuses one connection. Rotation happens per new connection, and HTTP keep-alive or a session object keeps the same tunnel open for many requests. Open a new connection per request, or send Connection: close, if you want a new exit each time.
Does a sticky session guarantee the same IP for the full time?
No. It keeps the same exit while that exit stays online. Residential exits are real home connections and can drop early; the session then continues on another exit. Build retries into long flows, and keep sessions as short as the task allows.
Can two scripts share one sticky session?
Yes: any connection that uses the same session ID leaves from the same exit IP. That is useful when two steps of one flow must share an IP. For independent workers, give each its own ID, so they do not all load the same household connection.
Do sticky sessions or city targeting cost extra?
No. Every residential pack includes rotating and sticky sessions, country and city targeting, HTTP, HTTPS and SOCKS5. Traffic is billed per GB, from $0.53/GB, and never expires. Changing the session or the targeting needs no new purchase, because it all happens in the username. See the pricing page.
How do I end a sticky session early?
Change the session ID in the username. The next connection with the new ID gets a new exit IP, and the old session simply expires at the end of its time. There is nothing to call or cancel. If several workers shared the old ID, give each of them a new one, or they keep using the old exit.
Sources (1)
- RFC 9110 §9.3.6: CONNECT — IETF (June 2022)
Rotating and sticky, in every pack
Residential from $0.53/GB, traffic never expires. No KYC — no ID, no selfie, no documents. Pay in crypto.