Developer Documentation

PROXIES.SX API Documentation

Mobile proxy infrastructure for developers and AI agents. Create an API key, deposit GB balance, and start building — or pay per-request with USDC on-chain if you need an account-less integration. Create ports, rotate IPs, monitor usage, and automate your proxy infrastructure.

45 endpoints88 MCP tools7 npm packages7 live domains
Documentation

Base URL

https://api.proxies.sx/v1

Authentication

All API requests require authentication via API key. Get your API key from the dashboard

Header: X-API-Key: psx_your_api_key_here

API Key Scopes

ScopeDescription
ports:readRead port information
ports:writeCreate, update, delete ports
ports:rotateRotate ports to new devices
billing:readRead billing and payment history
traffic:readRead traffic usage data
account:readRead 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:socksPort

Step 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_TOKEN

Reference Data Endpoints

GET/v1/countries/with-devicesScope: ports:read

Get countries with available devices and free device count

Example Request
curl https://api.proxies.sx/v1/countries/with-devices \
  -H "X-API-Key: psx_your_key"
Response
[
  {
    "_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
  }
]
GET/v1/carriers/country/:countryId?withDevice=trueScope: ports:read

Get carriers in a country with free device count

Example Request
curl "https://api.proxies.sx/v1/carriers/country/69276bf1f547dfc948699263?withDevice=true" \
  -H "X-API-Key: psx_your_key"
Response
[
  {
    "_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
  }
]
GET/v1/tariffsScope: ports:read

Get available tariff plans and pricing with developer-friendly computed fields

Example Request
curl https://api.proxies.sx/v1/tariffs \
  -H "X-API-Key: psx_your_key"
Response
[
  {
    "_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

GET/v1/portsScope: ports:read

List all your ports with connection details, device info, and traffic usage

Example Request
curl https://api.proxies.sx/v1/ports \
  -H "X-API-Key: psx_your_key"
Response
[
  {
    "_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" }
    }
  }
]
POST/v1/portsScope: ports:write

Create a new port (requires available tier slots and traffic)

Request Body
{
  "countryId": "69276bf1f547dfc948699263",  // Required
  "expiresAt": 86400,                        // Required (seconds: 86400=24h)
  "carrierId": "carrier_id",                 // Optional
  "osFingerprint": "windows:1"               // Optional
}
Example Request
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}'
Response
{
  "_id": "675123abc...",
  "displayName": "Proxy #1",
  "serverIp": "62.30.207.124",
  "httpPort": 8002,
  "socksPort": 5002,
  "proxyLogin": "auto_generated",
  "proxyPassword": "auto_generated",
  "expiresAt": 1702320967890
}
GET/v1/ports/:idScope: ports:read

Get full port details including device info and rotation settings

Example Request
curl https://api.proxies.sx/v1/ports/6935a7065cb903907b750c64 \
  -H "X-API-Key: psx_your_key"
GET/v1/ports/:id/statusScope: ports:read

Get port online/offline status

Response
{
  "status": "online",
  "isActive": true,
  "lastChecked": "2025-12-17T10:00:00.000Z",
  "expiresAt": 1765210246994
}
GET/v1/ports/:id/pingScope: ports:read

Test proxy connectivity and measure response time

Response
{
  "success": true,
  "ip": "109.40.240.170",
  "responseTime": 513,
  "testTime": "2025-12-17T10:37:36.621Z"
}
GET/v1/ports/:id/ipScope: ports:read

Get current public IP address of the port

Response
{
  "publicIp": "109.40.240.170",
  "serverIp": "138.201.158.43"
}
GET/v1/ports/:id/os-fingerprintsScope: ports:read

Get available OS fingerprint options for this port's server

Response
[
  { "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" }
]
DELETE/v1/ports/:idScope: ports:write

Delete a port (removes from modem and database)

Example Request
curl -X DELETE https://api.proxies.sx/v1/ports/675123abc... \
  -H "X-API-Key: psx_your_key"
