← Back to blog
$ curl -x http://user:pass@xxx.nodetonet.com:48888 https://api.ipify.org→ 188.114.96.7$ curl ... -H "X-Session: abc" # sticky→ 188.114.96.7 # same IP (TTL 600s)$ curl ... -H "X-Rotate: 1" # rotate→ 92.184.117.42 # new IP MODIFIERS nodetonet.com

Upstream username modifiers — controlling country, session and stickiness

N Nodetonet Team
April 22, 2026 7 min read

Residential proxy providers solved a UX problem a long time ago: their gateway is a single host (gate.smartproxy.com:7000), but their customers need to express dozens of routing decisions per request — country, city, ASN, sticky session ID, session TTL, and more. The answer everyone landed on is encode it in the username. The proxy auth header becomes a tiny query string.

When you put a provider behind a Nodetonet upstream forwarding tunnel, those modifiers keep working unchanged. Nodetonet does not parse, rewrite or strip the upstream username — it opens a TCP connection to the upstream and sends whatever you saved, byte-for-byte. This guide covers every modifier pattern worth knowing, how to paste them correctly, and how to combine upstream stickiness with Nodetonet's own session layer.

What is a username modifier?

A username modifier is a structured key-value pair appended to your base username, separated by a hyphen, underscore or colon depending on the provider. Collectively they form an instruction set that the provider's gateway reads on every new TCP connection to decide which exit IP to hand you.

The modifier pattern matters because you never change the proxy endpoint itself (host:port stays constant). Instead you embed all routing logic in the credentials, so a single Nodetonet proxy can target dozens of different exit locations just by editing its upstream string. That makes it straightforward to manage large fleets — see bulk proxy operations.

Shape of a modifier-laden username

The general pattern is baseuser-KEY-VALUE-KEY-VALUE.... Here are real examples from the four largest providers Nodetonet customers commonly chain upstream:

Provider Example username What it means
Bright Data brd-customer-c_XXXX-zone-residential-country-de-session-abc123 Residential zone, exit Germany, sticky session abc123
Smartproxy / Decodo user-myacct-country-de-session-abc123-sessionduration-30 Exit Germany, sticky 30 min TTL
Oxylabs customer-acct-cc-de-city-berlin-sessid-abc123-sesstime-30 Exit Berlin, sticky 30 min
IPRoyal myacct_country-de_streaming-1_lifetime-10m Exit Germany, streaming allowed, 10 min sticky

What every example has in common: the base username is recognisable, the rest is parameters the provider's gateway knows how to parse. You don't need to understand the grammar — copy it from your provider's dashboard "Endpoint generator" and paste it as-is.

Where to paste it on Nodetonet

Open your proxy in the Nodetonet panel, scroll to Upstream Proxy, and fill the field in host:port:user:pass format:

gate.smartproxy.com:7000:user-myacct-country-de-session-abc123-sessionduration-30:YOUR_PASSWORD

The colon-separated parser splits only on the first three colons, so even if your provider's username contains colons (rare but possible), URL-encode them as %3A. Hyphens, underscores, and dots all pass through cleanly. The full upstream string is stored encrypted at rest and forwarded verbatim to the provider — Nodetonet never inspects or logs credential values.

If you're unsure what your provider expects, their dashboard's "Endpoint generator" builds the modifier string for you. Paste that output directly — then you know it's syntactically valid before Nodetonet ever sees it.

Country, state and city targeting

Two-letter ISO country codes are nearly universal across providers: country-de, country-us, country-tr. Most providers also accept state- and city- modifiers, though city pools are thinner — if a provider has no IPs in a specific city right now, you'll get a connection error or a silent fallback to country level.

ASN targeting (asn-XXXXX) lets you pick a specific network operator within a country — useful when you need to match a particular mobile carrier or ISP brand. Read more about what an ASN is and why it matters for proxy trust.

For Nodetonet's own geo-targeting modifiers (separate from upstream) — country tags, city tags and carrier selection applied directly to your mobile device pool — see geo-targeting.

Sticky vs rotating on the upstream

The session-XXX modifier tells most providers "give me the same exit IP for a while". As long as the same session ID stays in the username, the same exit IP is returned. Change the ID and the next request picks a fresh IP from the pool — this is the rotating mode.

