How Mobile Proxy IP Rotation Actually Works
Key takeaways
- On a real device, rotation is a radio event: the radio detaches from the tower, the PDP context holding your address is torn down, and on re-attach the carrier issues a different one.
- Pool "rotation" is not the same mechanism. No radio moves — the provider routes your next request through a different exit that already existed. Same word, different product, very different reputation profile.
- A genuine rotation takes around 6 seconds. One that reports success in ~2 seconds did not change your IP — the modem accepted the airplane toggle without acting on it.
- About 7 seconds of connectivity interruption is the physical floor, and it is carrier-side attach time. No provider owns that number.
- A rotation taking 60-120 seconds is a network-location problem — an unstable tower gateway — not a software or timing setting you can tune.
- Rotation on demand suits account work, timed rotation suits long unattended crawls, and per-request rotation only exists on pools. Picking the wrong one is the most expensive proxy mistake there is.
- A
200from a rotation endpoint usually means the device acknowledged a command. Only reading the exit address back afterwards proves anything changed.
Two different products are sold under the word "rotation", and they have almost nothing in common beyond the outcome you see in a browser.
One is a physical event on a handset: a radio drops its connection to a tower, re-attaches, and the carrier hands the device a different address. The other is a routing decision: a provider sends your next request through a different exit node that already existed and was already being used by somebody else. Both change the IP your destination logs. Only one of them gives you an address that is yours.
This page is the mechanism behind each, the three ways rotation is exposed to you as a control, and the timing figures that let you tell a genuine rotation from a reported one. If you want the full request path first — relay, tunnel, device, radio — that is how mobile proxy infrastructure works.
What a rotation physically is on a real device
On real hardware, rotation is a radio event. The device detaches from the tower, the PDP context carrying its current address is torn down, and on re-attach the carrier issues a different address from its CGNAT pool. Every rotation button, API endpoint and scheduler in this industry is a wrapper around that single toggle.
The PDP context is what actually holds your address
When a phone attaches to a mobile network it negotiates a bearer — a PDP context in the older terminology, a PDU session in 5G, and the carrier binds an address to it for the lifetime of that session. The address is not a property of the SIM, the handset, or your account. It is a property of a session that the network can tear down at any moment.
That is why rotation works at all, and why it works the way it does. You cannot ask a carrier for a new IP; there is no such request. You can only destroy the session that owns the current one and negotiate a fresh session, which the network will service with whatever address its translation layer has available.
It is also why nothing survives the change. Any TCP connection open through that device dies when the bearer does. A rotation is a disconnection followed by a reconnection, not a graceful handover, and every consumer of that proxy has to tolerate the gap.
Why roughly seven seconds is the floor
The interruption runs about seven seconds end to end, and almost none of it belongs to the proxy provider. The sequence is detach from the tower, complete a fresh attach, authenticate against the network, establish the new bearer, then re-establish the device's control tunnel back to the relay so requests can flow again.
Every one of those steps is carrier-side radio work with a fixed cost. A provider can strip out their own overhead around the toggle — we cut post-rotation recovery from roughly ten minutes in an earlier version of our stack down to seconds, which was a genuine engineering win, but the attach itself is what a cellular attach costs on that network, at that tower, that day.
So when you see instant rotation advertised on a physical device, the claim is describing something other than a radio re-attach. Usually it is describing the third mechanism in this article: a pool.
Pool reassignment: the other thing sold as rotation
On a shared pool, nothing physically rotates. The provider maintains a set of exit nodes and routes your next request through a different one. The change is a routing decision made in software, which is why it can be instantaneous and per-request, and why the address you receive has a history you did not create.
The distinction matters far more than the shared vocabulary suggests. On a dedicated device, the address before and the address after are both yours alone; you were the only traffic on the old one and you are the only traffic on the new one. On a pool, you are handed an address that other customers used before you and will use after you, and whatever they did to its reputation arrives with it.
| Device rotation | Pool reassignment | |
|---|---|---|
| What changes | The cellular session on your hardware | Which existing exit your request uses |
| Time cost | ~6s, plus ~7s interruption | Effectively instant |
| Who else used the address | Nobody, while it was yours | Other customers, before and after |
| Can it be per-request | No | Yes |
| Address history | None you did not create | Unknown and inherited |
| Fails when | The radio wedges or the tower is unstable | The chosen exit is already burned |
Neither is dishonest on its own. A pool is a reasonable product for high-volume scraping of public data, where a burned exit costs you a retry and nothing else. It becomes dishonest when sold to somebody who needed the first column — an operator running logged-in accounts, who then discovers their "rotation" hands out addresses other people are using simultaneously. The full trade-off is dedicated versus rotating.
The three ways rotation is exposed as a control
Rotation reaches you in one of three forms: on demand through an API call or rotation URL, on a timer the provider or you configure, or automatically on every request. They are not tiers of the same feature. They imply different architectures and suit genuinely different jobs.
Rotation on demand
You call an endpoint — a rotation URL with a token, or an authenticated API request, and the device performs the toggle. The address holds until you ask again. Nothing else changes it.
This is the correct default for anything with a session, because it makes address changes an explicit decision rather than an ambient event. You keep an identity for exactly as long as it is useful and discard it the moment it is burned. It also composes cleanly with automation: rotate on a specific signal — a block page, a captcha wall, a rate-limit response — rather than on a clock that knows nothing about what your script is doing.
The cost is that you have to decide. An unused rotation URL is a proxy that never changes its address — fine if that was the plan, a problem if you assumed the provider was handling it.
Timed auto-rotation
The provider rotates the device every N minutes without being asked. On our fleet this is a per-proxy setting rather than a global default, which matters: an interval that is right for a crawler is actively harmful for an account.
Timed rotation earns its place in unattended work. A long-running crawl that will run for six hours with nobody watching benefits from a fresh address periodically, and a timer is a simpler mechanism than teaching the crawler to recognise every block signal a site can emit.
It is dangerous everywhere else, for a reason that is obvious once stated: the timer does not know what you are doing. It will fire in the middle of a checkout, a login, or a file upload, because it has no visibility into your session at all. If you use timed rotation, the interval has to be longer than your longest single operation, and the operation has to be safely retryable.
Per-request rotation
Every request leaves from a different address. This only exists on pools, and it is worth understanding why rather than assuming it is a premium feature your provider is withholding.
A single device holds one address at a time and needs seconds of radio work to change it. There is no way to give a device a new IP per request — the physics forbid it. When a service advertises per-request rotation, it is selecting from a set of exits that already exist, which is the second column of the table above with all of its properties intact.
Per-request rotation is a legitimate tool for scraping large volumes of public, stateless pages. It is catastrophic for anything else, because it destroys session continuity by design. That is the subject of sticky sessions, and the two pages are really one argument seen from opposite ends.
| Job | Right mode | Why |
|---|---|---|
| Logged-in account management | On demand only | The address is part of the identity |
| Multi-step flow (cart, checkout, upload) | On demand only | Any change mid-flow breaks state |
| Long unattended crawl of public pages | Timed, interval > longest operation | Fresh address without block-detection logic |
| High-volume stateless scraping | Per-request, on a pool | Throughput matters, identity does not |
| Ad or SERP verification from a location | On demand between checks | Each check is independent, but must complete |
Reading the clock: a real rotation versus a reported one
Because the work is physical, the elapsed time of a rotation tells you whether it happened. A healthy rotation takes around six seconds. One that returns success in about two seconds did not change your address — the modem accepted the airplane-mode instruction and never acted on it, so the cycle completed almost instantly because nothing occurred.
| Elapsed time | What happened | What it means |
|---|---|---|
| ~2s, reports success | Toggle accepted, radio never detached | Wedged radio — IP unchanged |
| ~6s, reports success | Full detach, re-attach, new PDP context | Genuine rotation |
| 60-120s | Attach succeeding slowly against an unstable tower gateway | Network-location problem, not a timing setting |
| Timeout, "cellular did not return" | Attach failed outright | Check fleet-wide failure rate before touching the device |
The wedged radio is the common one and the fix is unglamorous: a human toggles airplane mode on the physical handset. No amount of retrying through the API clears it, because the API is talking to a modem that is politely acknowledging instructions it is not executing.
The 60-120 second case is a different animal and gets misdiagnosed constantly. It is not a slow provider, and increasing your rotation timeout does not address it. The device is attaching successfully but against a gateway that is struggling, so the assignment drifts. The fix is physical — move the device, or change which tower it prefers, and adjusting fleet rotation timing to accommodate it makes every healthy device slower for no benefit.
A 200 from a rotation endpoint is a claim about command acceptance. A changed exit address is a claim about reality. Confirming the second takes about two minutes and works against any provider.
Why "did it work" is a question most providers cannot answer
The typical rotation implementation forwards a command to the device, receives an acknowledgement, and returns success. Nothing in that chain reads the resulting exit address, so nothing in that chain can distinguish a genuine rotation from a wedged radio. The blind spot is architectural, not dishonest.
We had it too. Until recently we captured the exit address on only a fraction of rotations — the ones where a customer happened to trigger a code path that read it back, which meant we could not have answered this question about our own fleet. We now record the address before, the address after, and the elapsed time on every rotation, on every device. A rotation that changed nothing shows up in the data instead of hiding behind a success flag.
This is not exotic work. It is a small amount of engineering that most providers have not done because nobody was asking for it. Ask, and treat "our API returns 200" as the non-answer it is — if a provider cannot tell you the exit address after a rotation, every downstream diagnosis you make is built on that gap. When rotation appears to succeed and the address is unchanged, the diagnostic sequence is here.
Rotating more is not a strategy
The instinct when something gets blocked is to rotate harder. On platforms that weight consistency, that instinct is exactly inverted: an identity whose network location changes constantly scores worse than one that has behaved reasonably from the same address for weeks. Rotation destroys history on purpose, and history is an asset for logged-in work and a liability for scraping.
So the question is never "how often should I rotate" in the abstract. It is whether the thing you are protecting benefits from continuity or from anonymity. If your requests are independent and stateless, rotate freely — you have nothing to lose. If there is a session, an account, or a multi-step flow involved, the address should hold and you should rotate on a signal, not on a clock.
The honest limits, stated plainly. Rotation cannot be faster than a cellular attach, so roughly seven seconds of interruption is the floor and no vendor owns it. A new address is not automatically a better one — it is a different one with no history, which is not the same as a good reputation. And none of this touches fingerprinting or behavioural detection, so a perfect rotation still changes one signal in a system that weighs many.
Frequently asked questions
What actually happens when a mobile proxy rotates its IP?
The device toggles airplane mode. The cellular radio detaches from the tower, the PDP context carrying the current address is torn down, and on re-attach the carrier assigns a different address from its CGNAT pool. Roughly seven seconds of interruption, nearly all of it radio work.
How long should a mobile proxy IP rotation take?
About six seconds for the rotation itself and around seven seconds of total connectivity interruption. Faster than that on a physical device usually means nothing happened; much slower usually means the device is attaching against an unstable tower gateway.
Is pool-based rotation the same as rotating a mobile proxy?
No. A pool hands you a different exit that already existed and is shared with other customers. A device rotation changes the address on hardware you control. Both are called rotation, but only one gives you an address nobody else is using.
Should I rotate on a timer or on demand?
On demand for anything logged in, so the address holds until you deliberately burn it. On a timer only for unattended scraping of public data where no session state has to survive. A timer firing mid-session is one of the most common self-inflicted bans.
Can I get per-request rotation on a dedicated mobile proxy?
Not meaningfully. Per-request rotation requires a pool of pre-existing exits to pick from. A single device has one address at a time and needs seconds of radio work to change it, so a new IP per request is physically impossible on dedicated hardware.
Why does my rotation return success but the IP stays the same?
Because most rotation endpoints report that the device accepted the command, not that a new address was assigned. If the response came back in about two seconds, the radio never detached. A manual airplane-mode toggle on the physical handset clears it.
Related reading
- How to test whether your proxy's rotation actually changed the IP
- Sticky sessions on mobile proxies: why the same IP matters more than a new one
- Dedicated vs rotating proxies: they solve opposite problems
- Rotation says success but the IP never changes
- How 4G/5G mobile proxy infrastructure actually works
Dedicated mobile proxies, one dashboard
Real 4G/5G devices on US carrier SIMs. Sticky IP per customer, rotation on demand.
See plans