-
Notifications
You must be signed in to change notification settings - Fork 0
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.
- Go to client.proxies.sx and create an account.
-
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. - Verify your email and (recommended) enable 2FA.
You now have a normal customer account. To resell, you need a reseller upgrade.
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.
- API Keys → New key
- Scopes:
customers:write(minimum),customers:read. Addwebhooks:*if you'll subscribe to events. - Name it something specific to where you'll use it — e.g.
prod-vercel-app, nottest. -
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.
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:writescope - You used the
X-API-Keyheader, notAuthorization: Bearer - Reseller access is enabled on the account
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 |
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.
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.orgThat 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.
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:
- Customer pays you in your billing system
- Your webhook handler mints (or tops up) a pak via the SDK
- SDK returns the pak record, you store it in your DB
- 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.
-
401 Unauthorizedon the curl test → API key scope or auth header. See Step 4. -
pak_mints OK but proxy returns407to the customer → check your wholesale balance (Step 1) and check the customer'spakhasn'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.
- Integration-Paths — pick A/B/C/D
- Pak-Key-Lifecycle — how paks behave once minted
- Sticky-Sessions-and-Rotation — answer customer IP questions correctly
Wiki for bolivian-peru/proxy-reseller-kit · Built by Proxies.sx · Edit on GitHub