No KYC — no ID, no selfie, no documents · Pay in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Language: English
Buy with crypto

Guide · Proxy sessions

Rotating vs sticky proxies

What changes between a rotating proxy and a sticky session, why connection reuse matters, which session fits which task, and how to set both in the username with curl and Python.

Last updated: · 8 min read

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 sessionA new exit IP for each new connection; the default when the username has no session ID
Sticky sessionThe same exit IP for every connection that uses the same session ID, for up to 60 minutes
How to switchIn the username: add or remove -session-{id}-ttl-{minutes}
Username formatUSERNAME-country-{cc}-city-{city}-session-{id}-ttl-{minutes}
Extra costNone: both session types come with every residential pack
Dedicated 4G/5G portKeeps its IP until you rotate it by link, API or timer
PriceResidential from $0.53/GB; dedicated ports from $2.63/day
KYC and paymentNo 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.

Python: one IP per connection, not per request
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:

UsernameSessionWhat you get
USERNAME-country-keRotatingA new Kenyan exit for each new connection
USERNAME-country-ke-session-a1-ttl-10Sticky, 10 minThe same Kenyan exit for 10 minutes
USERNAME-country-ae-city-dubai-session-b2-ttl-30Sticky + city, 30 minThe same Dubai exit for 30 minutes
USERNAME-country-ae-city-dubai-session-b3-ttl-30New sticky sessionAnother 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.

TaskSessionWhy
Crawling many public product or listing pagesRotatingIndependent requests; load spread over many IPs
SERP checks at volumeRotatingEach query stands alone
Paginated results (page 1, 2, 3…)Sticky, a few minutesSome sites tie pagination to the visitor
Local price check in one citySticky + citySame exit while you read prices, stock and delivery
Testing a multi-step flow on your own siteStickyA changing IP mid-flow can reset the session
Ad verification per locationSticky per checkOne 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.

curl: rotating, then sticky
# 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.org
Python: one sticky session per worker
import 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)
  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.

From $0.53/GB · no KYC

Buy proxies