Response
{
  "message": "Port deleted successfully"
}
POST/v1/ports/:id/reconfigureScope: ports:write

Change port location/carrier

Request Body
{
  "countryId": "new_country_id",  // Required
  "carrierId": "new_carrier_id"   // Optional
}
PUT/v1/ports/:id/credentialsScope: ports:write

Update port login/password credentials

Request Body
{
  "proxyLogin": "new_username",
  "proxyPassword": "new_password"
}
PATCH/v1/ports/:id/os-fingerprintScope: ports:write

Change OS fingerprint (p0f) for traffic spoofing

Request Body
{
  "osFingerprint": "windows:1"
}

// Available values:
// "", "windows:1", "macosx:3", "macosx:4",
// "ios:1", "ios:2", "android:1", "android:3"

IP Rotation Endpoints

POST/v1/ports/:id/rotateScope: ports:rotate

Rotate port to get a new IP (5-minute cooldown between rotations).

Example Request
curl -X POST https://api.proxies.sx/v1/ports/6935a7065cb903907b750c64/rotate \
  -H "X-API-Key: psx_your_key"
Response (Shared Device)
{
  "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"
}
Response (Private Device - Airplane Mode)
{
  "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
}
GET/v1/ports/:id/can-rotateScope: ports:read

Check if port can be rotated and cooldown status

Response (Ready)
{
  "canRotate": true,
  "availableDevices": 26
}
Response (In Cooldown)
{
  "canRotate": false,
  "reason": "Rate limited. Must wait 180 seconds before next rotation.",
  "nextRotationAt": "2025-12-17T10:05:00.000Z",
  "cooldownRemaining": 180
}
PATCH/v1/ports/:id/rotation-settingsScope: ports:write

Enable/configure auto-rotation. Interval in SECONDS: 300-86400 (shared), 60-86400 (private)

Request Body
{
  "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
}
Example Request
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}'
Response
{
  "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.
GET/v1/ports/:id/rotation-historyScope: ports:read

Get rotation history for a port

Response
{
  "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

GET/v1/accountScope: account:read

Complete account details with wallet, subscriptions, ports, and status flags

Response
{
  "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
  }
}
GET/v1/account/summaryScope: account:read

Lightweight account summary for dashboard widgets and quick status checks

Response
{
  "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" }
  ]
}
GET/v1/account/usage?period=30dScope: traffic:read

Traffic usage breakdown by port (7d, 30d, or 90d period)

Response
{
  "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
    }
  }
}
GET/v1/traffic/balance-breakdownScope: traffic:read

Detailed traffic and billing breakdown with formula explanation

Response
{
  "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 Proxy
http://username:password@serverIp:httpPort
SOCKS5 Proxy
socks5://username:password@serverIp:socksPort
Example
http://user_abc123:pass456@138.201.158.43:8522
socks5://user_abc123:pass456@138.201.158.43:5522

Key Response Fields for Developers

Port Object Fields

  • slotType - "shared" | "private"
  • status - "active" | "suspended" | "expired"
  • rotationToken - Token for no-auth rotation
  • trafficSummary - { usedMB, usedGB }
  • healthStatus - "healthy" | "degraded" | "offline"
  • osFingerprint - Current OS spoofing setting

Account Object Fields

  • wallet - Detailed balance breakdown
  • tier - Current tier, cumulative GB, FREE slot allocation
  • subscription - Traffic availability (slots are FREE)
  • status.hasAvailableTraffic - Boolean flag
  • status.lowTraffic - Boolean flag

MCP Server

AI-Controlled Proxy Management

@proxies-sx/mcp-server
Now available on NPM
View on NPM
Option 1: npx (recommended)
npx -y @proxies-sx/mcp-server
Option 2: Global install
npm i -g @proxies-sx/mcp-server
Option 3: Local project
npm i @proxies-sx/mcp-server
Package size: about 1 MB unpacked in v3.0.0, plus dependencies (MCP SDK, viem, zod)

The 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

1
API Key Mode

Use your Proxies.sx account and API key to manage existing subscriptions.

Requires: PROXIES_API_KEY
2
x402 Payment Mode

AI agents autonomously purchase proxies using USDC on Base - no account needed!

Requires: AGENT_WALLET_KEY
88 Tools

Complete proxy management

Natural Language

No code needed

x402 Payments

Autonomous USDC

Browser MCP

9 antidetect tools

MIT License

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"
      }
    }
  }
}
Requirements: Fund the wallet with USDC on Base ($4/GB, minimum 0.1 GB = $0.40; port time is free) plus a little ETH on Base for gas
Config locations: Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json | Cursor: .cursor/mcp.json | Claude Code: ~/.mcp.json

