# How to Set Up Rotating Proxies

> Set up rotating proxies step by step: how the rotating endpoint works, config in curl, Python and Node, sticky vs per-request rotation, and how to avoid bans.

[Home](https://quanticdata.io/)/[Blog](https://quanticdata.io/blog/)/How to Set Up Rotating Proxies

# How to set up rotating proxies: the endpoint, the code, the session control

ProxiesJul 30, 2026·5 min read·QuanticData Team

On this page [What "rotating" actually means](/blog/how-to-set-up-rotating-proxies/#what-rotating-actually-means) [The two rotation modes, and when each fits](/blog/how-to-set-up-rotating-proxies/#the-two-rotation-modes-and-when-each-fits) [Setting it up, step by step](/blog/how-to-set-up-rotating-proxies/#setting-it-up-step-by-step) [Configuration in three languages](/blog/how-to-set-up-rotating-proxies/#configuration-in-three-languages) [Sticky sessions: holding an IP on purpose](/blog/how-to-set-up-rotating-proxies/#sticky-sessions-holding-an-ip-on-purpose) [The settings that decide whether you get banned](/blog/how-to-set-up-rotating-proxies/#the-settings-that-decide-whether-you-get-banned) [Free rotating proxies: the honest warning](/blog/how-to-set-up-rotating-proxies/#free-rotating-proxies-the-honest-warning)

Setting up rotating proxies means pointing your scraper at a single gateway endpoint that hands out a different exit IP on each request — instead of managing a list of IPs yourself. You set one host, port and credentials, and choose whether each request gets a new IP or a session sticks to one for a while. That is the whole configuration; the rest is knowing which mode to pick.

## What "rotating" actually means

A static proxy sends every request through one IP. A rotating proxy puts a gateway in front of a large pool: you connect to the same endpoint every time, and the provider assigns the outbound IP — a fresh one per request by default, or a pinned one if you ask for a sticky session. The point is spreading requests across many IPs so no single address accumulates enough traffic to a target to trip a rate limit or ban. You never see or manage the pool; you manage the endpoint.

## The two rotation modes, and when each fits

| Mode | Behavior | Use it for |
| --- | --- | --- |
| Per-request (fully rotating) | New IP on every single request | Independent page fetches, wide crawls, SERP queries |
| Sticky session | Same IP held for N minutes or a session token | Multi-step flows: login, cart, pagination, checkout |

The mistake beginners make is fully rotating a flow that needs continuity — an IP change mid-session between adding to a cart and checking out looks exactly like fraud to the target. Match the mode to the task: stateless reads rotate per request; anything with steps that must appear to come from one user takes a sticky session.

## Setting it up, step by step

1. **Get the endpoint and credentials.** A rotating provider gives you a host, a port and a username/password. With ours the rotating gateway looks like `pr.quanticdata.io:7777` with your key as credentials — one endpoint for the whole pool.

2. **Choose the mode via the port or username.** Providers signal sticky-vs-rotating either through different ports or through a token in the username (for example a session id suffix). Per-request rotation is usually the default port.

3. **Point your HTTP client at it.** Every language sets a proxy in one line — examples below.

4. **Add country targeting if needed.** Pass the country as a username parameter so exits come from the right geography — essential for localized content and SERPs.

5. **Test with an IP-echo service** to confirm the IP changes (or holds, for sticky) as you expect before pointing at the real target.

## Configuration in three languages

```
# curl — a fresh IP each call
curl -x http://USER:KEY@pr.quanticdata.io:7777 https://ipinfo.io/ip
curl -x http://USER:KEY@pr.quanticdata.io:7777 https://ipinfo.io/ip
# → two different IPs
```

```
# Python (requests)
import requests
proxy = "http://USER:KEY@pr.quanticdata.io:7777"
r = requests.get("https://ipinfo.io/ip",
                 proxies={"http": proxy, "https": proxy})
print(r.text)  # new exit IP each run
```

```
// Node (with an https proxy agent)
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent(
  "http://USER:KEY@pr.quanticdata.io:7777");
const res = await fetch("https://ipinfo.io/ip", { agent });
```

That is the entire integration — no IP list, no health-checking dead proxies, no rotation logic in your code. If you already have a Python scraper, our [rotating-proxies-in-Python guide](https://quanticdata.io/blog/how-to-rotate-proxies-python/) shows the same setup inside requests, Scrapy and Selenium.

## Sticky sessions: holding an IP on purpose

For multi-step flows you want the same exit across several requests. Providers expose this as a session token — add an identifier to the username and every request carrying it routes through the same IP until the session window expires (commonly up to 10–120 minutes). Change the token to get a new sticky IP. This is what lets you paginate through 20 pages of results, or complete a login-then-scrape flow, without the target seeing a location teleport between requests.

## The settings that decide whether you get banned

Rotation alone is not stealth. Three things matter as much as the IP:

- **Network type.** [Datacenter IPs](https://quanticdata.io/datacenter-proxies/) are fast and cheap but easy to flag; [residential IPs](https://quanticdata.io/residential-proxies/) look like real home users and survive strict targets. Match the network to how defended the target is — do not pay for residential on a site that never blocks datacenter.

- **Request rate.** Rotating lets you send more total traffic, not infinite traffic per IP. Keep per-IP pacing human and add small delays; a thousand IPs hammering in one second still looks like an attack in aggregate.

- **Fingerprint consistency.** A rotating IP with a frozen, obvious bot User-Agent defeats the purpose. Rotate a realistic header and TLS profile alongside the IP.

## Free rotating proxies: the honest warning

Free rotating proxy lists exist and are a trap for anything real: the IPs are shared by thousands, already blocklisted on the targets you care about, frequently dead, and — worst — a free proxy can read the traffic you route through it, which rules them out for anything authenticated. They are acceptable only for throwaway experiments. For production, a paid pool with real bandwidth accounting is cheaper than the failed requests and debugging time free lists cost you. Our [rotating proxies](https://quanticdata.io/rotating-proxies/) start at $0.50/GB across residential, datacenter and mobile behind one endpoint, with sticky sessions to 120 minutes and bandwidth valid for the plan term; if you are only ever scraping, the same pool is built for exactly that. There is a free trial to validate the setup before committing.

### Sources & further reading

- [Oxylabs — What are rotating proxies? Setup, pros, cons](https://oxylabs.io/blog/what-are-rotating-proxies)

- [Browserless — Proxy rotation: how it works and how to configure it](https://www.browserless.io/blog/proxy-rotation)

## FAQ

Quick answers on how to set up rotating proxies.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### How do I set up rotating proxies for free?

Free rotating proxy lists work only for throwaway tests: the IPs are shared, often already banned on your targets, frequently dead, and can inspect unencrypted traffic. For anything real, a paid pool with a free trial costs less than the failed requests free lists generate. Never route authenticated requests through a free proxy.

### What is the difference between rotating and sticky proxies?

Rotating (per-request) gives a new IP on every request — right for independent page fetches. Sticky holds one IP for a session window, usually via a token in the username — right for multi-step flows like login, pagination or checkout where an IP change mid-flow would look like fraud.

### Do rotating proxies prevent bans completely?

No. They stop one IP from accumulating too much traffic, but bans also trigger on request rate, header and TLS fingerprints, and behavior. Pair rotation with human-like pacing, realistic fingerprints, and residential IPs on defended targets. Rotation is necessary, not sufficient.

### How do I target a specific country with rotating proxies?

Pass the country as a parameter in the proxy username — the gateway then only assigns exits from that geography. Country targeting is essential for localized pricing, geo-restricted content and accurate SERP results, where an exit in the wrong country returns a different page.

### Are rotating proxies good for web scraping?

Yes — rotation is the default choice for scraping at scale, because spreading requests across many IPs is what keeps you under per-IP rate limits. Use per-request rotation for independent page reads and sticky sessions for any flow that must appear to come from one continuous user.

## One endpoint, a fresh IP on every request

Rotating proxies from $0.50/GB across residential, datacenter and mobile — sticky sessions to 120 minutes, country targeting, bandwidth valid for the plan term. Free trial to test your setup first.

[Start free — $2/month included](https://app.quanticdata.io/register)[Explore Rotating Proxies from $0.50/GB](https://quanticdata.io/rotating-proxies/)

## Related reading

[Proxies How to Rotate Proxies in Python Rotate proxies in Python three ways — a cycled list, an async pool with cooldowns, or a rotating gateway — plus the cost math nobody publishes. Read →](https://quanticdata.io/blog/how-to-rotate-proxies-python/) [Proxies How to Use Rotating Proxies Gateway setup, rotation cadence, sticky sessions, retry logic and the real cost math behind rotating proxies — with Python and curl you can run today. Read →](https://quanticdata.io/blog/how-to-use-rotating-proxies/) [Proxies How to Rotate Proxy in Selenium Python Chrome fixes its proxy at launch. Here are the three real ways to rotate IPs in Selenium Python, with code, auth handling and honest bandwidth math. Read →](https://quanticdata.io/blog/how-to-rotate-proxy-in-selenium-python/)

---

Source: https://quanticdata.io/blog/how-to-set-up-rotating-proxies/ · Site index for AI: https://quanticdata.io/llms.txt
