x402 uses HTTP's 402 Payment Required status code to enable instant, permissionless proxy access. AI agents pay with USDC and receive credentials in a single requestโzero registration required.
npx @proxies-sx/mcp-server/v1/x402/infoAll info in one call - pricing, networks, limits
/v1/x402/countriesAvailable countries with device counts
/v1/x402/healthCheck if x402 integration is enabled
/v1/x402/pricingCurrent pricing for all tiers & networks
/v1/x402/calculateCalculate cost for duration & traffic
/api#/x402Interactive API documentation
x402scan.comOfficial x402 server registry & analytics
/v1/x402/proxyPayment-gated proxy credential purchase
/v1/x402/manage/sessionHeader: X-Session-Token: x402s_...
/v1/x402/manage/ports/:id/statusHeader: X-Session-Token: x402s_...
All x402 responses include live data:
Agent uses wallet to sign USDC payment authorization
When calling /v1/x402/proxy without payment, you receive a 402 response with payment requirements.
Updated every 5 minutes from actual inventory
Private tier may have fewer country options
Follows x402scan validation schema for AI agents
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "base",
"maxAmountRequired": "4100000",
"resource": "https://api.proxies.sx/v1/x402/proxy",
"description": "Real 4G/5G Mobile Proxy - 5 countries available...",
"mimeType": "application/json",
"payTo": "0xC6C3a87363D5b37d9510202015369086e25558f1",
"maxTimeoutSeconds": 30,
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"outputSchema": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"country": {"type": "string", "required": true, "enum": ["DE", "PL", "US", "FR", "GB"]},
"duration": {"type": "number", "required": true, "description": "Duration in seconds (3600-2592000)"},
"traffic": {"type": "number", "required": true, "description": "Traffic in GB (min 0.1)"},
"tier": {"type": "string", "enum": ["shared", "private"], "default": "shared"}
},
"headerFields": {
"X-Agent-Name": {"type": "string", "required": false}
}
},
"output": {
"sessionToken": {"type": "string"},
"proxy": {"type": "object"},
"expiresAt": {"type": "string"}
}
},
"extra": {
"availableCountries": ["DE", "PL", "US", "FR", "GB"],
"pricing": {
"shared": {"portPerMonth": 18, "trafficPerGB": 3.5},
"private": {"portPerMonth": 40, "trafficPerGB": 3.7}
},
"limits": {
"minDurationSeconds": 3600,
"maxDurationSeconds": 2592000,
"minTrafficGB": 0.1
}
}
}]
}from x402 import X402Client
# Initialize x402 client with your wallet
client = X402Client(
private_key="0xYourPrivateKey...",
network="base"
)
# Request a proxy - handles 402 flow automatically
response = client.get(
"https://api.proxies.sx/v1/x402/proxy",
params={
"country": "US",
"duration": 3600, # 1 hour
"traffic": 1, # 1 GB
"tier": "shared"
}
)
# Use the proxy
proxy = response.json()
print(f"HTTP Proxy: {proxy['proxy']['http']}")
print(f"SOCKS5 Proxy: {proxy['proxy']['socks5']}")
print(f"Expires: {proxy['proxy']['expiresAt']}")
# Rotate IP when needed
import requests
requests.get(proxy['rotationUrl'])import { createX402Client } from '@x402/evm';
import { privateKeyToAccount } from 'viem/accounts';
// Create x402 client
const account = privateKeyToAccount('0xYourPrivateKey...');
const x402Client = createX402Client({
account,
network: 'base',
});
// Get proxy with automatic payment
const response = await x402Client.fetch(
'https://api.proxies.sx/v1/x402/proxy?country=US&duration=3600&traffic=1'
);
const data = await response.json();
console.log('Proxy:', data.proxy.http);
console.log('Rotation URL:', data.rotationUrl);
// Use proxy with fetch
const proxyResponse = await fetch('https://api.ipify.org', {
agent: new HttpsProxyAgent(data.proxy.http)
});import { createDaydream } from '@daydreams/core';
import { x402Extension } from '@daydreams/x402';
const agent = createDaydream({
extensions: [
x402Extension({
privateKey: process.env.AGENT_WALLET_KEY,
network: 'base',
})
]
});
// Agent can now make x402 payments automatically
const result = await agent.run(`
Get a US mobile proxy for 1 hour with 1GB traffic,
then check my current IP address through it.
`);Base URL: https://api.proxies.sx/v1/x402
/v1/x402/pricingGet current pricing information for all tiers.
{
"shared": {
"portPriceMonthly": 18.00,
"trafficPricePerGB": 3.50,
"description": "Shared mobile proxy port"
},
"private": {
"portPriceMonthly": 40.00,
"trafficPricePerGB": 3.70,
"description": "Private dedicated proxy port"
},
"networks": ["base", "solana"],
"minimums": {
"durationSeconds": 3600,
"trafficGB": 0.1
},
"currency": "USDC"
}/v1/x402/calculateCalculate cost for specific duration and traffic.
| Parameter | Type | Required | Description |
|---|---|---|---|
| tier | string | No | shared or private |
| duration | number | Yes | Duration in seconds |
| traffic | number | Yes | Traffic allocation in GB |
/v1/x402/healthCheck if x402 integration is enabled and healthy.
/v1/x402/proxy402 GatedGet proxy credentials. Returns 402 if payment not provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | Yes | Country code (e.g., US, DE) |
| duration | number | Yes | Duration in seconds (min: 3600) |
| traffic | number | Yes | Traffic in GB (min: 0.1) |
| tier | string | No | shared or private |
| network | string | No | base or solana |
| city | string | No | City code or ID |
| carrier | string | No | Carrier code or ID |
{
"proxy": {
"http": "http://psx_abc123:xK9mP2qR@proxy.proxies.sx:8045",
"socks5": "socks5://psx_abc123:xK9mP2qR@proxy.proxies.sx:5045",
"server": "proxy.proxies.sx",
"httpPort": 8045,
"socksPort": 5045,
"username": "psx_abc123",
"password": "xK9mP2qR",
"expiresAt": "2024-12-31T23:59:59.000Z"
},
"rotationUrl": "https://api.proxies.sx/rotate/tok_abc123xyz",
"sessionId": "675abc123def456789012345",
"portId": "675def456abc789012345678",
"traffic": {
"allocatedGB": 1,
"usedGB": 0,
"remainingGB": 1
},
"payment": {
"txHash": "0x1234567890abcdef...",
"network": "base",
"amountUSDC": 18.10,
"walletAddress": "0xYourWallet..."
},
"location": {
"country": "United States",
"countryCode": "US",
"city": null,
"carrier": null
}
}/v1/x402/session/:sessionIdGet session details by session ID.
/v1/x402/session/tx/:txHashGet session details by transaction hash.
Shared mobile proxy port
Exclusive device access
Prices are calculated per-second based on monthly rates:
| Duration | Shared Port | Private Port |
|---|---|---|
| 1 hour | $0.025 | $0.055 |
| 1 day | $0.60 | $1.33 |
| 1 week | $4.15 | $9.23 |
| 1 month | $18.00 | $40.00 |
0xC6C3a87363D5b37d9510202015369086e25558f1USDC Contract: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
6qJVQ61ygwjuB7DK94ccrAcxgiQkc2tbbWeNCr3FT2HYUSDC on Solana: Native SPL Token
Each proxy comes with a rotation URL that can be used to get a new IP without re-purchasing:
# Rotate to new IP (no authentication required)
curl https://api.proxies.sx/rotate/tok_abc123xyz
# Response:
{
"success": true,
"message": "Port rotated successfully",
"newDevice": {
"country": "United States",
"carrier": "T-Mobile"
}
}| Status | Error | Description |
|---|---|---|
| 402 | Payment Required | No payment or insufficient |
| 400 | Invalid duration | Outside 1h-30d range |
| 400 | Invalid traffic | Below 0.1 GB minimum |
| 404 | No devices | Location unavailable |
| 429 | Rate limited | Too many requests |
payment_expiredSignature expiredinsufficient_amountPayment too lowinvalid_recipientWrong recipientnetwork_mismatchWrong networkalready_settledTX already usedEach txHash can only be used once
Requirements expire after 5 minutes
Payment wallet recorded per session
10 requests/min on payment endpoints
Server verifies payment matches request
Countries are fetched dynamically from actual device inventory - the list changes as devices are added/removed or reach capacity.
GET /v1/x402/countries # All available countries
GET /v1/x402/countries?tier=shared # Shared tier only
GET /v1/x402/countries?tier=private # Private tier only[
{"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"},
{"code": "FR", "name": "France", "availableDevices": 18, "tier": "both"}
]Private tier may have fewer countries than shared. For example, GB may only be available for shared tier. Always check the tier field in the response to confirm availability.
Enable your AI agents to purchase and use mobile proxies instantly with USDC payments.
Support: support@proxies.sx | Swagger: api.proxies.sx/api