Base URL
https://api.proxies.sx/v1Authentication
All API requests require authentication via API key. Get your API key from the dashboard
Header: X-API-Key: psx_your_api_key_hereAPI Key Scopes
| Scope | Description |
|---|---|
| ports:read | Read port information |
| ports:write | Create, update, delete ports |
| ports:rotate | Rotate ports to new devices |
| billing:read | Read billing and payment history |
| traffic:read | Read traffic usage data |
| account:read | Read account information |
Quick Start Integration Guide
Step 1: Check Your Resources
curl https://api.proxies.sx/v1/account/summary \
-H "X-API-Key: psx_your_key"Step 2: Get Available Locations
curl https://api.proxies.sx/v1/countries/with-devices \
-H "X-API-Key: psx_your_key"Step 3: Create a Port
curl -X POST https://api.proxies.sx/v1/ports \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"countryId":"COUNTRY_ID","expiresAt":86400}'Step 4: Use Your Proxy
# HTTP Proxy
http://proxyLogin:proxyPassword@serverIp:httpPort
# SOCKS5 Proxy
socks5://proxyLogin:proxyPassword@serverIp:socksPortStep 5: Rotate IP When Needed
# Option A: API rotation (authenticated)
curl -X POST https://api.proxies.sx/v1/ports/PORT_ID/rotate \
-H "X-API-Key: psx_your_key"
# Option B: Token rotation (no auth needed!)
curl https://api.proxies.sx/v1/rotate/YOUR_ROTATION_TOKENReference Data Endpoints
/v1/countries/with-devicesScope: ports:readGet countries with available devices and free device count
curl https://api.proxies.sx/v1/countries/with-devices \
-H "X-API-Key: psx_your_key"[
{
"_id": "69276bf1f547dfc948699263",
"name": "Poland",
"code": "PL",
"iso3": "POL",
"phoneCode": "+48",
"freeDeviceCount": 26
},
{
"_id": "69276bf1f547dfc9486992b4",
"name": "United Kingdom",
"code": "GB",
"iso3": "GBR",
"phoneCode": "+44",
"freeDeviceCount": 21
}
]/v1/carriers/country/:countryId?withDevice=trueScope: ports:readGet carriers in a country with free device count
curl "https://api.proxies.sx/v1/carriers/country/69276bf1f547dfc948699263?withDevice=true" \
-H "X-API-Key: psx_your_key"[
{
"_id": "69276bf5f547dfc94869f2dc",
"name": "T-Mobile Polska S.A.",
"brand": "T-Mobile",
"mcc": "260",
"mnc": "02",
"technology": "LTE",
"freeDeviceCount": 19
},
{
"_id": "69276bf5f547dfc94869f2df",
"name": "Orange Polska S.A.",
"brand": "Orange",
"technology": "LTE",
"freeDeviceCount": 7
}
]/v1/tariffsScope: ports:readGet available tariff plans and pricing with developer-friendly computed fields
curl https://api.proxies.sx/v1/tariffs \
-H "X-API-Key: psx_your_key"[
{
"_id": "69414788d149cecffee567a0",
"type": "TrafficShared",
"price": 4,
"trafficRange": { "min": 1, "max": 999999 },
"category": "shared",
"resourceType": "traffic",
"pricePerUnit": 4,
"unitType": "gb",
"billingPeriod": "one-time",
"displayName": "Mobile Traffic (Pay-per-GB)",
"description": "Premium 4G/5G mobile traffic - $4/GB base, volume discounts apply (10-40% off). Traffic never expires."
}
]
Note: Port slots are FREE and unlock based on cumulative GB purchases.Port Management Endpoints
/v1/portsScope: ports:readList all your ports with connection details, device info, and traffic usage
curl https://api.proxies.sx/v1/ports \
-H "X-API-Key: psx_your_key"[
{
"_id": "6935a7065cb903907b750c64",
"id": "6935a7065cb903907b750c64",
"name": "psx_8cc33c_91vjml",
"displayName": "Proxy #1",
"httpPort": 8522,
"socksPort": 5522,
"serverIp": "138.201.158.43",
"proxyLogin": "user_8cc33c91vjml",
"proxyPassword": "gyQ4n6hP8R",
"slotType": "shared",
"exclusive": false,
"osFingerprint": "windows:1",
"suspended": false,
"status": "active",
"expiresAt": 1765210246994,
"createdAt": 1733587846996,
"rotationToken": "32c2144a26f1ff1a3a0b79c4e31b7369",
"rotationSettings": {
"enabled": true,
"intervalMinutes": 30,
"intervalSeconds": 1800,
"lastRotatedAt": "2025-12-17T09:30:00.000Z",
"rotationCount": 5
},
"usedTraffic": 1.5,
"rotationLink": "https://api.proxies.sx/v1/rotate/32c2144a26f1ff1a3a0b79c4e31b7369",
"device": {
"_id": "69280411c01b1bb60efc4ab7",
"name": "dongle501_pl",
"country": { "name": "Poland", "code": "PL" },
"carrier": { "name": "T-Mobile Polska S.A.", "brand": "T-Mobile" },
"region": { "name": "Warsaw" }
}
}
]/v1/portsScope: ports:writeCreate a new port (requires available tier slots and traffic)
{
"countryId": "69276bf1f547dfc948699263", // Required
"expiresAt": 86400, // Required (seconds: 86400=24h)
"carrierId": "carrier_id", // Optional
"osFingerprint": "windows:1" // Optional
}curl -X POST https://api.proxies.sx/v1/ports \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"countryId":"69276bf1f547dfc948699263","expiresAt":86400}'{
"_id": "675123abc...",
"displayName": "Proxy #1",
"serverIp": "62.30.207.124",
"httpPort": 8002,
"socksPort": 5002,
"proxyLogin": "auto_generated",
"proxyPassword": "auto_generated",
"expiresAt": 1702320967890
}/v1/ports/:idScope: ports:readGet full port details including device info and rotation settings
curl https://api.proxies.sx/v1/ports/6935a7065cb903907b750c64 \
-H "X-API-Key: psx_your_key"/v1/ports/:id/statusScope: ports:readGet port online/offline status
{
"status": "online",
"isActive": true,
"lastChecked": "2025-12-17T10:00:00.000Z",
"expiresAt": 1765210246994
}/v1/ports/:id/pingScope: ports:readTest proxy connectivity and measure response time
{
"success": true,
"ip": "109.40.240.170",
"responseTime": 513,
"testTime": "2025-12-17T10:37:36.621Z"
}/v1/ports/:id/ipScope: ports:readGet current public IP address of the port
{
"publicIp": "109.40.240.170",
"serverIp": "138.201.158.43"
}/v1/ports/:id/os-fingerprintsScope: ports:readGet available OS fingerprint options for this port's server
[
{ "value": "", "label": "None (Default)" },
{ "value": "windows:1", "label": "Windows 10" },
{ "value": "macosx:4", "label": "macOS / iPhone 13" },
{ "value": "ios:2", "label": "iOS (Real iPhone)" },
{ "value": "ios:1", "label": "iOS (p0f Compliant)" },
{ "value": "android:3", "label": "Android (Real)" },
{ "value": "android:1", "label": "Android (p0f Compliant)" },
{ "value": "macosx:3", "label": "macOS X" }
]/v1/ports/:idScope: ports:writeDelete a port (removes from modem and database)
curl -X DELETE https://api.proxies.sx/v1/ports/675123abc... \
-H "X-API-Key: psx_your_key"{
"message": "Port deleted successfully"
}/v1/ports/:id/reconfigureScope: ports:writeChange port location/carrier
{
"countryId": "new_country_id", // Required
"carrierId": "new_carrier_id" // Optional
}/v1/ports/:id/credentialsScope: ports:writeUpdate port login/password credentials
{
"proxyLogin": "new_username",
"proxyPassword": "new_password"
}/v1/ports/:id/os-fingerprintScope: ports:writeChange OS fingerprint (p0f) for traffic spoofing
{
"osFingerprint": "windows:1"
}
// Available values:
// "", "windows:1", "macosx:3", "macosx:4",
// "ios:1", "ios:2", "android:1", "android:3"IP Rotation Endpoints
/v1/ports/:id/rotateScope: ports:rotateRotate port to get a new IP (5-minute cooldown between rotations).
curl -X POST https://api.proxies.sx/v1/ports/6935a7065cb903907b750c64/rotate \
-H "X-API-Key: psx_your_key"{
"success": true,
"portId": "6935a7065cb903907b750c64",
"oldDeviceId": "69280411c01b1bb60efc4ab7",
"newDeviceId": "69280412c01b1bb60efc4ab8",
"oldIp": "109.40.240.170",
"newIp": "109.40.241.55",
"rotationDurationMs": 2450,
"rotationCount": 5,
"message": "Port rotated successfully"
}{
"success": true,
"portId": "6935a7065cb903907b750c64",
"oldIp": "109.40.240.170",
"rotationDurationMs": 1523,
"message": "IP reset triggered via airplane mode. New IP will be available in 10-30 seconds.",
"isAirplaneMode": true
}/v1/ports/:id/can-rotateScope: ports:readCheck if port can be rotated and cooldown status
{
"canRotate": true,
"availableDevices": 26
}{
"canRotate": false,
"reason": "Rate limited. Must wait 180 seconds before next rotation.",
"nextRotationAt": "2025-12-17T10:05:00.000Z",
"cooldownRemaining": 180
}/v1/ports/:id/rotation-settingsScope: ports:writeEnable/configure auto-rotation. Interval in SECONDS: 300-86400 (shared), 60-86400 (private)
{
"enabled": true,
"intervalSeconds": 1800, // 300-86400 (shared) or 60-86400 (private) - in SECONDS
"matchCarrier": false, // Keep same carrier when rotating
"matchCity": false // Keep same city/region when rotating
}curl -X PATCH https://api.proxies.sx/v1/ports/6935a7065cb903907b750c64/rotation-settings \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"intervalSeconds":1800}'{
"enabled": true,
"intervalMinutes": 30,
"intervalSeconds": 1800,
"lastRotatedAt": "2025-12-17T02:24:17.359Z",
"rotationCount": 7,
"matchCarrier": false,
"matchCity": false,
"excludedDeviceIds": [],
"_id": "694166405313a0aecb26ca09",
"id": "694166405313a0aecb26ca09"
}
// Note: Response includes both intervalMinutes (legacy) and intervalSeconds (primary).
// Always use intervalSeconds for new integrations./v1/ports/:id/rotation-historyScope: ports:readGet rotation history for a port
{
"rotations": [
{
"_id": "6941a706...",
"portId": "6935a7065cb903907b750c64",
"fromDeviceId": "69280411c01b1bb60efc4ab7",
"toDeviceId": "69280412c01b1bb60efc4ab8",
"fromIp": "109.40.240.170",
"toIp": "109.40.241.55",
"triggerType": "api_token",
"success": true,
"rotationDurationMs": 2450,
"country": "Poland",
"carrier": "T-Mobile",
"createdAt": "2025-12-17T09:55:00.000Z"
}
],
"total": 5
}
// triggerType values: "manual", "automatic", "api_token"Account & Billing Endpoints
/v1/accountScope: account:readComplete account details with wallet, subscriptions, ports, and status flags
{
"user": {
"_id": "6935a45d04523391208cc33c",
"email": "user@example.com",
"role": "customer",
"isActive": true
},
"wallet": {
"totalDeposited": 100.00,
"totalSpent": 50.00,
"availableBalance": 50.00,
"currency": "USD"
},
"tier": {
"current": "Bronze",
"cumulativeGB": 25.5,
"nextTier": "Silver",
"nextTierAt": 25,
"slots": {
"shared": { "total": 10, "used": 2, "available": 8 },
"private": { "total": 2, "used": 0, "available": 2 }
}
},
"subscription": {
"shared": {
"active": true,
"traffic": { "purchasedGB": 10, "usedGB": 2.5, "availableGB": 7.5 },
"trafficNeverExpires": true
},
"private": {
"active": false,
"traffic": { "purchasedGB": 0, "usedGB": 0, "availableGB": 0 },
"trafficNeverExpires": true
}
},
"status": {
"hasActiveSubscription": true,
"hasAvailableTraffic": true,
"lowBalance": false,
"lowTraffic": false
}
}/v1/account/summaryScope: account:readLightweight account summary for dashboard widgets and quick status checks
{
"balance": 50.00,
"currency": "USD",
"tier": {
"current": "Bronze",
"cumulativeGB": 25.5,
"slots": {
"shared": { "total": 10, "used": 2, "available": 8 },
"private": { "total": 2, "used": 0, "available": 2 }
}
},
"shared": {
"trafficGB": { "total": 10, "used": 2.5, "available": 7.5 },
"trafficNeverExpires": true
},
"private": {
"trafficGB": { "total": 0, "used": 0, "available": 0 },
"trafficNeverExpires": true
},
"alerts": [
{ "type": "low_traffic", "message": "Traffic is running low", "severity": "info" }
]
}/v1/account/usage?period=30dScope: traffic:readTraffic usage breakdown by port (7d, 30d, or 90d period)
{
"period": "30d",
"generatedAt": "2025-12-17T10:00:00.000Z",
"traffic": {
"shared": {
"totalUsedGB": 2.5,
"portCount": 2,
"byPort": [
{ "portId": "6935a706...", "portName": "Proxy #1", "usedGB": 1.5 },
{ "portId": "6935a707...", "portName": "Proxy #2", "usedGB": 1.0 }
]
},
"combined": {
"totalUsedGB": 2.5,
"portCount": 2
}
}
}/v1/traffic/balance-breakdownScope: traffic:readDetailed traffic and billing breakdown with formula explanation
{
"totalPayments": 100.00,
"adminPaymentCredits": 0,
"totalPurchases": 50.00,
"trafficUsedGB": 2.5,
"purchasedTrafficGB": 10,
"availableTrafficGB": 7.5,
"pricePerGB": 4,
"balance": 50.00,
"currency": "USD",
"formula": "balance = (totalPayments + adminCredits) - totalPurchases"
}Complete Workflow Example
# 1. Check account status first
curl https://api.proxies.sx/v1/account/summary \
-H "X-API-Key: psx_your_key"
# 2. Get available countries
curl https://api.proxies.sx/v1/countries/with-devices \
-H "X-API-Key: psx_your_key"
# 3. Get carriers for Poland
curl "https://api.proxies.sx/v1/carriers/country/69276bf1f547dfc948699263?withDevice=true" \
-H "X-API-Key: psx_your_key"
# 4. Create a 24-hour port
curl -X POST https://api.proxies.sx/v1/ports \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"countryId":"69276bf1f547dfc948699263","expiresAt":86400}'
# 5. List your ports
curl https://api.proxies.sx/v1/ports \
-H "X-API-Key: psx_your_key"
# 6. Rotate a port to new IP
curl -X POST https://api.proxies.sx/v1/ports/PORT_ID/rotate \
-H "X-API-Key: psx_your_key"
# 7. Enable auto-rotation (every 30 min = 1800 seconds)
curl -X PATCH https://api.proxies.sx/v1/ports/PORT_ID/rotation-settings \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"intervalSeconds":1800}'
# 8. Check rotation history
curl https://api.proxies.sx/v1/ports/PORT_ID/rotation-history \
-H "X-API-Key: psx_your_key"
# 9. Change OS fingerprint to Windows
curl -X PATCH https://api.proxies.sx/v1/ports/PORT_ID/os-fingerprint \
-H "X-API-Key: psx_your_key" \
-H "Content-Type: application/json" \
-d '{"osFingerprint":"windows:1"}'
# 10. Get usage analytics
curl "https://api.proxies.sx/v1/account/usage?period=30d" \
-H "X-API-Key: psx_your_key"
# 11. Delete a port when done
curl -X DELETE https://api.proxies.sx/v1/ports/PORT_ID \
-H "X-API-Key: psx_your_key"Proxy Connection Formats
http://username:password@serverIp:httpPortsocks5://username:password@serverIp:socksPorthttp://user_abc123:pass456@138.201.158.43:8522
socks5://user_abc123:pass456@138.201.158.43:5522Key Response Fields for Developers
Port Object Fields
slotType- "shared" | "private"status- "active" | "suspended" | "expired"rotationToken- Token for no-auth rotationtrafficSummary- { usedMB, usedGB }healthStatus- "healthy" | "degraded" | "offline"osFingerprint- Current OS spoofing setting
Account Object Fields
wallet- Detailed balance breakdowntier- Current tier, cumulative GB, FREE slot allocationsubscription- Traffic availability (slots are FREE)status.hasAvailableTraffic- Boolean flagstatus.lowTraffic- Boolean flag
MCP Server
AI-Controlled Proxy Management
npx -y @proxies-sx/mcp-servernpm i -g @proxies-sx/mcp-servernpm i @proxies-sx/mcp-serverThe PROXIES.SX MCP Server allows AI assistants (Claude, Cursor, Cline) to manage your proxy infrastructure through natural language. Create ports, rotate IPs, monitor status, and purchase resources — all through conversation.
Two Authentication Modes
Use your Proxies.sx account and API key to manage existing subscriptions.
PROXIES_API_KEYAI agents autonomously purchase proxies using USDC on Base - no account needed!
AGENT_WALLET_KEYComplete proxy management
No code needed
Autonomous USDC
9 antidetect tools
Open source
MCP Setup
API Key Mode Configuration
For users with existing Proxies.sx accounts - manage your subscriptions with your API key:
{
"mcpServers": {
"proxies-sx": {
"command": "npx",
"args": ["-y", "@proxies-sx/mcp-server"],
"env": {
"PROXIES_API_KEY": "psx_your_api_key_here"
}
}
}
}x402 Payment Mode Configuration
For autonomous AI agents - the server pays with USDC on Base (no account needed):
{
"mcpServers": {
"proxies-sx": {
"command": "npx",
"args": ["-y", "@proxies-sx/mcp-server"],
"env": {
"AGENT_WALLET_KEY": "0x_your_base_wallet_private_key"
}
}
}
}Available Tools by Category
pool_get_stock - Get live Pool Gateway stock, no account neededpool_get_facets - List the cities, states, carriers (with ASN and class) and IP classes that have stock in one country, with counts, no account neededpool_build_proxy_url - Build a ready-to-use Pool Gateway proxy URL (gw.proxies.sx, HTTP 7000 or SOCKS5 7001)pool_explain_error - Explain a Pool Gateway error and say what to do about itpool_get_my_credentials - Get your Pool Gateway proxy username and proxy password with ready HTTP and SOCKS5 URLspool_set_proxy_password - Set a new proxy password (at least 6 characters)pool_get_my_stats - Get your own Pool Gateway traffic and open connections, plus the health score of the pool and how many devices are connected to itpool_list_sessions - List your saved Pool Gateway sessions: pool, country, carrier, rotation mode, bytes and last activitypool_close_session - Close one Pool Gateway session by the sessionKey from pool_list_sessionspool_close_all_sessions - Close every saved Pool Gateway session of the accountprivate_pool_list - List your Private Pools with their countries, status, gateway username, connection strings with the password masked (private_pool_reveal shows the key) and remaining GBprivate_pool_build - Create a Private Pool paid from the account's existing GB balance: no purchase, traffic is metered from the same balanceprivate_pool_reveal - Show the gateway password (pak_ key) of a Private Poolprivate_pool_usage - Get the traffic of a Private Pool per day, in MBreserved_ip_list - List the Reserved IPs a Private Pool holds: country, class, carrier, city, rotation mode, whether the device is online, the exit IP last seen, and connection strings with the password maskedreserved_ip_reserve - Reserve one device for a Private Pool so no other customer is routed through it, and get its connection strings with the password maskedreserved_ip_rotate - Move a Reserved IP to a different device in the same country nowreserved_ip_extend - Change how long a Reserved IP is kept without trafficreserved_ip_set_rotation - Set whether a Reserved IP moves to another device on a schedule: off (hold the device, the default) or every 5, 10, 20 or 60 minutesreserved_ip_release - Give a Reserved IP back to the shared poolget_account_summary - Get the account balance, free port slots, traffic bought and left, and any account alertsget_account_usage - Get traffic purchased, used and still available, split into Pool Gateway traffic and dedicated-port trafficget_pricing - Get the live price per GB, the volume discounts, the free port-slot tiers and your current tiercalculate_price - Calculate what a GB amount costs with the volume discount appliedpurchase_shared_traffic - Buy traffic in GB from the account balancecoupon_validate - Check whether a coupon code is valid for an order, without using itcoupon_redeem - Redeem a standalone coupon that grants free GB or port slots to the accountget_payment_history - List the account's past payments and crypto top-up orderscreate_crypto_payment - Create a crypto order that tops up the account balance and return its hosted payment linkcheck_crypto_payment_status - Check whether a crypto order is still unpaid, confirming, paid, expired or cancelled, and whether the balance was creditedget_pending_crypto_payments - List the account's crypto orders that are not finished yet, with their payment linkscancel_crypto_payment - Cancel a crypto order that has not been paid yetget_crypto_payment_info - Check whether crypto top-ups are available right now and which currencies the payment page acceptslist_available_countries - List the countries where a dedicated port can be created right now, with the countryId create_port needslist_ports - List your dedicated ports with status, country, carrier, expiry and port idsget_port - Get one dedicated port with its location and ready-to-use HTTP and SOCKS5 connection strings (contains the port password)create_port - Create a dedicated port on a carrier modem and return its connection stringsdelete_port - Delete a dedicated port and free its slotupdate_port_credentials - Change the login and/or password of a dedicated portupdate_os_fingerprint - Set the OS fingerprint (TCP/IP signature) a dedicated port presentsreconfigure_port - Move a dedicated port to another country, carrier or cityextend_port - Add hours to a dedicated port's expiryget_port_status - Check whether a dedicated port is online, offline or expiredget_port_ip - Get the server address a dedicated port listens onping_port - Test that a dedicated port answers and measure its latencyspeed_test_port - Run a speed test through a dedicated port (download, upload, ping)rotate_port - Move a dedicated port to another modem in the same locationcheck_rotation_availability - Check whether a dedicated port can be rotated now, how long the cooldown still runs and how many other modems are freeconfigure_auto_rotation - Turn automatic rotation of a dedicated port on or off and set its intervalget_rotation_history - Get the past rotations of a dedicated port: when, how triggered, the location it moved to and whether it workedget_rotation_token_url - Get the public rotation link of a dedicated portget_proxy_connection_string - Build the HTTP or SOCKS5 connection string of a dedicated port (contains the port password)get_all_proxy_formats - Get a dedicated port in every common format: URLs, host:port, environment variables, curl, Python and Node.js snippets, and its public rotation linkget_service_status - Check whether Proxies.sx is healthy right now: open Pool Gateway incidents, the state of the API, gateway and relay, and recent uptimeget_os_fingerprint_options - List the OS fingerprint values create_port and update_os_fingerprint acceptcreate_support_ticket - Open a support ticket that a person at Proxies.sx reads and answerslist_my_tickets - List your support tickets with their status and IDsget_ticket - Get one support ticket with the original message and every replyreply_to_ticket - Add a reply to one of your support ticketsclose_ticket - Close one of your support tickets once the problem is solvedpool_mint_key - Create a Pool Access Key (pak_) for one of your customers; it is used as the proxy passwordpool_list_keys - List your Pool Access Keys with usage, cap and expiry; the key values are maskedpool_topup_key - Add GB to a Pool Access Key's cap and/or extend its expiry in one steppool_update_key - Change a Pool Access Key's label, enabled flag, cap, expiry or quality tierpool_regenerate_key - Replace the secret pak_ value of a Pool Access Keypool_reveal_key - Show the full pak_ value of a Pool Access Keypool_delete_key - Delete a Pool Access Keypool_key_usage - Get the traffic of one Pool Access Key per day, in MBpool_key_audit - Get the audit log of one Pool Access Key, newest first: created, changed, topped up, regenerated, revealed, deleted, and gateway logins that worked or failedget_x402_session - Get details of your x402 session including all portslist_x402_ports - List all ports in your x402 session with connection strings and expiration timesget_x402_port_status - Get detailed status of a specific port including traffic usage and connection infoget_sessions_by_wallet - List all x402 sessions associated with your wallet addressget_session_status - Get quick status check for a session including traffic usage and expirationreplace_x402_port - Replace an offline port of an x402 session with a new port on another device, at no chargecalculate_x402_topup - Calculate what it costs to add traffic and/or time to an x402 sessiontopup_x402_session - Add traffic and/or time to an x402 sessionops_get_user - Customer 360 view: balance, pool-gateway usage, ports, and (if a farmer) their AI noteops_get_user_audit - Recent ops-agent actions taken on this userops_reconcile_payments - Read-only Stripe-vs-DB payment view for a user (confirmed total + pending)ops_list_tickets - List support tickets (admin view)ops_reply_ticket - Post an admin reply to a ticket, optionally emailing the customerops_set_slots - Set a user's port slot limit (capped)ops_credit_balance - Credit a user's balance in USD (admin credit)ops_email_user - Send a personalized email to one user (hourly rate-capped)ops_list_farmers - List farmer AI notes (shared operational memory)ops_get_farmer - Farmer fleet funnel (total/online/verified/listed/routable) + AI noteops_write_farmer_note - Write/append a farmer AI note (situation, nextAction, free note) — shared with future AI sessionsx402_get_proxy - Buy a dedicated mobile proxy on one carrier modem by paying USDC from the agent wallet; no account neededx402_get_pricing - Get the live x402 price per GB, the smallest purchase, the allowed duration and the payment networks, and compare the cost of a purchase with the wallet balancex402_list_sessions - List the active x402 proxy sessions this wallet bought from this machine, with location, expiry and proxy hostx402_check_session - Get status, time left, traffic used and the connection strings of an x402 proxy sessionx402_wallet_balance - Get the agent wallet address and its USDC and ETH (gas) balance on the Base networkx402_rotate_ip - Move an x402 proxy to another modem so it gets a different exit IPx402_list_countries - List the countries where x402_get_proxy can create a proxy right now, with the number of free modemsx402_extend_session - Add hours to an x402 proxy sessionx402_service_status - Check that the x402 payment service is up, and show the wallet balance and how many sessions are active or about to expirex402_get_pool_access - Buy Pool Gateway traffic by paying USDC from the agent wallet; no account neededx402_pool_credit - Get the GB bought, used and left on an x402 pool sessionx402_pool_topup - Add GB and/or time to an x402 pool sessionx402_pool_regenerate - Replace the password of an x402 pool credential, for example after a leakx402_pool_connection - Show the gateway host, port, username and password of an x402 pool session againx402_pool_usage - Get the traffic of an x402 pool session per day, in MBx402_pool_pricing - Get the Pool Gateway tiers that can be bought with x402 and their live price per GB and smallest purchasebrowser_create - Create antidetect browser session with mobile proxybrowser_go - Navigate to URLbrowser_click - Click element on pagebrowser_type - Type text into inputbrowser_see - Take screenshot / extract visible contentbrowser_wait - Wait for element or conditionbrowser_extract - Extract structured data from pagebrowser_save - Save identity bundle (cookies, fingerprint, proxy)browser_end - Close browser sessionAgent APIs
x402-gated endpoints at api.proxies.sx
Pay per request with USDC. No API keys, no accounts. AI agents pay autonomously on Base or Solana.
| Agent | Endpoint | Price | Status |
|---|---|---|---|
| Mobile Proxy | GET /v1/x402/proxy | from $4/GB | LIVE |
| Antidetect Browser | POST browser.proxies.sx/v1/sessions | ~$0.005/min | LIVE |
| Google Maps Lead Gen | GET /v1/x402/maps/run | $0.005/record | LIVE |
| Mobile SERP Tracker | GET /v1/x402/serp | $0.003/query | LIVE |
| Reddit Intelligence | GET /v1/x402/reddit/* | $0.005–$0.01/query | LIVE |
| Instagram Intelligence | GET /v1/x402/instagram/* | $0.01–$0.15/query | LIVE |
| Airbnb Market Intel | GET /v1/x402/airbnb/* | $0.01–$0.05/query | LIVE |
| LinkedIn Enrichment | GET /v1/x402/linkedin/* | $0.01/query | LIVE |
| Job Market Intelligence | GET /v1/x402/jobs | $0.005/query | LIVE |
| Reviews & Business | GET /v1/x402/reviews/* · /business/* | $0.005–$0.02/query | LIVE |
| Prediction Markets | GET /v1/x402/predictions | $0.05/query | LIVE |
11 live agent services · 26+ x402-gated endpoints. All accept USDC on Base or Solana. No accounts, no API keys. Full schema in agents.proxies.sx/skill.md.
Antidetect Browser v1.1 — Identity Bundles
Cloud browser (Camoufox) with unique fingerprint + real mobile proxy. Each session automatically includes a mobile proxy — no need to provide your own.
Real 4G/5G mobile proxy allocated per session. Countries: US, GB, FR, NL, PL, GE.
Save & restore cookies, localStorage, fingerprint, proxy device binding across sessions.
Same fingerprint, same proxy device. Pass profile_id to auto-restore.
browser_create — Create session with fingerprint + mobile proxy
browser_go — Navigate to URL
browser_click — Click element
browser_type — Type text into input
browser_see — Screenshot / extract visible content
browser_wait — Wait for element or condition
browser_extract — Extract structured data from page
browser_save — Save identity bundle (cookies, fingerprint, proxy)
browser_end — Close browser session@proxies-sx/browser-mcp — 9 tools for antidetect browser controlx402 Protocol
Payment-Gated Proxy Access for AI Agents
x402 Protocol enables instant proxy access for AI agents using HTTP 402 Payment Required responses. No registration needed — just pay with USDC on Base or Solana and receive credentials instantly.
Pay and receive credentials instantly
On Base (L2) or Solana
Designed for autonomous agents
Dynamic Pricing & Availability
All x402 responses include live data:
- • Available countries - Updated every 5 minutes from device inventory
- • Pricing included - the live per-GB rate (one tier, shared)
- • Stock levels - Real device counts per country
x402 Endpoints
/v1/x402/healthScope: publicCheck if x402 integration is enabled
{"enabled": true, "version": "1.0.0"}/v1/x402/infoScope: publicMaster endpoint - Get all config in one call (pricing, networks, limits)
{
"pricing": {"shared": {...}},
"networks": ["solana", "base"],
"wallets": {...},
"limits": {"minDuration": 3600, "maxDuration": 2592000, "minTrafficGB": 0.1}
}/v1/x402/countriesScope: publicGet available countries (dynamic, updated every 5 min)
tier(optional) - "shared" (the only tier; private ports are retired)
[
{"code": "US", "name": "United States", "availableDevices": 88, "tier": "both"},
{"code": "NL", "name": "Netherlands", "availableDevices": 27, "tier": "both"},
{"code": "GB", "name": "United Kingdom", "availableDevices": 22, "tier": "both"},
{"code": "PL", "name": "Poland", "availableDevices": 22, "tier": "both"}
]/v1/x402/pricingScope: publicGet current pricing and payment networks
{
"shared": {
"tier": "shared",
"portPriceMonthly": 0,
"trafficPricePerGB": 4,
"portPricePerHour": 0,
"portPricePerDay": 0
},
"networks": [
{
"network": "base",
"chainId": "eip155:8453",
"enabled": true,
"usdcAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"recipientAddress": "0xF8cD900794245fc36CBE65be9afc23CDF5103042"
},
{
"network": "solana",
"chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"enabled": true,
"usdcAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"recipientAddress": "6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv"
}
],
"minDurationSeconds": 3600,
"maxDurationSeconds": 2592000,
"minTrafficGB": 0.1
}/v1/x402/calculate?tier=shared&duration=3600&traffic=1Scope: publicCalculate cost for specific duration and traffic
tier- "shared"duration- seconds (e.g., 3600 = 1 hour)traffic- GB amount
{"cost": "0.50", "currency": "USDC", "breakdown": {...}}/v1/x402/proxy?country=US&duration=3600&traffic=1Scope: publicRequest proxy credentials (returns 402 Payment Required)
country- ISO code (e.g., "US", "PL", "GB")duration- secondstraffic- GB amountcarrier(optional) - specific carrier
{
"x402Version": 1,
"error": "Payment required to access this resource",
"accepts": [
{
"scheme": "exact",
"network": "base",
"maxAmountRequired": "4000000",
"resource": "https://api.proxies.sx/v1/x402/proxy?country=US&duration=3600&traffic=1",
"payTo": "0xF8cD900794245fc36CBE65be9afc23CDF5103042",
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"maxTimeoutSeconds": 30
},
{
"scheme": "exact",
"network": "solana",
"maxAmountRequired": "4000000",
"payTo": "6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
}
]
}/v1/x402/agentsScope: publicAgent registry - register and manage AI agent wallets
Used for tracking agent usage and preferences.
/v1/x402/proxyScope: x402Purchase proxy (POST method, same as GET)
{
"country": "US",
"duration": 3600,
"traffic": 1,
"tier": "shared"
}/v1/x402/.well-knownScope: publicProtocol discovery endpoint
Returns x402 protocol information and capabilities.
/v1/x402/manage/sessionScope: X-Session-TokenGet session details via session token
X-Session-Token: x402s_...
{
"sessionId": "...",
"wallet": "0x...",
"ports": [...],
"traffic": {"allocated": 1, "used": 0.2, "remaining": 0.8},
"expiresAt": "2025-01-15T10:00:00Z"
}/v1/x402/manage/session/creditScope: X-Session-TokenCheck remaining credit in session
{
"trafficGB": 0.8,
"valueDollars": 3.20
}/v1/x402/manage/portsScope: X-Session-TokenList all ports in session
{
"ports": [
{
"portId": "...",
"status": "online",
"country": "US",
"proxy": {"http": "...", "socks5": "..."}
}
]
}/v1/x402/manage/ports/:portId/statusScope: X-Session-TokenGet status of specific port
{
"status": "online",
"lastChecked": "2025-01-15T10:00:00Z",
"trafficUsed": 0.2
}/v1/x402/manage/ports/replaceScope: X-Session-TokenReplace offline port (free, max 3 per session)
{
"country": "US"
}Maximum 3 replacements per session. Free of charge.
/v1/x402/manage/ports/recreateScope: X-Session-TokenRecreate deleted port using remaining credit
If you deleted a port but still have credit, recreate it in the same session.
/v1/x402/manage/session/topup/calculateScope: X-Session-TokenPreview cost of session top-up
addTrafficGB- Additional trafficaddDurationSeconds- Additional duration
{
"cost": "8.00",
"currency": "USDC"
}/v1/x402/manage/session/topupScope: X-Session-Token + Payment-SignaturePay to add traffic or duration to session
X-Session-Token: x402s_...Payment-Signature: <tx_hash>
{
"addTrafficGB": 2,
"addDurationSeconds": 86400
}/v1/x402/session/:idScope: publicGet session by ID
Retrieve session details using session ID.
/v1/x402/session/tx/:txHashScope: publicGet session by transaction hash
Look up session using the blockchain transaction hash.
/v1/x402/sessions/wallet/:walletScope: publicGet all sessions for a wallet address
{
"sessions": [
{
"sessionId": "...",
"created": "2025-01-15T10:00:00Z",
"status": "active"
}
]
}/v1/x402/agents/:walletScope: publicGet agent details by wallet address
Retrieve agent information using wallet address.
/v1/rotate/:tokenScope: publicRotate IP via public rotation token (no auth required)
curl https://api.proxies.sx/v1/rotate/tok_abc123xyzRotation token provided in proxy credentials.
Payment Flow
# Step 1: Request proxy (get payment requirements)
curl "https://api.proxies.sx/v1/x402/proxy?country=US&duration=3600&traffic=1"
# Response: 402 Payment Required (x402Version 1)
# {
# "x402Version": 1,
# "error": "Payment required to access this resource",
# "accepts": [
# {
# "scheme": "exact",
# "network": "base",
# "maxAmountRequired": "4000000",
# "payTo": "0xF8cD900794245fc36CBE65be9afc23CDF5103042",
# "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
# }
# ]
# }
# Step 2: Send USDC payment to the payTo address (Base or Solana)
# Step 3: Retry the SAME request with your tx hash
curl "https://api.proxies.sx/v1/x402/proxy?country=US&duration=3600&traffic=1" \
-H "Payment-Signature: 0xYOUR_TX_HASH"
# Step 4: Receive proxy credentials
# {
# "proxy": {
# "http": "http://x402_user_abc:generated_pass@SERVER_IP:8080",
# "socks5": "socks5://x402_user_abc:generated_pass@SERVER_IP:1080",
# "server": "SERVER_IP",
# "httpPort": 8080,
# "socksPort": 1080,
# "username": "x402_user_abc",
# "password": "generated_pass",
# "expiresAt": "2026-01-01T13:00:00Z"
# },
# "rotationUrl": "https://api.proxies.sx/v1/rotate/YOUR_ROTATION_TOKEN",
# "management": { "sessionToken": "x402s_..." }
# }Peer Marketplace - Earn USDC
Share your internet bandwidth and get paid in USDC on Solana. AI agents and humans connect via WebSocket and route traffic through your device; you earn for eligible customer traffic it serves.
Peer API Endpoints
/v1/peer/agents/registerScope: publicRegister as a peer in the network
{
"name": "my-agent",
"type": "claude",
"walletAddress": "YOUR_SOLANA_ADDRESS",
"apiKey": "psx_YOUR_API_KEY"
}Optional apiKey (format: psx_...) auto-links device to farmer dashboard. Also accepts X-API-Key header.
{
"deviceId": "agent_abc123",
"jwt": "eyJ...",
"refreshToken": "a1b2...",
"relay": "wss://relay.proxies.sx",
"earningsPerGB": {
"mobile": "custom",
"residential": "custom",
"datacenter": "custom"
}
}Rate limit: 3 requests per minute per IP
/v1/peer/agents/:id/refreshScope: Refresh TokenRefresh JWT token (expires after 1 hour)
{
"refreshToken": "a1b2..."
}{
"jwt": "eyJ...",
"expiresAt": "2025-01-15T11:00:00Z"
}/v1/peer/agents/:id/statusScope: JWTGet peer status and connection info
Authorization: Bearer <jwt>
{
"status": "online",
"connectedAt": "2025-01-15T10:00:00Z",
"country": "US",
"ipType": "mobile"
}/v1/peer/agents/:id/earningsScope: JWTGet earnings and traffic statistics
{
"totalEarned": 12.50,
"pendingPayout": 3.25,
"trafficGB": 50.2,
"sessionsServed": 145
}/v1/peer/agents/:id/walletScope: JWTUpdate Solana wallet address (7-day cooling period)
{
"walletAddress": "NEW_SOLANA_ADDRESS"
}Cannot change wallet again for 7 days after update
/v1/peer/agents/:id/withdrawScope: JWTRequest payout to Solana wallet (min $5 USDC)
{
"success": true,
"amount": 12.50,
"txHash": "...",
"processingTime": "24-48 hours"
}Minimum withdrawal: $5 USDC
/v1/peer/boardScope: publicGet live peer board data (public, no auth)
{
"peers": [
{
"name": "Pixel 7a",
"status": "online",
"type": "mobile",
"country": "GB",
"earned": 0.51,
"traffic": 2.04
}
],
"stats": {
"total": 17,
"online": 1,
"mobile": 0,
"residential": 0,
"datacenter": 1
}
}Marketplace Listing (Farmer)
/v1/peer/my-devices/:id/listingScope: JWT / API KeyToggle device listing for sale in pool gateway
{
"listedForSale": true
}Triggers automated verification. Device must pass quality checks before serving customer traffic.
/v1/peer/my-devices/:id/verificationScope: JWT / API KeyGet verification status, quality score, and check results
{
"status": "approved",
"qualityScore": 85,
"checks": {
"ipType": { "passed": true, "value": "mobile" },
"vpnDetection": { "passed": true },
"hostingDetection": { "passed": true },
"geoipMatch": { "passed": true, "claimed": "US", "detected": "US" },
"minimumUptime": { "passed": true, "hours": 12.5 },
"fraudFlags": { "passed": true }
},
"lastChecked": "2026-04-16T10:30:00Z"
}Checks run every 10 minutes. Score ≥ 50 with all checks passed = auto-approved.
/v1/peer/my-devicesScope: JWT / API KeyList all farmer's devices with stats
{
"devices": [
{
"deviceId": "agent_abc123",
"name": "my-agent",
"status": "online",
"listedForSale": true,
"verified": true,
"qualityScore": 85,
"ipType": "mobile",
"country": "US",
"trafficGB": 12.5,
"totalEarned": 3.75
}
]
}WebSocket — HTTPS Tunnel Support
The relay supports full TCP tunneling for HTTPS traffic alongside standard HTTP proxy requests. Connect at wss://relay.proxies.sx withSec-WebSocket-Protocol: token.YOUR_JWT.
tunnel_connect— open TCP tunnel (host, port, sessionId)tunnel_data— data to forward to targettunnel_close— close tunnelproxy_request— HTTP request (method, url, headers, body)heartbeat— keepalive ping
tunnel_connected— TCP tunnel establishedtunnel_data— forward data from targettunnel_closed— tunnel closedproxy_response— HTTP response (requestId, statusCode, headers, body base64)heartbeat_ack— keepalive responsedevice_info— metadata (country, carrier)
Gateway Integration
Verified + listed peer devices appear in the pool gateway alongside our network of mobile modems. Customers route traffic through peers using this username format:
# HTTP Gateway (port 7000)
{proxyUsername}-peer-{country}@gw.proxies.sx:7000
# SOCKS5 Gateway (port 7001)
{proxyUsername}-peer-{country}@gw.proxies.sx:7001
# Example: route through US peer
curl -x http://psx_YOUR_ID-peer-us:PROXY_PASSWORD@gw.proxies.sx:7000 https://httpbin.org/ipSecurity Features
- • JWT expiry: 1 hour (refresh via refresh token)
- • Refresh token expiry: 7 days
- • Max WebSocket connections: 2 per device
- • Message rate limit: 100/min per device
- • Registration rate limit: 3/min per IP
- • Wallet change cooling: 7 days
- • IP classification: Server-side ASN lookup (cannot spoof)
- • Wallet change rate limit: 1 per day
- • Anomaly detection: Flags >$1000 earnings or >100GB/hour
- • Token revocation: Server-side DB check on every request
AI Agent Discovery
This documentation is optimized for AI agent consumption. Access our machine-readable documentation with MCP Server (88 tools), x402 Protocol, Agent APIs, and complete API reference:
/llm.txtSDK & Packages
7 npm packages + 3 GitHub repos
npm Packages
| Package | Description |
|---|---|
| @proxies-sx/mcp-server | MCP server - 88 tools for proxy management (v3.0.0) |
| @proxies-sx/browser-mcp | Browser MCP - 9 tools for antidetect browser |
| @proxies-sx/x402-core | x402 types, utilities, payment requirement builder |
| @proxies-sx/x402-hono | x402 Hono middleware for building paywall APIs |
| @proxies-sx/x402-solana | Solana transaction verification for x402 |
| @proxies-sx/pool-sdk | Typed SDK for the Pool Gateway reseller API - mint access keys, build proxy URLs |
| @proxies-sx/pool-portal-react | Drop-in React component + hooks for a Pool Gateway reseller dashboard |
x402 SDK Example
import { createPaymentRequirement } from '@proxies-sx/x402-core';
import { x402Middleware } from '@proxies-sx/x402-hono';
import { verifySolanaPayment } from '@proxies-sx/x402-solana';
const app = new Hono();
app.use('/api/*', x402Middleware({
price: 10000, // $0.01 in micro-units
recipient: 'YOUR_SOLANA_WALLET',
verify: verifySolanaPayment,
}));
app.get('/api/data', (c) => c.json({ data: 'premium content' }));Discovery Files
| File | Purpose |
|---|---|
| agents.proxies.sx/skill.md | Master skill file — everything for AI agents in one read |
| proxies.sx/llms.txt | LLM integration reference |
| .well-known/x402.json | x402 protocol discovery |
| agents.proxies.sx/peer/skill.md | Peer marketplace detailed skill |
Live Domains
Ready to Integrate?
Get your API key from the dashboard or pay with USDC on-chain — no account needed.
PROXIES.SX (proxies.sx) is an independent brand and is not affiliated with, endorsed by, or connected to SX.ORG or the sx.org domain, and does not operate as SX.ORG. References to "$SX" or "SX" refer solely to PROXIES.SX and its own products and token, not to sx.org.