Getting Started

Buy a real 4G/5G mobile proxy in under 2 minutes. Account creation, depositing, purchasing, and connecting.

1. Create an account

Go to proxysmart.market/auth/buyer and enter your email. We send a one-click magic link โ€” no password required. You can set one later in your profile.

New users are auto-registered. Your first magic link creates the account and signs you in โ€” no separate registration step.

2. Add balance

Navigate to Dashboard โ†’ Balance โ†’ Deposit. Two payment methods:

  • Stripe โ€” credit/debit card (Visa, Mastercard, Amex). Instant credit. Min $5.
  • CoinGate โ€” cryptocurrency (BTC, ETH, USDT, and 70+ others). Credited on 1 confirmation. Min $5.

3. Browse and buy a proxy

Go to Dashboard โ†’ Buy Proxies. Proxies are grouped by country. Select a modem and choose a duration:

DurationTypical priceBest for
1 hour$0.33Quick tasks, testing
24 hours$2.50Day-long campaigns
7 days$8.40Week-long projects
30 days$30.00Long-running bots
One proxy per modem. Each purchase allocates a dedicated physical modem. No shared IPs during your active order.

4. Receive credentials

After checkout, credentials are provisioned instantly (under 5 seconds). Go to Dashboard โ†’ My Proxies:

Host: 168.x.x.x HTTP port: 8015 SOCKS5 port: 5015 Username: your_username Password: your_password

Both HTTP and SOCKS5 are provided on every order at no extra charge.

5. Connect

curl

curl -x http://user:pass@host:8015 https://ipinfo.io/json

Python

import requests proxies = { "http": "http://user:pass@host:8015", "https": "http://user:pass@host:8015", } r = requests.get("https://ipinfo.io/json", proxies=proxies) print(r.json())

SOCKS5

import socks, socket socks.set_default_proxy(socks.SOCKS5, "host", 5015, username="user", password="pass") socket.socket = socks.socksocket

6. Rotate your IP

Click Rotate IP in the dashboard or call POST /api/orders/:id/rotate. The modem disconnects and reconnects to the carrier, acquiring a new IP. Average: 5โ€“30 seconds depending on carrier.

IP rotation drops connections. Any active TCP connections will break. Rotate between tasks, not during requests.

7. Extend or cancel

  • Extend โ€” adds time to the same proxy (same credentials, same port). No reconnection.
  • Cancel โ€” releases the modem. Pending orders are fully refunded. Active orders are not refunded โ€” remaining time is forfeited.

Proxy Types & Mobile Networks

CGNAT, carrier IP pools, and why mobile proxies work differently from datacenter or residential proxies.

What makes a mobile proxy

A mobile proxy routes traffic through a real SIM card on a live carrier network. The outbound IP is the carrier's public-facing IP โ€” the same IP millions of legitimate mobile users share. This is why mobile proxies achieve near-zero block rates.

On ProxySmart, each proxy is a dedicated modem with a single SIM. One buyer, one modem โ€” no shared IPs during an active order.

CGNAT โ€” Carrier-Grade NAT

Under CGNAT, the carrier adds a NAT layer between subscriber and internet. A single public IPv4 is shared by hundreds to thousands of devices. When a website sees your IP, blocking it would block thousands of legitimate users โ€” which is why mobile IPs are almost never blocked.

When you rotate (modem reconnects), the CGNAT gateway assigns a different IP from the carrier pool. Assignment is pseudo-random and pooled per region.

HTTP vs SOCKS5 vs OpenVPN

FeatureHTTPSOCKS5OpenVPN
ProtocolsHTTP, HTTPSTCP, UDP, QUICAll (full tunnel)
Port range8001โ€“89995001โ€“59991194 UDP
BrowserNativeExtension/systemSystem-wide
UDP/QUICNoYesYes
Full deviceNoNoYes
AvailabilityAll serversAll serversAlmost all
Use SOCKS5 for QUIC/HTTP3 and UDP workloads. Use OpenVPN for full-device routing. Use HTTP for browsers, curl, and tools with native proxy support.

Carrier profiles

CarrierASNRotation speedBest for
T-Mobile USAAS219288โ€“20sUS Google/YouTube, social media
AT&T MobilityAS2005710โ€“25sUS banking/finance, e-commerce
Vodafone UKAS2513512โ€“25sUK retail, financial platforms
Three UKAS130375โ€“12sHigh-frequency rotation, sneaker bots
Free Mobile FRAS5120710โ€“20sFrench-targeted tasks, EU geo

