Skip to content

Getting Started

peruvian edited this page May 28, 2026 · 1 revision

Getting Started

A walkthrough from "I don't have an account" to "my first customer is paying me."

If you already have a psx_ reseller API key and want to pick which integration shape to use, jump to Integration-Paths.


Step 1 — Sign up at Proxies.sx (5 min)

  1. Go to client.proxies.sx and create an account.
  2. Top up your account with $50–$100 from the Billing page. This is your wholesale balance — every GB your customers use draws against it at $4/GB. Don't skip this: with a zero balance, your pak_ keys can be minted but will refuse traffic the moment a customer tries to use them.
  3. Verify your email and (recommended) enable 2FA.

You now have a normal customer account. To resell, you need a reseller upgrade.

Step 2 — Request reseller access (1 day async)

Email hello@proxies.sx from the address you signed up with. One line is fine:

Subject: Reseller access — <your-email> Body: Please enable reseller access on my account. I plan to resell ~[X] GB/month under brand [Y].

Once enabled, you'll see new endpoints under /v1/reseller/* and new API key scopes (customers:write, customers:read, webhooks:*). The upgrade is a flag flip on the platform side and usually lands within a business day.

Step 3 — Mint your psx_ API key (1 min)

In client.proxies.sx/account:

  1. API Keys → New key
  2. Scopes: customers:write (minimum), customers:read. Add webhooks:* if you'll subscribe to events.
  3. Name it something specific to where you'll use it — e.g. prod-vercel-app, not test.
  4. Copy the key immediately — the full secret is shown exactly once. Format: psx_<32 hex>.

Store it as PROXIES_SX_API_KEY in your deployment secrets (Vercel env, AWS secrets manager, Fly secrets, etc.). Never commit it.

Also note your PROXIES_SX_USERNAME (your account's proxy username, format psx_<24 hex>) from the same page — the SDK needs it to build proxy URLs.

Step 4 — Test the credentials with curl (30 sec)

Before writing any code, prove the key works:

export PROXIES_SX_API_KEY=psx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# List your pool keys (should be an empty array on a fresh account)
curl -H "X-API-Key: $PROXIES_SX_API_KEY" \
  https://api.proxies.sx/v1/reseller/pool-keys

# → []

If you get 401 / 403, double-check:

  • The key has customers:write scope
  • You used the X-API-Key header, not Authorization: Bearer
  • Reseller access is enabled on the account

Step 5 — Pick an integration path (5 min)

See Integration-Paths for the full decision tree. Short version:

Your situation Path
No app yet, want a full branded storefront A — clone apps/starter/
Have a React/Next.js app, want to embed a dashboard B<PoolPortal />
Have an Express/Fastify/Hono/Node app C — SDK only
Backend is PHP/Python/Go/Ruby/Rust/etc. D — REST directly

Step 6 — Build & deploy

Follow the path-specific steps from the main README and Integration-Paths.

Deploy to anywhere that can run Node + Postgres for PATH A (Vercel, Fly, Railway, your own VPS, AWS). PATH B/C/D depend on your existing host.

Step 7 — Your first customer

A "customer" in your system gets a pak_<32 hex> key minted on your behalf via the SDK. They use it like this:

curl -x 'http://psx_yourUsername-mbl-us:pak_customerKey@gw.proxies.sx:7000' \
  https://api.ipify.org

That returns a US mobile-carrier IP. Your platform debit happens in the background — you'll see trafficUsedMB climb on the pak record.

Show your customer how to use this URL — most resellers' churn comes from customers getting a pak but never figuring out the username token format (username-mbl-COUNTRY). The kit includes <PakQuickstart> for this, or you can link to agents.proxies.sx/pool-quickstart.html?pak=... which prefills credentials from the URL.

Step 8 — Charge them

PATH A includes Stripe checkout out of the box. PATH B/C/D you wire up your own billing — Stripe, Lemon Squeezy, Paddle, manual invoicing, whatever. The pattern is always the same:

  1. Customer pays you in your billing system
  2. Your webhook handler mints (or tops up) a pak via the SDK
  3. SDK returns the pak record, you store it in your DB
  4. Customer dashboard shows the pak + usage

For x402 / USDC payments from AI agents instead of (or in addition to) Stripe, see x402-and-Wallet-Setup.


What can go wrong

  • 401 Unauthorized on the curl test → API key scope or auth header. See Step 4.
  • pak_ mints OK but proxy returns 407 to the customer → check your wholesale balance (Step 1) and check the customer's pak hasn't been auto-suspended at its cap.
  • Customer says "the IP keeps changing" → that's expected on the mobile pool with sticky sessions. Read Sticky-Sessions-and-Rotation before responding.

More: Troubleshooting.


Next reads