GuidesTargeting & sessions
Sessions & rotation
Rotate on every request, or keep one exit for a whole flow.
By default, every request through a rotating network gets a fresh exit. Sessions let you keep the same exit across many requests — so a login, a cart and a checkout all come from one visitor.
#Rotating (default)
Send requests without a session and each one is routed independently:
curl -x "http://USERNAME-net-residential:PASSWORD@gate.riftip.com:7777" https://ip.riftip.comUse rotation for collecting public pages at volume — no single IP accumulates enough traffic to stand out.
#Sticky sessions
Add a session ID. Requests that share an ID share an exit until the session expires:
curl -x "http://USERNAME-session-acct_1042-ttl-30m:PASSWORD@gate.riftip.com:7777" https://example.com/accountproxy = "http://USERNAME-session-acct_1042-ttl-30m:PASSWORD@gate.riftip.com:7777"
s = requests.Session()
s.proxies = {"http": proxy, "https": proxy}
s.get("https://example.com/account")const agent = new ProxyAgent("http://USERNAME-session-acct_1042-ttl-30m:PASSWORD@gate.riftip.com:7777");
await fetch("https://example.com/account", { dispatcher: agent });| Option | Format | Notes |
|---|---|---|
session | 1–40 letters, digits or underscores | Your own ID — map it to an account, cart or job |
ttl | <n>m or <n>h | Defaults to 10m |
#Maximum session length
| Network | Max ttl |
|---|---|
| Residential, Unlimited, IPv6 | 24h |
| Mobile | 30m |
| ISP, Datacenter | Static — IPs never change |
#When an exit drops
Residential and mobile exits are real devices that sometimes go offline. When that happens mid-session, the gateway re-pins your session to a fresh exit — in the same city and ISP where possible — and the next request goes through it. The session ID stays the same, so anything you keyed on it keeps working.
Note
The target will see a new IP after a re-pin. Most sites accept that, because home IPs change all the time. If a target binds a login to an exact IP, use ISP proxies for that flow.