Skip to content

How rotation works

By default, every request gets a different exit IP. You do nothing to make that happen.

Terminal window
# Run this twice. Two different addresses.
curl -x USERNAME:[email protected]:8000 https://api.ipify.org

That is the right behavior for most scraping: each request looks unrelated to the last, and no single address accumulates enough traffic to get rate-limited.

Anything with state breaks. A login, a cart, a multi-step form, a paginated result set behind a session cookie. All of them expect the same client throughout, and a new IP on request three looks like a hijack.

For those, hold an IP with a sticky session.

You are doing Use
Independent page fetches Rotating (default)
A login, then pages behind it Sticky
A flow that breaks if the IP moves at all Strict sticky
Long-running work on one identity Sticky plus duration

If you run requests concurrently, give each worker its own session id. Sharing one id across ten threads sends ten simultaneous requests down one device’s connection, which is slower than not using a session at all and looks nothing like a person.

Residential exits are real devices and they go offline. Rotating traffic absorbs this invisibly, because the next request just gets another exit. Sticky traffic does not, which is the whole point of it. See Errors & retries.

Was this page helpful?