Skip to content

Sticky sessions

By default every connection gets a fresh exit. To keep one IP across requests, add a session id to the username:

USER-cc-de-session-a81f

Every connection carrying the same id is routed to the same exit. The id is yours to choose - letters and digits, no hyphens. Use a fresh random id per logical task (per account, per scrape job) and you get one stable identity each.

Default hold 10 minutes
Maximum 120 minutes, via ttl

ttl sets the hold in minutes:

USER-session-a81f-ttl-30

Sessions are best-effort: exits are real home connections and can go offline at any time. When a session expires or its exit dies, the next connection under the same id transparently gets a new exit - if your workload cannot tolerate an IP change, detect it (e.g. via an IP-echo check) and rotate to a new session id yourself.

  • Sessions are held per region. Keep using the same regional endpoint (eu.tpp.io or us.tpp.io) for the lifetime of a session.
  • Targeting options still apply - the held exit matches whatever cc/city/asn you asked for. Keep the options identical across requests in one session.
  • To rotate on every request, simply omit session.