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, socks5: null, 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.
# x402 pool access is HTTP :7000 ONLY (socks5 is null). The credential is rejected on :7001 by design.
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.
Reseller-distributed pak_ keys (minted under a reseller account) can use SOCKS5 on port 7001 with the same credentials, prefix socks5://. x402-bought pool access is HTTP :7000 only - the psx_x402pool house credential is rejected on :7001 by design (use the HTTP example above).
| 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 - every request will land on a different modem. |
| 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.