Quick answer
Where can I buy sticky residential proxies by city?
Banyan Proxies sells sticky residential proxies by city on every plan: add -session-<id>-ttl-<minutes> after the city, as in USERNAME-country-th-city-bangkok-session-b1-ttl-20. The IP is kept up to 30 minutes and can change earlier if the home device goes offline. Prices start at $1.88 for 1 GB (October 2026).
How do rotating and sticky sessions differ?
| Rotating | Each new connection gets an IP from the pool, usually a different one; to get a new IP on every request, send one request per connection (turn off keep-alive) |
|---|---|
| Sticky | Sticky sessions keep the same IP for the time you set (ttl, in minutes), up to 30 minutes. The IP can change earlier, for example if the residential device goes offline |
| Session ID | Letters and digits you choose, such as b1 or client7 |
| Duration | -ttl- in minutes, up to 30 |
| Price | Same per GB as rotating: $1.88 for 1 GB |
When should I use a sticky session?
Use one when several requests must look like one visitor: adding to a cart and reading the delivery fee, applying search filters page after page, or checking your own business account from the right city. For independent page loads, such as a list of product prices, rotating is better: each connection gets another home IP in the same city, which spreads the load.
How do I run several cities at once?
Give each city its own session IDs. A job that checks the same basket in Jakarta, Surabaya and Medan can keep three sessions open in parallel, one per city.
import requests
HOST = "gw.banyanproxies.com"
PORT = 7777
cities = ["jakarta", "surabaya", "medan"]
sessions = {}
for i, city in enumerate(cities, start=1):
user = f"USERNAME-country-id-city-{city}-session-basket{i}-ttl-20"
s = requests.Session()
s.proxies = {
"http": f"http://{user}:PASSWORD@{HOST}:{PORT}",
"https": f"http://{user}:PASSWORD@{HOST}:{PORT}",
}
sessions[city] = s
for city, s in sessions.items():
ip = s.get("https://api.ipify.org", timeout=30).text
print(city, ip)What if the IP changes before the time is up?
A residential IP belongs to a real home connection, which can drop at any moment. Detect it by reading the exit IP at the start and at checkpoints. If it changes mid-task, restart the task with a new session ID rather than mixing two IPs in one flow. Shorter tasks and a ttl that matches the task length reduce the chance of a change.
Where are the other settings?
The city targeting syntax lists every username segment, the docs have tested client code, and the pricing page shows that sticky and rotating traffic cost the same per GB.
What else do buyers ask about sticky sessions?
Can I keep one IP for a day?
No. Sessions last up to 30 minutes, and the IP can change earlier. For a fixed IP over days, a dedicated 4G/5G port by zone is on the pricing page.
Does a sticky session cost more?
No. You pay per GB of traffic, rotating or sticky, at the same rate.
Can I reuse a session ID later?
Once a session has ended, the same ID may return a different IP. Treat each task as a new session.