x402 Residential Proxy API

Pay-per-request residential proxy for AI agents and scrapers

Not connected

Fetch any URL through a residential IP address.

Bypass datacenter IP blocks, Cloudflare challenges, and geo-restrictions. Each request automatically uses a fresh residential IP. No accounts, no API keys, no subscriptions.

Payment: USDC on Base Mainnet | Protocol: x402 | Price: $0.01 per request

Other x402 APIs:

Padel API - Global padel club data and open matches - $0.01/request

Uncensored AI API - Chat, reasoning, code & image generation via Venice AI - $0.03-$0.08/request

Audio API - Text-to-speech and speech-to-text via ElevenLabs - $0.05-$0.10/request

Agent Tools API - Weather, news, geocoding, crypto prices, and more - $0.01/request

Crypto API - Token metadata, security analysis, risk scoring - $0.02+/request

x402scan.com - Web interface to test any x402 API with your wallet

Features

Endpoints

Fetch URL (Random IP)

POST /api/x402-proxy/fetch
$0.01

Fetch any URL through a random residential IP. New IP on every request.

url (string, required) - Target URL to fetch
method (string, optional) - HTTP method. Default: GET
headers (object, optional) - Custom headers to forward
body (string, optional) - Request body for POST/PUT
country (string, optional) - 2-letter ISO country code for geo-targeting
session_id (string, optional) - 1-8 alphanumeric chars to reuse the same IP

Try it

Example Response

{
  "status_code": 200,
  "headers": { "content-type": "application/json" },
  "body": "{\"ip\":\"142.173.194.173\",\"country\":\"US\"}",
  "response_size_bytes": 284,
  "country": "random",
  "elapsed_ms": 1619
}

Fetch URL (Geo-Targeted)

POST /api/x402-proxy/fetch/geo
$0.01

Same as /fetch but requires a country code. Use this for geo-restricted content or localized pricing.

url (string, required) - Target URL to fetch
country (string, required) - 2-letter ISO country code (US, GB, DE, JP, BR, etc.)
method (string, optional) - HTTP method. Default: GET
headers (object, optional) - Custom headers to forward
body (string, optional) - Request body for POST/PUT
session_id (string, optional) - 1-8 alphanumeric chars to reuse the same IP

Try it

Usage Statistics

POST /api/x402-proxy/stats
$0.01

Get cumulative bandwidth and usage statistics since last service restart.

Try it

Example Response

{
  "total_requests": 47,
  "total_errors": 2,
  "total_bytes_sent": 1024,
  "total_bytes_received": 284000,
  "total_bandwidth_mb": 0.27,
  "error_rate_pct": 4.3,
  "tracking_since": "2026-02-26T10:00:00",
  "rate_limit_remaining": 38
}

x402 Protocol

How payment works:

  1. POST to any endpoint without payment → get 402 Payment Required with price and payment instructions
  2. Sign an EIP-3009 TransferWithAuthorization for the requested USDC amount
  3. Base64-encode the payment payload and send it in the X-PAYMENT header
  4. Your request is proxied through a residential IP and the response is returned

Token: USDC on Base Mainnet (Chain ID: 8453)

Settlement: Gasless via ERC-3009 transferWithAuthorization

Facilitator: PayAI Network

curl Example

# Step 1: Get payment requirements
curl -X POST https://x402.onchainexpat.com/api/x402-proxy/fetch \
  -H "Content-Type: application/json" \
  -d '{"url": "https://ifconfig.co/json"}'
# Returns: 402 with accepts[] containing price and payment params

# Step 2: Sign EIP-3009 payment and retry with X-PAYMENT header
curl -X POST https://x402.onchainexpat.com/api/x402-proxy/fetch \
  -H "Content-Type: application/json" \
  -H "X-PAYMENT: <base64-encoded-payment>" \
  -d '{"url": "https://ifconfig.co/json"}'
# Returns: 200 with proxied response through residential IP