Rotating residential proxies · measured
Rotating residential proxies: what rotation actually does
Every provider promises a new IP on every request. We sent a hundred requests through each one and wrote down every address that came back: how many were different, how many networks and carriers they came from, and whether a sticky session really holds. The answers are not the same for all three.
Latest run
- Tested
- 10 Sep 2026
- Targets
- 9real sites
- Providers
- 3+ datacenter baseline
- Baseline pass rate
- 15 / 45no proxy
Quick answer · 11 Sep 2026
What 100 consecutive requests through each rotating residential proxy actually returned, ranked by how many separate networks the addresses came from rather than by the raw count of addresses:
- Oxylabs 100/100 unique addresses · 99 networks · 15 carriers in a 40-address sample · no address repeated Sticky sessions held for all 10 test requests.
- Decodo 99/99 unique addresses · 99 networks · 17 carriers in a 40-address sample · no address repeated Sticky sessions held for all 10 test requests.
- SOAX 99/99 unique addresses · 99 networks · 24 carriers in a 40-address sample · no address repeated
Rotation is the easy part and every provider here does it. What separates them is network spread: a blocking system acts on a network or a carrier, not on one address, so a hundred addresses drawn from a handful of networks is weaker than the same hundred spread across many. Pass rates against real sites are on the front page.
100 requests per provider
How many different addresses you actually get
Each request asks one thing: what address does the internet see. Nothing else is loaded, so the whole test costs a few kilobytes. Unique exit IPs is the headline number. Distinct networks and carriers matter more, because a target site that blocks you blocks a network, not a single address.
| Provider | Unique exit IPs | Distinct /24 networks | Carriers in sample | First repeat at request | Longest identical run | Sticky session |
|---|---|---|---|---|---|---|
![]() | 99 | 15 / 40 | no repeat | 1 | held 10/10 | |
![]() | 99 | 17 / 40 | no repeat | 1 | held 10/10 | |
![]() | 99 | 24 / 40 | no repeat | 1 | not confirmed |
First repeat is the request number where an address appeared for the second time. Longest identical run is how many requests in a row came from the same address. Carriers are looked up for the first 40 unique addresses of each provider, because the lookup service is rate limited; the share shown is of that sample, not of the whole pool.
Two things this run could not settle, and both are on the page because leaving them out would be the dishonest choice. SOAX rejected every sticky-session syntax we tried, five variants, with an authentication error rather than a session; the product documents sticky sessions, so the parameter form for this account type is something we have not got right yet, and the table says “not confirmed” rather than “does not work”. And the carrier and country figures come from the first 40 unique addresses of each provider, not all 100, because the lookup service is rate limited. In Decodo’s sample one address resolved to Canada although the request asked for the United States, which is worth knowing if your target prices by country.
Whose connections
The networks behind the addresses
A residential pool is made of other people’s home and mobile connections. These are the carriers our requests came out of, in the order of how often they appeared.
15 carriers in 40 addresses- Comcast Cable Communications, LLC25%
- Charter Communications Inc15%
- Verizon Business13%
- AT&T Enterprises, LLC10%
- Cox Communications Inc.5%
- Charter Communications LLC5%
17 carriers in 40 addresses- AT&T Enterprises, LLC25%
- Comcast Cable Communications, LLC25%
- Cox Communications Inc.8%
- Charter Communications Inc5%
- T-Mobile USA, Inc.5%
- Verizon Business5%
24 carriers in 40 addresses- Comcast Cable Communications, LLC23%
- T-Mobile USA, Inc.8%
- Cablevision Systems Corp.8%
- Verizon Business8%
- AT&T Enterprises, LLC5%
- Vexus Fiber5%
Sticky sessions
When you need the address to stay put
Rotation is wrong for anything with a session: a login, a cart, a paginated result set, a checkout. Every provider sells a way to pin the address, and every provider uses a different syntax for it.
Ten requests with the same session identifier in the username, asking for a ten-minute session. If all ten come back with the same address, the session holds. The result is in the last column of the table above.
The session is set by adding parameters to the proxy username, not by a separate setting. Providers change the format, and a wrong format fails as an authentication error rather than falling back to rotation. That is the good outcome: you find out immediately.
The requested duration is a maximum, not a guarantee. A residential address belongs to a real person whose connection can drop at any moment, so a session can end early. Code for it: treat a changed address as normal and retry the step, do not assume the session survived.
Use rotating for collecting public pages, sticky for anything that carries state. Mixing them in one scraper is fine and normal: two proxy URLs, one per job.
What it means for scraping
Reading these numbers before you buy
- Unique addresses is the easy number to win. A pool that gives a fresh address every request looks perfect on paper. It says nothing about whether those addresses are trusted, which is what the pass-rate test measures.
- Network spread is what a defence sees. Blocking systems act on a network, an autonomous system, sometimes a whole carrier. A hundred addresses from three networks is far weaker than a hundred addresses from ninety, even though both look like perfect rotation.
- Mobile carriers cut both ways. An address behind a mobile carrier is shared by thousands of real phones, so it is expensive to block and rarely blocked. It is also slower and more likely to be rate limited by the target.
- No repeat in a hundred requests is not a pool size. It means the pool is larger than a hundred, nothing more. Providers who publish pool sizes are publishing a claim, and we print it as a claim.
- Rotation does not fix a browser problem. Four of the nine sites in our main test block every request from every provider, because they detect the missing browser, not the address. No amount of rotation changes that.
Providers
Prices and terms for rotating residential
The same providers, their list prices and what each plan includes. Full pass-rate results are on the front page.
| Provider | Pool | Locations | Targeting | Sessions | Trial | Entry price | |
|---|---|---|---|---|---|---|---|
![]() | 100M+ | 195 countries | City · ASN | Rotating and sticky | None on self-service | $6/GBStarter 5 GB, $30/mo, cancel any time | See Oxylabs pricing |
![]() | 72M+ | 195 countries | City · ASN · ZIP | Rotating and sticky | Free trial for verified businesses | $8.4/GBPay as you go, no commitment | See Bright Data pricing |
![]() | 115M+ | 195+ locations | City · ZIP · ASN | Rotating and sticky (minutes to days) | 3-day trial, 100 MB | $2/GBPay as you go $4/GB, plans from $2/GB | See Decodo pricing |
![]() | 155M+ | 195+ locations | City · ISP | Rotating and sticky, custom length | 3-day trial, 400 MB, $1.99 | $5/GBPay as you go $5/GB, $3/GB on $200/mo plan | See SOAX pricing |
We earn a commission if you buy through the pricing links. It does not change the numbers: the test script, the target list and the raw results are public, and providers do not see results before you do.
FAQ
Rotating proxies, asked and answered
How many different IPs does a rotating residential proxy actually give you?
In our 11 Sep 2026 test, Oxylabs returned 100 unique addresses in 100 consecutive requests, from 99 separate networks; Decodo returned 99 unique addresses in 99 consecutive requests, from 99 separate networks; SOAX returned 99 unique addresses in 99 consecutive requests, from 99 separate networks. Rotation per request is the default on all of them, and none needed a setting to be turned on.
Does a rotating proxy give a new IP on every single request?
On the providers tested, effectively yes, but "effectively" is the word that matters. Oxylabs did not repeat a single address in 100 requests, and where an address did repeat, the table shows at which request it happened. A repeat is not a fault: the pool is finite and you are sharing it, so over thousands of requests repeats are certain.
Rotating or static residential proxies, which one do I need?
Rotating for collecting public pages at scale, because a new address per request spreads the load and looks like many visitors. Static, also sold as ISP proxies, for anything that carries state: a login, a cart, a checkout, a paginated result set that checks consistency. They are priced differently too, per address per month rather than per gigabyte.
How long does a sticky session last?
The duration you request is a maximum, not a promise. In our ten-request test the session held every time for Oxylabs, Decodo. A residential address belongs to a real person whose connection can drop, so write the scraper to treat a changed address as normal and repeat the step, rather than assuming the session survived.
Does more IP rotation mean fewer blocks?
Not on its own. In our main test four of nine sites blocked every request from every provider, because they detect the missing browser rather than the address. Rotation helps against rate limits and address reputation; it does nothing against fingerprinting. The pass-rate table on the front page is the measurement that matters for that.
What is a backconnect proxy?
An older name for the same thing. You connect to one gateway address and the provider connects onward from a different address each time, so the rotation happens behind the gateway rather than in your code. Every provider on this page works that way: one host and port, and the rotation is in the username parameters.
Why do the addresses belong to mobile carriers?
Because part of a residential pool comes from mobile connections, where one carrier address is shared by thousands of real phones. Sites are reluctant to block those, which is an advantage. They are also slower and more often rate limited. The carrier breakdown on this page shows what each pool actually delivered on the test day.
Do providers pay for placement on this page?
No. We earn a commission on purchases through the pricing links, and that is disclosed above the table. The order in the tables comes from the measurement, and the raw output of every run is published.