Native carrier DNS

All ProxySmart proxies resolve DNS using the carrier's own resolvers โ€” not Google or Cloudflare. Some anti-bot systems check DNS resolver consistency with IP carrier. A T-Mobile IP using T-Mobile DNS is undetectable.

IP Rotation

Force the modem to reconnect to the carrier and get a fresh IP. Same proxy, same credentials โ€” only the outbound IP changes.

How it works

  1. Modem drops its data session (PDP context) โ€” current IP is released.
  2. Modem reconnects โ€” carrier assigns a fresh IP from the CGNAT pool.
  3. ProxySmart confirms the new IP before returning success.
What stays the same: host, port, username, password, country, carrier, and expiry. Only the outbound IP changes.

Methods

Dashboard: click Rotate IP. API:

POST /api/orders/:id/rotate Authorization: Bearer <token> โ†’ { "ok": true, "message": "Rotation initiated. New IP in ~10โ€“20s." } # Or unauthenticated (order UUID is the secret): GET /api/orders/:id/rotate

Timing by carrier

CarrierTypical time
Three UK5โ€“12 seconds
T-Mobile USA8โ€“20 seconds
Free Mobile FR10โ€“20 seconds
AT&T Mobility10โ€“25 seconds
Vodafone UK12โ€“25 seconds

Best practices

  • Rotate between tasks โ€” finish your request, then rotate.
  • Don't over-rotate โ€” every few minutes looks natural; every 30 seconds looks like a bot.
  • Rotate after blocks โ€” if a site blocks you, rotate and continue.

REST API Reference

Base URL: https://proxysmart.market/api. Auth via Authorization: Bearer <token>.

Authentication

POST /auth/register { email, password, role? } โ†’ { token } POST /auth/login { email, password, role? } โ†’ { token } or { requiresTwoFactor, tempToken } POST /auth/magic-link { email, role? } โ†’ { ok } GET /auth/magic-link/verify?token=... โ†’ { token } POST /auth/forgot-password { email } โ†’ { ok } GET /auth/me ๐Ÿ”’ โ†’ { id, email, role, balance, shopName, status } PATCH /auth/me ๐Ÿ”’ { shopName? } โ†’ { ok, user } GET /auth/has-password ๐Ÿ”’ โ†’ { hasPassword } POST /auth/set-password ๐Ÿ”’ { password } โ†’ { ok } POST /auth/change-password ๐Ÿ”’ { currentPassword, newPassword } โ†’ { ok } POST /auth/logout ๐Ÿ”’ โ†’ { ok }

Two-Factor Authentication (TOTP)

GET /auth/2fa/status ๐Ÿ”’ โ†’ { enabled } POST /auth/2fa/setup ๐Ÿ”’ โ†’ { secret, otpauthUrl, qrDataUrl } POST /auth/2fa/enable ๐Ÿ”’ { code } โ†’ { ok, backupCodes[] } POST /auth/2fa/disable ๐Ÿ”’ { code } โ†’ { ok } POST /auth/2fa/verify { tempToken, code } โ†’ { token }

Public (no auth)

GET /public/listings?limit=100 โ†’ { listings[], total } GET /public/stats โ†’ { online, available, active_orders, countries, prices: { min, max, avg } }

Orders

GET /orders ๐Ÿ”’ ?status=active&page=1&limit=50 โ†’ { orders[], total, page, pages } POST /orders ๐Ÿ”’ { modemId, duration, couponCode? } โ†’ { order } GET /orders/:id ๐Ÿ”’ โ†’ { order } (credentials included for active orders) POST /orders/:id/extend ๐Ÿ”’ { duration, couponCode? } โ†’ { ok, expiresAt } POST /orders/:id/rotate ๐Ÿ”’ โ†’ { ok, message } GET /orders/:id/rotate โ†’ { ok, message } (unauthenticated โ€” UUID is secret) GET /orders/:id/proxy-status ๐Ÿ”’ โ†’ { online, extIp, operator, networkType, signalStrength } GET /orders/:id/vpn ๐Ÿ”’ โ†’ .ovpn file download (application/octet-stream) DELETE /orders/:id ๐Ÿ”’ โ†’ { ok, refunded } (no refund for buyer-cancelled active orders)
Durations: 1h, 24h, 7d, 30d. Rotate cooldown: 65 seconds between rotations.

Balance & Payments

