Rotating proxy
A proxy endpoint that changes the exit address automatically, either on every request or on a timer.
A rotating proxy assigns a different exit address over time from a pool, without you managing individual addresses. You connect to one endpoint and the provider handles selection.
#Two rotation models
- Per request. Every request may leave from a different address. Best for large numbers of independent fetches.
- Sticky. The same address is held for a set period, so a multi-step flow stays coherent.
#The mistake people make
Rotating on every request is not automatically safer. If a workflow spans several requests — a search, then a result page, then a detail page — changing address mid-flow can look more suspicious than keeping one, because a real user’s address does not change between clicks. Match the rotation to the shape of the task.
#Where it is configured
Usually by port, by a flag in the username, or by an API call. There is no standard; the syntax is provider-specific and worth checking before you build against it.
#Choosing a rotation interval
Rotation is not free. Each new address costs a fresh TLS handshake, discards any warmed connection, and abandons whatever the site associated with the previous address. Match the interval to what the target tracks.
| Work | Sensible rotation | Reason |
|---|---|---|
| Independent page fetches | Every request | Nothing links the requests, so nothing is lost |
| Paginated listings | Per listing, not per page | Page 2 from a new address looks unrelated to page 1 |
| Anything after a login | Never during the session | An address change mid-session is a strong signal |
| Checkout or multi-step forms | Never during the flow | State is bound to the session, not the address |
The full guide works through the trade-off in more depth.
#The failure this causes most often
A crawler rotates per request, then cannot understand why a paginated list returns page 1 repeatedly. The site bound the cursor to a session, the session to an address, and the address changed. The symptom looks like a parsing bug and is a rotation bug.