Two ways in: buy pool access yourself with USDC (no account, no key from anyone), or paste a pak_ access key a reseller gave you. Real 4G/5G mobile IPs from real phones - both land you at gw.proxies.sx:7000.
An AI agent or anyone with a wallet can buy Pool Gateway access directly over x402 - no signup, no API key. One USDC payment returns one credential that reaches every country in your tier (v1 tier mbl = production modems, $4/GB). The payment is the authentication.
# Catalog + live tiers (always 200, no payment):
curl -s https://api.proxies.sx/v1/x402/pool/pricing
# Quote a purchase: no payment returns HTTP 402 with the payment requirements
curl -s "https://api.proxies.sx/v1/x402/pool?tier=mbl&country=us&traffic=1"
# 2. Pay USDC on Base or Solana to the address in the 402 body, then retry with the tx hash:
curl -s "https://api.proxies.sx/v1/x402/pool?tier=mbl&country=us&traffic=1" \
-H "Payment-Signature: YOUR_TX_HASH"
# Response: { proxy: { host: "gw.proxies.sx", httpPort: 7000, http: "http://...@gw.proxies.sx:7000", socks5: "socks5://...@gw.proxies.sx:7001", username: "psx_x402pool-mbl-us-...", password: "pak_..." }, sessionToken: "x402s_...", credit, manage }
# The username is the psx_ house identity; the pak_ key is the password. Plug both into the curl below.
# HTTP :7000 and SOCKS5 :7001 both work - GB is metered identically on either (see the SOCKS5 details section below).
Manage it afterward with the X-Session-Token the response gives you: GET /v1/x402/manage/pool/credit (remaining GB), POST /v1/x402/manage/pool/topup (more USDC -> more GB), GET /v1/x402/manage/pool/usage, POST /v1/x402/manage/pool/regenerate (new secret, same username).
pak_ key from a reseller?Paste it below. The psx_ username goes in the username position and the pak_ key is the password.
Any pak_ credential - reseller-distributed, or the psx_x402pool house credential from an x402 purchase above - works on SOCKS5 port 7001 with the exact same username/password, prefix socks5://. GB is metered identically to HTTP :7000.
| Problem | Fix |
|---|---|
407 Proxy Authentication Required | Most common cause: you put the pak_ key in the username. It goes in the password position. The username is your psx_ proxy username plus -mbl-COUNTRY (e.g. psx_x402pool-mbl-us), and the password is the pak_ key. Use the form above to get the right format. Other causes: cap reached or key disabled. |
502 Bad Gateway | No mobile device available for that country right now. Try a different country or wait 30 seconds. |
| Same IP every request, wanted rotation | Uncheck "Sticky session" above. That drops -rot-sticky, so the gateway default auto10 applies and re-picks a modem roughly every 10 minutes - not on every request. For faster turnover use -rot-auto5; for a new pick on each new connection use -rot-ondemand. |
| Different IP every request, wanted sticky | Check "Sticky session" and use the same Session ID for related requests. Sticky pins the modem, not the IP - mobile carriers can rotate egress IPs via CGNAT even on a pinned modem (T-Mobile is aggressive about this; Verizon less so). The gateway picks the most IP-stable modem available. For truly immutable IPs (cf_clearance, banking 2FA) use a dedicated port (/v1/x402/proxy) or, if your reseller pak_ key allows the peer pool, a residential peer exit. Note: x402-bought pool credentials always serve from modems - peer routes in the username are silently rewritten to mbl by design. |
| Slow / hangs | Test first against https://api.ipify.org - that returns the proxy's exit IP in <1s. If that's fine, the proxy works and the target site is slow. |
Every byte through the proxy counts against your cap, both directions. When you hit the cap, requests return 407 until you top up (x402 topup endpoint, or ask your reseller to raise the cap) - caps do not reset on their own. Your dashboard shows live usage.