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/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": "Germany",
"code": "DE",
"iso3": "DEU",
"phoneCode": "+49",
"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": "Vodafone D2 GmbH",
"brand": "Vodafone",
"mcc": "262",
"mnc": "02",
"technology": "LTE",
"freeDeviceCount": 19
},
{
"_id": "69276bf5f547dfc94869f2df",
"name": "Telefรณnica Germany GmbH & Co. oHG",
"brand": "O2",
"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": "69414767d149cecffee56788",
"type": "PortsShared",
"price": 10,
"portRange": { "min": 1, "max": 10 },
"category": "shared",
"resourceType": "ports",
"pricePerUnit": 10,
"unitType": "slot",
"billingPeriod": "monthly",
"displayName": "Shared Port Slots (1-10)"
},
{
"_id": "69414788d149cecffee567a0",
"type": "TrafficShared",
"price": 4,
"trafficRange": { "min": 1, "max": 10 },
"category": "shared",
"resourceType": "traffic",
"pricePerUnit": 4,
"unitType": "gb",
"billingPeriod": "one-time",
"displayName": "Shared Traffic (1-10 GB)"
}
]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/rotate/32c2144a26f1ff1a3a0b79c4e31b7369",
"device": {
"_id": "69280411c01b1bb60efc4ab7",
"name": "dongle501_de",
"country": { "name": "Germany", "code": "DE" },
"carrier": { "name": "Vodafone D2 GmbH", "brand": "Vodafone" },
"region": { "name": "Berlin" }
}
}
]/v1/portsScope: ports:writeCreate a new port (requires purchased port slots)
{
"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. Shared ports switch devices (5-min cooldown), private ports use airplane mode (1-min cooldown).
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": "Germany",
"carrier": "Vodafone",
"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"
},
"subscription": {
"shared": {
"active": true,
"slots": { "total": 5, "used": 2, "available": 3 },
"traffic": { "purchasedGB": 10, "usedGB": 2.5, "availableGB": 7.5 },
"expiresAt": "2025-01-15T00:00:00.000Z",
"daysRemaining": 29
},
"private": {
"active": false,
"slots": { "total": 0, "used": 0, "available": 0 }
}
},
"status": {
"hasActiveSubscription": true,
"hasAvailableSlots": 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",
"shared": {
"slots": { "total": 5, "used": 2, "available": 3 },
"trafficGB": { "total": 10, "used": 2.5, "available": 7.5 },
"expiresAt": "2025-01-15T00:00:00.000Z",
"daysRemaining": 29
},
"private": {
"slots": { "total": 0, "used": 0, "available": 0 },
"trafficGB": { "total": 0, "used": 0, "available": 0 }
},
"alerts": [
{ "type": "low_traffic", "message": "Traffic is running low", "severity": "info" }
]
}/v1/account/usage?period=30dScope: traffic:readTraffic usage breakdown by port and slot type (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 Germany
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 breakdownsubscription- Slot and traffic availabilitystatus.hasAvailableSlots- Boolean flagstatus.lowTraffic- Boolean flagstatus.nearingExpiration- Boolean flag
MCP Server
AI-Controlled Proxy Management
npx @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.
Complete proxy management toolkit
No code needed, just describe what you want
11 tools for autonomous USDC payments
Open source, use freely
MCP Setup
Add this configuration to your MCP settings file:
{
"mcpServers": {
"proxies-sx": {
"command": "npx",
"args": ["-y", "@proxies-sx/mcp-server"],
"env": {
"PROXIES_API_KEY": "psx_your_api_key_here"
}
}
}
}Available Tools (42 Total)
get_account_summary - Get balance, email, and resource usageget_account_usage - Detailed traffic breakdownget_pricing - Current pricing for slots and trafficpurchase_shared_slots - Buy shared port slotspurchase_shared_traffic - Buy shared traffic (GB)purchase_private_slots - Buy private slotspurchase_private_traffic - Buy private traffic (GB)list_ports - List all proxy ports with filtersget_port - Get detailed port info with connection stringscreate_port - Create a new proxy portdelete_port - Delete a proxy portupdate_port_credentials - Change login/passwordupdate_os_fingerprint - Set OS fingerprint spoofingreconfigure_port - Change port locationrotate_port - Rotate to a new IP addresscheck_rotation_availability - Check if rotation is availableconfigure_auto_rotation - Set up automatic rotationget_rotation_history - View past rotationsget_rotation_token_url - Get public rotation URLget_port_status - Check if port is online/offlineget_port_ip - Get current public IP addressping_port - Test connectivity and latencyspeed_test_port - Measure download/upload speedcreate_crypto_payment - Create payment order ($10-$1000)check_crypto_payment_status - Check payment statusget_pending_crypto_payments - List pending paymentscancel_crypto_payment - Cancel pending paymentget_crypto_payment_info - Get supported currencieslist_available_countries - List countries with available devices for port creationget_proxy_connection_string - Generate ready-to-use proxy URLget_all_proxy_formats - Get all formats (curl, Python, Node.js)get_os_fingerprint_options - List OS fingerprint optionscreate_support_ticket - Submit a ticket for human supportlist_my_tickets - List all your support ticketsget_ticket - Get ticket details with conversation historyreply_to_ticket - Reply to an existing ticketclose_ticket - Close a resolved ticketget_x402_session - Get x402 session details by tokenlist_x402_ports - List all ports in an x402 sessionget_x402_port_status - Get status of an x402 portget_sessions_by_wallet - Get all sessions for a wallet addressget_session_status - Check if x402 session is activex402 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
- โข Tier-specific - Private tier may have fewer countries
- โข Pricing included - Both shared and private rates
- โข 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": {...}, "private": {...}},
"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" or "private" to filter by tier
[
{"code": "US", "name": "United States", "availableDevices": 88, "tier": "both"},
{"code": "DE", "name": "Germany", "availableDevices": 27, "tier": "both"},
{"code": "GB", "name": "United Kingdom", "availableDevices": 22, "tier": "shared"},
{"code": "PL", "name": "Poland", "availableDevices": 22, "tier": "both"}
]/v1/x402/pricingScope: publicGet current pricing for all tiers and networks
{
"shared": {"perGB": 4, "perHour": 0.10},
"private": {"perGB": 8, "perHour": 0.25},
"networks": ["base", "solana"],
"currency": "USDC"
}/v1/x402/calculate?tier=shared&duration=3600&traffic=1Scope: publicCalculate cost for specific duration and traffic
tier- "shared" or "private"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", "DE", "GB")duration- secondstraffic- GB amountcarrier(optional) - specific carrier
{
"status": 402,
"message": "Payment Required",
"payment": {
"payTo": "0x1234...abcd",
"amount": "0.50",
"currency": "USDC",
"network": "base",
"paymentId": "pay_abc123",
"expires": "2025-01-01T12:05:00Z"
}
}/v1/x402/agentsScope: publicAgent registry - register and manage AI agent wallets
Used for tracking agent usage and preferences.
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
# {
# "payment": {
# "payTo": "0x1234...abcd",
# "amount": "0.50",
# "currency": "USDC",
# "network": "base",
# "paymentId": "pay_abc123"
# }
# }
# Step 2: Send USDC payment to payTo address
# Step 3: Server detects on-chain payment automatically
# Step 4: Receive proxy credentials
# {
# "credentials": {
# "host": "us.proxies.sx",
# "httpPort": 8080,
# "socksPort": 1080,
# "username": "x402_user_abc",
# "password": "generated_pass",
# "expiresAt": "2025-01-01T13:00:00Z"
# }
# }AI Agent Discovery
This documentation is optimized for AI agent consumption. Access our machine-readable documentation with MCP Server (42 tools), x402 Protocol, and complete API reference:
/llm.txtReady to Integrate?
Get your API key from the dashboard and start building.