One credential. One endpoint. Encode the country, city, carrier, session, and rotation into your proxy username — the gateway routes you to a matching real mobile modem. Pay only for the GB you use. Duration is free.
How it works
Most proxy providers make you provision individual ports through a dashboard, copy 20 different credentials per geo, and re-provision when you need a different country. Pool Gateway flips that: you connect to one endpoint with one credential, and tell the gateway what you want via your username. Want a US T-Mobile IP that stays the same for an hour? Set your username. Want a UK IP that rotates every 10 minutes? Change your username.
Point your scraper, browser, bot, or AI agent at gw.proxies.sx:7000 (HTTP) or :7001 (SOCKS5). Standard proxy auth — works with curl, Python requests, Node fetch, Puppeteer, Selenium, Playwright, every existing tool.
Username encodes routing: psx_<id>-mbl-us. Password is your account proxy password from the customer portal. Up to 100 concurrent connections per account.
Gateway parses your username, picks an online mobile modem matching your country/carrier/city, and pipes your traffic through it. ~150ms to first byte on a warm pool.
Every byte routed counts against your shared bandwidth pool. Top up GB whenever you want. Duration is free — no expiring plans.
The username token DSL
Every routing decision lives in your proxy username. Swap one token, change behavior. No API calls, no dashboard clicks.
<account>-<pool>-<country>[-token-value...] Examples: psx_abc-mbl-us → US mobile, default rotation psx_abc-mbl-gb-rot-auto10 → UK mobile, new IP every 10 min psx_abc-mbl-de-sid-job4729 → German mobile, sticky session psx_abc-mbl-us-carrier-tmobile → T-Mobile US specifically psx_abc-mbl-us-city-newyork → NYC mobile IPs only psx_abc-mbl-fr-rot-hard → French mobile, rotate on demand
Required tokens
| Position | Token | Values | Example |
|---|---|---|---|
| 1 | Account | psx_* | psx_abc123 |
| 2 | Pool | mbl · peer · any · best | mbl |
| 3 | Country | 2-letter ISO code | us · gb · de · fr · es |
Optional tokens
| Token | Value | What it does |
|---|---|---|
| -sid-<id> | 8–64 chars | Sticky session — same IP for the duration of this session ID |
| -rot-<mode> | auto5 · auto10 · auto20 · auto60 · sticky · hard | Rotation policy — auto-rotate on schedule, stick, or rotate on demand |
| -carrier-<name> | Carrier slug | Filter to a specific carrier (e.g. tmobile, vodafone, ee, orange) |
| -city-<name> | City slug | City-level targeting (e.g. newyork, london, berlin, madrid, paris) |
| -failover-<policy> | any · samecountry · samecarrier · strict | What to do when the assigned modem drops mid-session |
| -ttl-<seconds> | 60 – 86400 | Session time-to-live in seconds |
Sticky session security: session IDs must be 8–64 characters of [a-z0-9_]. Sequential numbers and common words (test, demo, admin, user) are rejected so other customers can't accidentally collide with your session. Pick something random per account.
Click country / carrier / city / session / rotation — get the curl, Python, and Node code instantly.
Code examples
curl — sanity check
curl -x http://psx_YOUR_ID-mbl-us:YOUR_PASSWORD@gw.proxies.sx:7000 \
https://api.ipify.org?format=json
# → { "ip": "172.58.x.x" } ← real T-Mobile US IPPython — requests
import requests
PROXY = "http://psx_YOUR_ID-mbl-us-rot-auto10:YOUR_PASSWORD@gw.proxies.sx:7000"
proxies = {"http": PROXY, "https": PROXY}
r = requests.get("https://example.com", proxies=proxies, timeout=30)
print(r.status_code, r.headers.get("server"))Python — sticky session per account
# 100 ad accounts, each pinned to its own IP
for account_id in range(100):
sid = f"acct{account_id:03d}_{secrets.token_hex(4)}"
proxy = f"http://psx_YOUR_ID-mbl-us-sid-{sid}:YOUR_PASSWORD@gw.proxies.sx:7000"
# Each session ID maps to its own consistent mobile IPNode.js — Playwright
import { chromium } from 'playwright';
const browser = await chromium.launch({
proxy: {
server: 'http://gw.proxies.sx:7000',
username: 'psx_YOUR_ID-mbl-gb-city-london',
password: 'YOUR_PASSWORD',
},
});SOCKS5
curl --socks5 psx_YOUR_ID-mbl-de:YOUR_PASSWORD@gw.proxies.sx:7001 \
https://api.ipify.org?format=jsonUse cases
The token DSL maps cleanly to most real-world proxy workflows. Here are the patterns we see most.
Web scraping
Real T-Mobile / Vodafone IPs that pages won't block on the first request. Rotate per session for crawling at volume, stick when you need cookies/auth state to persist.
SEO rank tracking
See the SERP a real customer in San Diego on T-Mobile actually sees. City-level targeting unlocks per-locale rank tracking that datacenter IPs can't reach.
Multi-account ops
One sticky session token per ad account / marketplace seller / social account. Each account stays on its own IP so bans don't cascade across the cluster.
AI agents
Drop the Pool Gateway endpoint into Claude/Cursor agents via MCP, or pay autonomously via x402 USDC. Agents browse from real mobile IPs without human supervision.
Drop bots
Fresh IP per checkout attempt via rot-hard. Region-locked drops? Switch country in the username. EU drops use mbl-de or mbl-gb.
Ad verification
Verify your ad campaign from a real T-Mobile customer in Phoenix, or Berlin, or Manchester. City-level + carrier-level targeting from one credential.
Price intelligence
Amazon, Walmart, Shopify, eBay all serve different prices per region. Pull all 6 countries in parallel by changing one username token.
Reseller / SaaS
Building a niche proxy product? Use Pool Access Keys to give your sub-customers gateway access — traffic bills to you. Open-source pool-starter ships the dashboard.
Country & carrier coverage
All connections land on real SIM cards in real phones routed through real carrier networks — verifiable by ASN. Coverage updates regularly as we onboard new modems.
| Country | Code | Major carriers | Status |
|---|---|---|---|
| United States | us | T-Mobile · AT&T · Verizon | live |
| Germany | de | Vodafone · Telekom · O2 | live |
| United Kingdom | gb | EE · Vodafone · O2 | live |
| Spain | es | Telefónica · Vodafone · Orange | live |
| France | fr | Orange · SFR · Bouygues | live |
| Poland | pl | Play · Orange · T-Mobile | returning |
Live online endpoint counts per country are visible in your customer portal. The pool maintains hundreds of online modems across these geos at any time.
Protocols, sessions, limits
| Aspect | Value |
|---|---|
| HTTP endpoint | gw.proxies.sx:7000 |
| SOCKS5 endpoint | gw.proxies.sx:7001 |
| Authentication | Username + password · standard proxy auth |
| Concurrent connections | Up to 100 per account |
| Max URL length | 256 characters in proxy username |
| Sticky session ID | 8–64 chars · [a-z0-9_] |
| Default rotation | New IP every 10 minutes |
| Speeds | Mobile network speeds — varies by carrier and signal |
| Compatibility | curl · Python · Node · Go · Rust · Playwright · Puppeteer · Selenium · Antidetect browsers |
Pricing
Pay only for the bandwidth you use. No expiring plans, no per-port fees, no commitments. Volume discounts kick in automatically as your monthly usage grows.
The flagship tier. Routed across the whole pool of mobile modems. Best for scraping, SEO, multi-account, ad verification.
Dedicated mobile modem assignment. No sharing. Best for sustained heavy workloads or strict session continuity.
Volume discounts up to 40% on monthly usage. Pay with card via the customer portal, or with USDC on Base / Solana via x402 (no account needed). See full pricing on the pricing page.
Built-in protections
| Protection | What it means for you |
|---|---|
| SSRF guard | Requests to private IP ranges and cloud metadata endpoints are blocked at the gateway |
| Rate limiting | Per-IP and per-account auth rate limits prevent credential brute-forcing |
| Connection caps | Up to 100 concurrent connections per account · safety TTL on stuck slots |
| Geographic anomaly detection | Flags suspicious cross-geo session patterns |
| Auth caching | Successful auth cached briefly to keep latency low without repeated DB hits |
| Session ID validation | Common/sequential session IDs rejected so customers can't collide accidentally |
| Bcrypt password hashing | Your proxy password is never stored in plaintext |
Pool Gateway vs traditional proxy products
| Aspect | Most providers | Pool Gateway |
|---|---|---|
| Provisioning | Per-port through a dashboard | One credential — everything in the username |
| Geo switch | Buy new ports, copy new creds | Change one token in the username |
| Rotation control | Fixed per port | Per-request via -rot-<mode> |
| Sticky sessions | Separate "sticky" product line | Just add -sid-<id> |
| City targeting | Premium add-on | Built in: -city-<name> |
| Carrier targeting | Rare | Built in: -carrier-<name> |
| IP source | Often residential repackaged | Real carrier mobile IPs · ASN-verifiable |
| Pricing model | Per-port · duration-based | Pay-per-GB · duration is free |
| AI-agent payments | Card or invoice only | x402 + USDC (Base / Solana) supported |
FAQ
Are these really mobile IPs?▾
What's the difference between mbl and peer pools?▾
How do I get sticky sessions?▾
Can I rotate IP on demand?▾
How do I pay without a credit card?▾
Can I resell the pool gateway to my own customers?▾
What happens if I run out of GB mid-job?▾
How fast is it?▾
Sign in to client.proxies.sx, copy your psx_ account ID and proxy password, and you're routing in 60 seconds.