Available Tools by Category

🌐Pool Gateway10 tools
pool_get_stock - Get live Pool Gateway stock, no account needed
pool_get_facets - List the cities, states, carriers (with ASN and class) and IP classes that have stock in one country, with counts, no account needed
pool_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 it
pool_get_my_credentials - Get your Pool Gateway proxy username and proxy password with ready HTTP and SOCKS5 URLs
pool_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 it
pool_list_sessions - List your saved Pool Gateway sessions: pool, country, carrier, rotation mode, bytes and last activity
pool_close_session - Close one Pool Gateway session by the sessionKey from pool_list_sessions
pool_close_all_sessions - Close every saved Pool Gateway session of the account
🔒Private Pool and Reserved IPs10 tools
private_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 GB
private_pool_build - Create a Private Pool paid from the account's existing GB balance: no purchase, traffic is metered from the same balance
private_pool_reveal - Show the gateway password (pak_ key) of a Private Pool
private_pool_usage - Get the traffic of a Private Pool per day, in MB
reserved_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 masked
reserved_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 masked
reserved_ip_rotate - Move a Reserved IP to a different device in the same country now
reserved_ip_extend - Change how long a Reserved IP is kept without traffic
reserved_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 minutes
reserved_ip_release - Give a Reserved IP back to the shared pool
👤Account2 tools
get_account_summary - Get the account balance, free port slots, traffic bought and left, and any account alerts
get_account_usage - Get traffic purchased, used and still available, split into Pool Gateway traffic and dedicated-port traffic
💳Billing6 tools
get_pricing - Get the live price per GB, the volume discounts, the free port-slot tiers and your current tier
calculate_price - Calculate what a GB amount costs with the volume discount applied
purchase_shared_traffic - Buy traffic in GB from the account balance
coupon_validate - Check whether a coupon code is valid for an order, without using it
coupon_redeem - Redeem a standalone coupon that grants free GB or port slots to the account
get_payment_history - List the account's past payments and crypto top-up orders
🪙Crypto payments5 tools
create_crypto_payment - Create a crypto order that tops up the account balance and return its hosted payment link
check_crypto_payment_status - Check whether a crypto order is still unpaid, confirming, paid, expired or cancelled, and whether the balance was credited
get_pending_crypto_payments - List the account's crypto orders that are not finished yet, with their payment links
cancel_crypto_payment - Cancel a crypto order that has not been paid yet
get_crypto_payment_info - Check whether crypto top-ups are available right now and which currencies the payment page accepts
🔌Dedicated ports9 tools
list_available_countries - List the countries where a dedicated port can be created right now, with the countryId create_port needs
list_ports - List your dedicated ports with status, country, carrier, expiry and port ids
get_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 strings
delete_port - Delete a dedicated port and free its slot
update_port_credentials - Change the login and/or password of a dedicated port
update_os_fingerprint - Set the OS fingerprint (TCP/IP signature) a dedicated port presents
reconfigure_port - Move a dedicated port to another country, carrier or city
extend_port - Add hours to a dedicated port's expiry
📡Port status4 tools
get_port_status - Check whether a dedicated port is online, offline or expired
get_port_ip - Get the server address a dedicated port listens on
ping_port - Test that a dedicated port answers and measure its latency
speed_test_port - Run a speed test through a dedicated port (download, upload, ping)
🔄Port rotation5 tools
rotate_port - Move a dedicated port to another modem in the same location
check_rotation_availability - Check whether a dedicated port can be rotated now, how long the cooldown still runs and how many other modems are free
configure_auto_rotation - Turn automatic rotation of a dedicated port on or off and set its interval
get_rotation_history - Get the past rotations of a dedicated port: when, how triggered, the location it moved to and whether it worked
get_rotation_token_url - Get the public rotation link of a dedicated port
🛠️Utilities4 tools
get_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 link
get_service_status - Check whether Proxies.sx is healthy right now: open Pool Gateway incidents, the state of the API, gateway and relay, and recent uptime
get_os_fingerprint_options - List the OS fingerprint values create_port and update_os_fingerprint accept
🎫Support5 tools
create_support_ticket - Open a support ticket that a person at Proxies.sx reads and answers
list_my_tickets - List your support tickets with their status and IDs
get_ticket - Get one support ticket with the original message and every reply
reply_to_ticket - Add a reply to one of your support tickets
close_ticket - Close one of your support tickets once the problem is solved
🪪Pool access keys (reseller accounts)9 tools
pool_mint_key - Create a Pool Access Key (pak_) for one of your customers; it is used as the proxy password
pool_list_keys - List your Pool Access Keys with usage, cap and expiry; the key values are masked
pool_topup_key - Add GB to a Pool Access Key's cap and/or extend its expiry in one step
pool_update_key - Change a Pool Access Key's label, enabled flag, cap, expiry or quality tier
pool_regenerate_key - Replace the secret pak_ value of a Pool Access Key
pool_reveal_key - Show the full pak_ value of a Pool Access Key
pool_delete_key - Delete a Pool Access Key
pool_key_usage - Get the traffic of one Pool Access Key per day, in MB
pool_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 failed
🔑x402 session management8 tools
get_x402_session - Get details of your x402 session including all ports
list_x402_ports - List all ports in your x402 session with connection strings and expiration times
get_x402_port_status - Get detailed status of a specific port including traffic usage and connection info
get_sessions_by_wallet - List all x402 sessions associated with your wallet address
get_session_status - Get quick status check for a session including traffic usage and expiration
replace_x402_port - Replace an offline port of an x402 session with a new port on another device, at no charge
calculate_x402_topup - Calculate what it costs to add traffic and/or time to an x402 session
topup_x402_session - Add traffic and/or time to an x402 session
🛡️Ops (admin keys only)11 tools
ops_get_user - Customer 360 view: balance, pool-gateway usage, ports, and (if a farmer) their AI note
ops_get_user_audit - Recent ops-agent actions taken on this user
ops_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 customer
ops_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 note
ops_write_farmer_note - Write/append a farmer AI note (situation, nextAction, free note) — shared with future AI sessions
🤖x402 wallet (optional, no account)16 tools
x402_get_proxy - Buy a dedicated mobile proxy on one carrier modem by paying USDC from the agent wallet; no account needed
x402_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 balance
x402_list_sessions - List the active x402 proxy sessions this wallet bought from this machine, with location, expiry and proxy host
x402_check_session - Get status, time left, traffic used and the connection strings of an x402 proxy session
x402_wallet_balance - Get the agent wallet address and its USDC and ETH (gas) balance on the Base network
x402_rotate_ip - Move an x402 proxy to another modem so it gets a different exit IP
x402_list_countries - List the countries where x402_get_proxy can create a proxy right now, with the number of free modems
x402_extend_session - Add hours to an x402 proxy session
x402_service_status - Check that the x402 payment service is up, and show the wallet balance and how many sessions are active or about to expire
x402_get_pool_access - Buy Pool Gateway traffic by paying USDC from the agent wallet; no account needed
x402_pool_credit - Get the GB bought, used and left on an x402 pool session
x402_pool_topup - Add GB and/or time to an x402 pool session
x402_pool_regenerate - Replace the password of an x402 pool credential, for example after a leak
x402_pool_connection - Show the gateway host, port, username and password of an x402 pool session again
x402_pool_usage - Get the traffic of an x402 pool session per day, in MB
x402_pool_pricing - Get the Pool Gateway tiers that can be bought with x402 and their live price per GB and smallest purchase
🌐Browser MCP9 tools
browser_create - Create antidetect browser session with mobile proxy
browser_go - Navigate to URL
browser_click - Click element on page
browser_type - Type text into input
browser_see - Take 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