Some providers also accept a sessionduration value in minutes to extend the default TTL (often 10 minutes). A useful pattern: rotate only the session ID while keeping country fixed, giving you fresh IPs in the same geo on every call:

# Bash — new random session ID per request, country pinned to DE
curl -x "gate.smartproxy.com:7000"   -U "user-myacct-country-de-session-$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c8):PASS"   https://httpbin.org/ip

This is distinct from Nodetonet's own sticky session layer (the -session-XXXX suffix on your proxy username). The two layers interact: if you append a Nodetonet sticky token, Nodetonet pins the same mobile device to your session; the upstream username that device uses can still rotate or be pinned independently. The interplay is covered fully in sticky upstream sessions.

Editing the modifier without rebuilding the proxy

The upstream string lives in the proxy's edit dialog. Open the proxy, change the modifier, save — the tunnel rebinds in about a second with no re-pairing of devices needed. That makes it practical to update targets programmatically. Using the Nodetonet API:

curl -X PATCH   -H "Authorization: Bearer $KEY"   -H "Content-Type: application/json"   -d '{"upstream":"gate.smartproxy.com:7000:user-acct-country-us-session-xyz:pass"}'   https://nodetonet.com/api/v1/proxies/PROXY_ID

This makes it straightforward to build scripts that rotate the upstream session ID on a schedule or swap the target country without any panel interaction. Pair this with webhook events to notify downstream systems when the exit IP changes.

Troubleshooting: when modifiers stop working

If the provider's gateway returns a 407 or the exit IP isn't in the expected country, work through this checklist:

A full walk-through of 407 and connection errors is in debugging upstream auth failures.

Combining upstream with Nodetonet's own controls

When you chain an upstream provider, Nodetonet's per-client controls still apply on top — IP allowlists, domain allow/deny lists, quota limits, thread caps, and expiry dates are enforced before a request reaches the upstream. That means you can hand a client a credential that can only reach traffic through a provider's German residential pool, with a 50 GB monthly quota and domain restrictions, all from one proxy entry. See per-client auth and quota limits for the full setup.

What's next

Frequently asked questions

Do upstream username modifiers still work when traffic passes through Nodetonet?
Yes. Nodetonet forwards the upstream username byte-for-byte without parsing or rewriting it. Country codes, session IDs, ASN tags and any other modifiers your provider supports reach the upstream gateway exactly as you configured them.
What format does the upstream field accept on Nodetonet?
The field uses colon-separated host:port:user:pass format. The parser splits only on the first three colons, so a username that itself contains hyphens, underscores or dots passes through fine. If your username contains a literal colon, URL-encode it as %3A.
How do I rotate the upstream IP on every request without changing the proxy endpoint?
Include a session-XXX modifier in your upstream username but generate a fresh random ID for each request in your script. Keep the country modifier fixed so you stay in the same geo while getting a new exit IP every time. This is the rotating pattern most scraping workflows use.
How does the upstream sticky session interact with Nodetonet's own sticky mode?
The two layers are independent. A Nodetonet sticky token (-session-XXXX on your proxy username) pins the same mobile device to your connection. That device then forwards to the upstream with whatever username you configured — which may itself be sticky or rotating. You can mix and match: pin a Nodetonet device for reliability while rotating the upstream session to get fresh provider IPs. See the sticky upstream sessions post for worked examples.
Can I change the upstream country or session modifier without re-pairing devices?
Yes. The upstream string is stored on the proxy record, not the device. Edit the proxy in the panel or via API PATCH, save, and the tunnel rebinds in about a second. No device re-pairing or app restart is needed.
Which residential providers work with Nodetonet upstream forwarding?
Any provider that accepts HTTP or SOCKS5 auth (user:pass) — including Bright Data, Smartproxy, Oxylabs, IPRoyal and others. Nodetonet forwards the connection verbatim, so provider-specific modifier syntax is preserved. See the upstream residential forwarding guide for setup steps.
N

Nodetonet Team

Building Nodetonet — a prepaid proxy + tunneling platform that replaces ngrok, Cloudflared and a residential proxy provider with a single panel.

Related posts