Guides

What Is a Rotating Proxy? How IP Rotation Works

A rotating proxy automatically changes the exit IP address it uses, so your requests appear to come from many different sources instead of one. It's the standard defense against rate-limiting and IP bans: spread traffic across a large pool and no single IP looks suspicious.

How rotation works

You connect to one stable endpoint. Behind it, the provider holds a pool of IPs and assigns them to your requests according to a policy:

  • Per-request rotation — each request (strictly, each new connection) can go out a different IP. Maximum spread, ideal for large numbers of independent lookups.
  • Time-based rotation — the IP changes on an interval (say, every few minutes).
  • Sticky sessions — the same IP is held for the life of a session so a multi-step flow stays consistent.

Sticky vs rotating: the important distinction

These sound opposite but you usually need both, for different jobs.

Rotating (per request) is right when each request is independent — scraping thousands of product pages, checking prices, collecting search results. Changing IP constantly is exactly what you want.

Sticky is right when a task spans multiple requests that must look like one user — logging in, adding to a cart, paginating through a session, anything with cookies or CSRF tokens. If the IP flips mid-flow, the target sees a “user” teleporting between locations and trips its anti-bot checks.

Rule of thumb: rotate per request for independent reads; go sticky for anything stateful.

For a task-by-task breakdown, see Sticky vs Rotating Proxy Sessions.

The trap: rotating too aggressively

A common mistake is rotating on every connection when loading a single page. A modern web page fires dozens of sub-requests (CSS, JS, images, API calls) in a couple of seconds. If each one exits a different IP, the target sees one “browser” whose IP changes 50 times mid-render — a dead giveaway. Good rotating proxies keep the burst of connections that make up one page-load on a single IP, then rotate once that burst is over. That balance — rotate between tasks, stay stable within a task — is what keeps you unblocked.

Pool quality matters as much as rotation

Rotation only helps if the pool is large and the IPs are trusted. A thousand rotating datacenter IPs from one obvious hosting range will all get blocked together. The same rotation across a large residential pool is far more resilient. Rotation and IP type are two separate levers; tune both.

Putting it together

A rotating proxy is one feature of an endpoint, not a separate product. On o2co (HTTP or SOCKS5 on one port) you choose per connection, in the username. The plain username is burst-sticky: connections from the same machine share one exit while traffic keeps flowing, and after about a minute idle the next one may get a fresh exit. Add -rotate (USERNAME-rotate:PASSWORD@HOST:PORT) and every new connection may leave from a different exit — per connection, not per request, so a keep-alive connection keeps its exit until it closes. Add -country-xx to pick the exit country; it combines with -rotate. Sticky mode, which holds one exit per source IP for longer, is an account setting. For a full scraping setup, see Proxies for Web Scraping. Get 1 GB free or see pricing.