GET /balance ๐Ÿ”’ โ†’ { balance, transactions[] } GET /balance/transactions ๐Ÿ”’ โ†’ { transactions[] } (last 100) GET /balance/transactions/export ๐Ÿ”’ โ†’ CSV download POST /balance/deposit/stripe ๐Ÿ”’ { amount: 5โ€“5000 } โ†’ { url } (redirect to Stripe Checkout) POST /balance/deposit/coingate ๐Ÿ”’ { amount: 5โ€“5000, receiveCurrency? } โ†’ { url, orderId }

Servers & Modems (Farmer)

GET /servers ๐ŸŒพ โ†’ { servers[] } POST /servers ๐ŸŒพ { name, apiUrl, integrationMode?, shopUsername?, ... } โ†’ { server } GET /servers/:id ๐ŸŒพ โ†’ { server } PATCH /servers/:id ๐ŸŒพ { name?, apiUrl?, ... } โ†’ { ok } DELETE /servers/:id ๐ŸŒพ โ†’ { ok } POST /servers/:id/sync ๐ŸŒพ โ†’ { ok, message: "Sync queued" } POST /servers/:id/test-connection ๐ŸŒพ โ†’ { ok, results[], psVersion, supportsMultishop } PATCH /servers/:id/pause ๐ŸŒพ โ†’ { ok } (emergency: unlist all modems) PATCH /servers/:id/resume ๐ŸŒพ โ†’ { ok } GET /servers/:id/modems ๐ŸŒพ โ†’ { modems[] } GET /servers/:id/modems/:modemId ๐ŸŒพ โ†’ { modem } PATCH /servers/:id/modems/:modemId ๐ŸŒพ { action: 'list'|'unlist'|'maintenance'|'notes' } โ†’ { ok } POST /servers/:id/modems/bulk ๐ŸŒพ { modemIds[], action } โ†’ { ok, affected, skipped } POST /servers/:id/modems/bulk-price ๐ŸŒพ { prices: { 1h, 24h, 7d, 30d }, modemIds? } โ†’ { ok, affected } PATCH /servers/:serverId/modems/:modemId/plans ๐ŸŒพ { 1h, 24h, 7d, 30d } โ†’ { ok } GET /servers/:id/modems/:modemId/ping ๐ŸŒพ โ†’ { modemId, online, extIp, operator, networkType, ... } GET /servers/:id/earnings ๐ŸŒพ โ†’ { earnings: { allTime, last30d, last7d, last24h }, modems[] } GET /servers/:id/reports/modem-timeline ๐ŸŒพ ?days=30 โ†’ { modems[], since } GET /servers/stats ๐ŸŒพ โ†’ { servers, total, listed, allocated, offline, earnings30d, earningsAllTime }

Payouts (Farmer)

GET /payouts ๐ŸŒพ โ†’ { payouts[], feePercent: 2, minPayout: 20 } POST /payouts ๐ŸŒพ { amount, method, details?, savedMethodId? } โ†’ { payout } GET /payouts/methods ๐ŸŒพ โ†’ { methods[] } POST /payouts/methods ๐ŸŒพ { label, type, details } โ†’ { method } DELETE /payouts/methods/:id ๐ŸŒพ โ†’ { ok }

Methods: bank, paypal, crypto, wise. Min payout: $20. Fee: 2%.

Support Tickets

GET /tickets ๐Ÿ”’ โ†’ { tickets[] } POST /tickets ๐Ÿ”’ { subject, body, priority?, orderId? } โ†’ { ticket } GET /tickets/:id ๐Ÿ”’ โ†’ { ticket with messages[] } POST /tickets/:id/messages ๐Ÿ”’ { body } โ†’ { ok } PATCH /tickets/:id ๐Ÿ”’ { status? } โ†’ { ok } GET /tickets/pending-count ๐Ÿ”’ โ†’ { count }

Notifications

GET /notifications ๐Ÿ”’ ?limit=50 โ†’ { notifications[] } GET /notifications/unread-count ๐Ÿ”’ โ†’ { count } PATCH /notifications/:id/read ๐Ÿ”’ โ†’ { ok } POST /notifications/read-all ๐Ÿ”’ โ†’ { ok }

Live Events (SSE)

GET /events ๐Ÿ”’ โ†’ text/event-stream Events: order.update, order.activated, order.expired, notification, ping.result Heartbeat: comment every 25s
Legend: ๐Ÿ”’ = auth required (any role). ๐ŸŒพ = farmer or admin role required. All endpoints prefixed with /api.