Agent 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.

AgentEndpointPriceStatus
Mobile ProxyGET /v1/x402/proxyfrom $4/GBLIVE
Antidetect BrowserPOST browser.proxies.sx/v1/sessions~$0.005/minLIVE
Google Maps Lead GenGET /v1/x402/maps/run$0.005/recordLIVE
Mobile SERP TrackerGET /v1/x402/serp$0.003/queryLIVE
Reddit IntelligenceGET /v1/x402/reddit/*$0.005–$0.01/queryLIVE
Instagram IntelligenceGET /v1/x402/instagram/*$0.01–$0.15/queryLIVE
Airbnb Market IntelGET /v1/x402/airbnb/*$0.01–$0.05/queryLIVE
LinkedIn EnrichmentGET /v1/x402/linkedin/*$0.01/queryLIVE
Job Market IntelligenceGET /v1/x402/jobs$0.005/queryLIVE
Reviews & BusinessGET /v1/x402/reviews/* · /business/*$0.005–$0.02/queryLIVE
Prediction MarketsGET /v1/x402/predictions$0.05/queryLIVE

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.

Auto-Proxy

Real 4G/5G mobile proxy allocated per session. Countries: US, GB, FR, NL, PL, GE.

Identity Bundles

Save & restore cookies, localStorage, fingerprint, proxy device binding across sessions.

IMEI Pinning

Same fingerprint, same proxy device. Pass profile_id to auto-restore.

Browser MCP Tools
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
npm: @proxies-sx/browser-mcp — 9 tools for antidetect browser control

x402 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.

No Registration

Pay and receive credentials instantly

USDC Payments

On Base (L2) or Solana

AI-Native

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

GET/v1/x402/healthScope: public

Check if x402 integration is enabled

Response
{"enabled": true, "version": "1.0.0"}
GET/v1/x402/infoScope: public

Master endpoint - Get all config in one call (pricing, networks, limits)

Response
{
  "pricing": {"shared": {...}},
  "networks": ["solana", "base"],
  "wallets": {...},
  "limits": {"minDuration": 3600, "maxDuration": 2592000, "minTrafficGB": 0.1}
}
GET/v1/x402/countriesScope: public

Get available countries (dynamic, updated every 5 min)

Query Parameters
  • tier (optional) - "shared" (the only tier; private ports are retired)
Response
[
  {"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"}
]
Note: "tier" is a legacy field; dedicated ports exist only in US, GB, FR, NL, PL and GE (Georgia)
GET/v1/x402/pricingScope: public

Get current pricing and payment networks

Response
{
  "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
}
GET/v1/x402/calculate?tier=shared&duration=3600&traffic=1Scope: public

Calculate cost for specific duration and traffic

Parameters
  • tier - "shared"
  • duration - seconds (e.g., 3600 = 1 hour)
  • traffic - GB amount
Response
{"cost": "0.50", "currency": "USDC", "breakdown": {...}}
GET/v1/x402/proxy?country=US&duration=3600&traffic=1Scope: public

Request proxy credentials (returns 402 Payment Required)

Parameters
  • country - ISO code (e.g., "US", "PL", "GB")
  • duration - seconds
  • traffic - GB amount
  • carrier (optional) - specific carrier
402 Response
{
  "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"
    }
  ]
}
GET/v1/x402/agentsScope: public

Agent registry - register and manage AI agent wallets

Used for tracking agent usage and preferences.

POST/v1/x402/proxyScope: x402

Purchase proxy (POST method, same as GET)

Request Body
{
  "country": "US",
  "duration": 3600,
  "traffic": 1,
  "tier": "shared"
}
GET/v1/x402/.well-knownScope: public

Protocol discovery endpoint

Returns x402 protocol information and capabilities.

GET/v1/x402/manage/sessionScope: X-Session-Token

Get session details via session token

Headers
  • X-Session-Token: x402s_...
Response
{
  "sessionId": "...",
  "wallet": "0x...",
  "ports": [...],
  "traffic": {"allocated": 1, "used": 0.2, "remaining": 0.8},
  "expiresAt": "2025-01-15T10:00:00Z"
}
GET/v1/x402/manage/session/creditScope: X-Session-Token

Check remaining credit in session

Response
{
  "trafficGB": 0.8,
  "valueDollars": 3.20
}
GET/v1/x402/manage/portsScope: X-Session-Token

List all ports in session

Response
{
  "ports": [
    {
      "portId": "...",
      "status": "online",
      "country": "US",
      "proxy": {"http": "...", "socks5": "..."}
    }
  ]
}
GET/v1/x402/manage/ports/:portId/statusScope: X-Session-Token

Get status of specific port

Response
{
  "status": "online",
  "lastChecked": "2025-01-15T10:00:00Z",
  "trafficUsed": 0.2
}
POST/v1/x402/manage/ports/replaceScope: X-Session-Token

Replace offline port (free, max 3 per session)

Request Body
{
  "country": "US"
}

Maximum 3 replacements per session. Free of charge.

POST/v1/x402/manage/ports/recreateScope: X-Session-Token

Recreate deleted port using remaining credit

If you deleted a port but still have credit, recreate it in the same session.

GET/v1/x402/manage/session/topup/calculateScope: X-Session-Token

Preview cost of session top-up

Query Parameters
  • addTrafficGB - Additional traffic
  • addDurationSeconds - Additional duration
Response
{
  "cost": "8.00",
  "currency": "USDC"
}
POST/v1/x402/manage/session/topupScope: X-Session-Token + Payment-Signature

Pay to add traffic or duration to session

Headers
  • X-Session-Token: x402s_...
  • Payment-Signature: <tx_hash>
Request Body
{
  "addTrafficGB": 2,
  "addDurationSeconds": 86400
}
GET/v1/x402/session/:idScope: public

Get session by ID

Retrieve session details using session ID.

GET/v1/x402/session/tx/:txHashScope: public

Get session by transaction hash

Look up session using the blockchain transaction hash.

GET/v1/x402/sessions/wallet/:walletScope: public

Get all sessions for a wallet address

Response
{
  "sessions": [
    {
      "sessionId": "...",
      "created": "2025-01-15T10:00:00Z",
      "status": "active"
    }
  ]
}
GET/v1/x402/agents/:walletScope: public

Get agent details by wallet address

Retrieve agent information using wallet address.

GET/v1/rotate/:tokenScope: public

Rotate IP via public rotation token (no auth required)

Example
curl https://api.proxies.sx/v1/rotate/tok_abc123xyz

Rotation token provided in proxy credentials.

Payment Flow

1
Request Proxy
GET /v1/x402/proxy
→
2
Receive 402
Payment details
→
3
Send USDC
Base or Solana
→
4
Get Credentials
Retry with tx hash
# 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.

Mobile IPs
Highest Tier
4G/5G carrier IPs — most valuable
Residential IPs
Mid Tier
Home ISP connections
Datacenter IPs
Base Tier
VPS & cloud provider IPs
Note: Earnings per GB are custom and returned upon registration based on IP type, location, and network quality. IP type is determined server-side via ASN lookup. Device withdrawal API minimum: $5 USDC. Before a device is admitted you need a farmer account and API key and a signed Partner Agreement 2.0 that we have approved (the relay closes with 1013 until then); a device goes on sale only after the automatic test (throughput floor 126 KiB/s on October 12, 2026). HTTP 429 means wait for Retry-After. No earnings or approval time is promised.

Peer API Endpoints

POST/v1/peer/agents/registerScope: public

Register as a peer in the network

Request Body
{
  "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.

Response
{
  "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

POST/v1/peer/agents/:id/refreshScope: Refresh Token

Refresh JWT token (expires after 1 hour)

Request Body
{
  "refreshToken": "a1b2..."
}
Response
{
  "jwt": "eyJ...",
  "expiresAt": "2025-01-15T11:00:00Z"
}
GET/v1/peer/agents/:id/statusScope: JWT

Get peer status and connection info

Headers
  • Authorization: Bearer <jwt>
Response
{
  "status": "online",
  "connectedAt": "2025-01-15T10:00:00Z",
  "country": "US",
  "ipType": "mobile"
}
GET/v1/peer/agents/:id/earningsScope: JWT

Get earnings and traffic statistics

Response
{
  "totalEarned": 12.50,
  "pendingPayout": 3.25,
  "trafficGB": 50.2,
  "sessionsServed": 145
}
PUT/v1/peer/agents/:id/walletScope: JWT

Update Solana wallet address (7-day cooling period)

Request Body
{
  "walletAddress": "NEW_SOLANA_ADDRESS"
}

Cannot change wallet again for 7 days after update

POST/v1/peer/agents/:id/withdrawScope: JWT

Request payout to Solana wallet (min $5 USDC)

Response
{
  "success": true,
  "amount": 12.50,
  "txHash": "...",
  "processingTime": "24-48 hours"
}

Minimum withdrawal: $5 USDC

GET/v1/peer/boardScope: public

Get live peer board data (public, no auth)

Response
{
  "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)

PATCH/v1/peer/my-devices/:id/listingScope: JWT / API Key

Toggle device listing for sale in pool gateway

Request Body
{
  "listedForSale": true
}

Triggers automated verification. Device must pass quality checks before serving customer traffic.

GET/v1/peer/my-devices/:id/verificationScope: JWT / API Key

Get verification status, quality score, and check results

Response
{
  "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.

GET/v1/peer/my-devicesScope: JWT / API Key

List all farmer's devices with stats

Response
{
  "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.

Relay sends to Agent:
  • tunnel_connect — open TCP tunnel (host, port, sessionId)
  • tunnel_data — data to forward to target
  • tunnel_close — close tunnel
  • proxy_request — HTTP request (method, url, headers, body)
  • heartbeat — keepalive ping
Agent sends to Relay:
  • tunnel_connected — TCP tunnel established
  • tunnel_data — forward data from target
  • tunnel_closed — tunnel closed
  • proxy_response — HTTP response (requestId, statusCode, headers, body base64)
  • heartbeat_ack — keepalive response
  • device_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/ip

Security 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.txt

SDK & Packages

7 npm packages + 3 GitHub repos

npm Packages

PackageDescription
@proxies-sx/mcp-serverMCP server - 88 tools for proxy management (v3.0.0)
@proxies-sx/browser-mcpBrowser MCP - 9 tools for antidetect browser
@proxies-sx/x402-corex402 types, utilities, payment requirement builder
@proxies-sx/x402-honox402 Hono middleware for building paywall APIs
@proxies-sx/x402-solanaSolana transaction verification for x402
@proxies-sx/pool-sdkTyped SDK for the Pool Gateway reseller API - mint access keys, build proxy URLs
@proxies-sx/pool-portal-reactDrop-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

FilePurpose
agents.proxies.sx/skill.mdMaster skill file — everything for AI agents in one read
proxies.sx/llms.txtLLM integration reference
.well-known/x402.jsonx402 protocol discovery
agents.proxies.sx/peer/skill.mdPeer marketplace detailed skill

Live Domains

api.proxies.sx
REST API + x402
client.proxies.sx
Customer portal
agents.proxies.sx
Agent hub
browser.proxies.sx
Antidetect browser
relay.proxies.sx
WebSocket relay
gw.proxies.sx
Proxy gateway
admin.proxies.sx
Admin dashboard

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.