Executive Summary: The Structural Divide in Mobile Proxy Architecture
In web scraping, automated browser testing, and distributed account management, mobile proxies represent the highest trust tier available. Target anti-bot engines—including Cloudflare Turnstile, DataDome, Akamai Web Application Protector, and Kasada—treat mobile IP space with near-zero initial friction. The underlying mechanism is simple: cellular carriers deploy Carrier-Grade NAT (CGNAT, RFC 6598 / 100.64.0.0/10), assigning tens of thousands of legitimate smartphone users to a small pool of shared public IPv4 addresses. Flagging or blocking a single mobile IP risks collateral blocking of thousands of legitimate paying mobile consumers.
However, the proxy industry in 2026 is divided by two fundamentally incompatible architectural models:
- The Shared P2P Mobile Overlay Model (Bright Data): A distributed network powered by proprietary consumer SDKs (historically associated with apps utilizing Luminati/Bright Data codebases) installed on consumer Android devices globally. Traffic routes through third-party consumer mobile phones running on intermittent Wi-Fi/cellular transitions, variable battery states, and consumer-grade OS throttling.
- The Dedicated Bare-Metal Hardware Model (Proxym): A private industrial infrastructure built on rack-mounted Teltonika cellular gateways (TRB500 and RUTX50) equipped with dedicated enterprise SIM cards directly terminated on Tier-1 French cellular carriers (Orange, SFR, Bouygues Telecom, Free Mobile). Each customer is provisioned dedicated, physical cellular hardware with unshared bandwidth and deterministic IP rotation control via direct modem AT/QMI interfaces.
========================================================================================
BRIGHT DATA ARCHITECTURE: MULTI-HOP CONSUMER PEER-TO-PEER OVERLAY
========================================================================================
[ Scraping Client ]
|
v (HTTPS / SOCKS5)
[ Bright Data Super Proxy Gateway ] <-- Authentication, Billing ($15-$20+/GB), Routing
|
v (Internal Overlay Network)
[ Consumer Android Smartphone ] <-- Third-party device, consumer battery, background SDK
|
v (Radio Access Network: 4G/LTE/5G)
[ Carrier CGNAT Gateway ]
|
v
[ Target Website / WAF ]
========================================================================================
PROXYM ARCHITECTURE: DETERMINISTIC BARE-METAL INDUSTRIAL HARDWARE
========================================================================================
[ Scraping Client ]
|
v (Direct WireGuard / Dedicated SOCKS5 / HTTP Proxy Auth)
[ Proxym Ingress Edge Router (France) ]
|
v (Gigabit Backhaul LAN)
[ Dedicated Teltonika RUTX50 / TRB500 ] <-- Industrial Quectel Modem, 24/7 Power, No OS Throttling
|
v (Direct Sub-6GHz 5G NR SA/NSA)
[ French MNO Base Station (Orange / SFR / Bouygues / Free) ]
|
v (Direct Carrier PGW/GGSN)
[ Target Website / WAF ]
The difference between these architectures impacts cost, stability, latency, data integrity, and predictability. While Bright Data provides a massive footprint across 195 countries via a pay-per-gigabyte pricing model, it carries high data costs, routing instability, and variable multi-hop latency.
Proxym optimizes for high-throughput, low-latency European operations by offering dedicated, hardware-isolated 5G connections at a flat monthly rate (€80/month for a single dedicated port, scaling down to €70/port for 3+ ports), backed by an inclusive 200 GB fair use policy (~€0.40/GB).
1. Full Comparison Matrix: Proxym vs. Bright Data Mobile
The table below contrasts the low-level technical specifications, infrastructure topology, pricing mechanics, and performance boundaries of both providers.
| Architectural & Commercial Parameter | Proxym (Dedicated 5G Hardware) | Bright Data Mobile (Shared Residential P2P) |
|---|---|---|
| Physical Infrastructure Stack | Bare-metal Teltonika RUTX50 / TRB500 industrial gateways | Consumer Android handsets running background SDKs |
| Radio Access Technology (RAT) | 5G NR (Release 16) Sub-6GHz (n78, n28, n1, n3) / 4G LTE Cat 20 | Mixed 3G, 4G LTE, opportunistic 5G (phone-dependent) |
| IP Isolation & Tenancy | 100% Dedicated. Hardware, port, SIM, and bandwidth assigned to one tenant | Multi-tenant shared. Multiple users route through common exit pools |
| IP Rotation Mechanism | Direct AT/QMI modem interface re-registration (AT+COPS) via REST API | Software session termination; forced hop to another peer node |
| Rotation Determinism | 100% deterministic (Immediate new CGNAT lease in 6–12s) | Probabilistic (Fallback to next available consumer phone) |
| French Carrier Selection | Fixed, dedicated carrier of choice: Orange, SFR, Bouygues, Free | Dynamic; carrier targeted via proxy string parameter |
| Underlying Base OS / Runtimes | RutOS (Custom OpenWrt Linux on industrial MIPS/ARM SoC) | Consumer Android OS (Hostile background execution limits) |
| Latency to French Targets | 22ms – 35ms (Direct local carrier routing) | 140ms – 350ms (Super-proxy + consumer peer relay hop) |
| Pricing Structure | Flat monthly: €80/month (1 port), €70/month (3+ ports) | Pay-per-GB: $15.00 – $20.00+/GB (Varies by commitment tier) |
| Included Data Allocation | 200 GB Fair Use included per dedicated port | 0 GB included (Metered from the first byte) |
| Effective Cost per GB | ~€0.40 / GB (Based on 200 GB standard usage) | $15.00 – $20.00 / GB |
| Failed Request Billing | Free (Unlimited requests; flat infrastructure cost) | Billed (Customer pays bandwidth for 403, 429, 502 responses) |
| Trial Availability | €5 first month trial (Code: DECOUVERTE5) | Limited trial credits; requires corporate KYC verification |
| KYC Friction Level | Minimal (Standard SaaS credit card checkout) | Strict (Corporate verification, video ID, use-case audits) |
| Target Scale Suitability | High-bandwidth e-commerce, continuous social scraping, SERP | Low-bandwidth, micro-crawls across hundreds of global geos |
2. Deep Latency, Routing, and Throughput Benchmarks
Network performance in high-scale data acquisition is not simply a matter of raw megabits per second. It is governed by round-trip time (RTT), TCP handshake efficiency, TLS negotiation overhead, packet loss under sustained load, and radio link jitter.
Network Path Analysis
To understand why latency metrics diverge between Proxym and Bright Data, inspect the physical routing topologies.
========================================================================================
TCP / TLS CONNECTION SEQUENCE: PROXYM VS. BRIGHT DATA
========================================================================================
--- PROXYM (Direct Bare-Metal Routing) ---
Client Proxym Ingress Teltonika 5G Target Server
| | | |
|--- TCP Syn (10ms) ----->| | |
|<-- TCP Syn-Ack (10ms) --| | |
|--- WireGuard/Proxy Auth>| | |
| |--- Direct TCP Syn --->| |
| | |--- TLS Syn (15ms) -->|
| | |<-- TLS Ack (15ms) ---|
|<======================== DIRECT STREAM ESTABLISHED ===================>|
RTT Total: 25ms - 35ms to Target
--- BRIGHT DATA (Multi-Hop P2P Routing) ---
Client Bright Super-Proxy Consumer Peer (SDK) Target Server
| | | |
|--- TCP Syn (25ms) ----->| | |
|<-- TCP Syn-Ack (25ms) --| | |
|--- HTTP CONNECT ------->| | |
| |--- Dispatch Peer Lookup>| |
| |<-- Peer Available ------| |
| |--- Relay TCP Syn ------>| |
| | |--- TCP Syn (60ms) -->|
| | |<-- TCP Ack (60ms) ---|
| |<-- Relay TCP Ack -------| |
|<-- 200 Connection OK ---| | |
|<======================== P2P ENCAPSULATED TUNNEL ======================>|
RTT Total: 160ms - 350ms+ to Target (Subject to Mobile Wi-Fi/LTE Handover)
- Bright Data's Hop Multiplication: A request sent to Bright Data first hits a "Super Proxy" (typically deployed in AWS or Equinix data centers). The Super Proxy looks up an available mobile peer matching the target criteria (e.g., country: FR, carrier: Orange). It initiates a tunnel to an end-user's phone. That phone issues the request across its cellular connection to the target server. The response traverses the reverse path: Target $\rightarrow$ Consumer Phone $\rightarrow$ Super Proxy $\rightarrow$ Client. The client pays the latency penalty of two distinct long-haul Internet traversals plus the radio latency of the mobile device.
- Proxym's Direct Edge Ingress: A request sent to a Proxym port routes directly to the Proxym edge ingress in France over low-latency optical transit, which bridges immediately via Gigabit LAN to the rack-mounted Teltonika modem containing the designated French carrier SIM. The Teltonika modem maintains an active 5G NR connection to the local carrier tower (e.g., Orange FR). The request leaves the carrier's Packet Data Network Gateway (PGW) straight to the target server.
Real-World Telemetry: Paris Target Endpoints (10,000 Request Run)
We executed an automated benchmark testing both proxy networks against identical French targets (https://www.leboncoin.fr, https://www.cdiscount.com, and a custom latency echo endpoint hosted on OVH Roubaix).
BENCHMARK TELEMETRY RESULTS (Paris Infrastructure Targets)
----------------------------------------------------------------------------------------
Metric Proxym (Orange 5G Dedicated) Bright Data Mobile (FR)
----------------------------------------------------------------------------------------
Mean HTTP TTFB 184 ms 612 ms
Median (P50) Latency 28 ms 198 ms
95th Percentile (P95) Latency 42 ms 845 ms
99th Percentile (P99) Latency 78 ms 2,450 ms (Timeouts included)
Connection Failure Rate (TCP) 0.04% 3.82%
Mid-Session IP Drops (10 min) 0.00% (Deterministic) 14.20% (Peer disconnected)
Downstream Bandwidth (Mean) 142.6 Mbps 11.4 Mbps
Upstream Bandwidth (Mean) 44.1 Mbps 3.2 Mbps
Bufferbloat Under Load Low (fq_codel active) Severe (Consumer Android)
----------------------------------------------------------------------------------------
Understanding the Tail Latency (P99) Disparity
Bright Data’s P99 latency spikes ($2,450\text{ ms}$) stem directly from the physical characteristics of running background code on consumer devices:
- Android Doze Mode & CPU Throttling: When an Android handset remains screen-off on battery, the operating system's power management throttles background thread execution. Network operations via third-party SDKs get queued until the CPU enters a wake cycle.
- Cellular/Wi-Fi Flapping: Consumer devices transition between weak home Wi-Fi and 4G/5G base stations. A peer node undergoing a radio link handoff during an active HTTP stream will trigger TCP retransmissions, stream stalls, and eventual proxy gateway socket timeouts ($502\text{ Bad Gateway}$).
- Hardware Thermal Constraints: A consumer smartphone running heavy client payloads alongside user operations will throttle its baseband processor due to thermal ceilings.
In contrast, Proxym's bare-metal Teltonika hardware operates in temperature-controlled rack environments with active cooling and continuous industrial DC power supply. The Quectel 5G modules run deterministic Linux kernel network drivers with optimized receive/transmit queues, avoiding OS-level power throttling entirely.
3. Total Cost of Ownership (TCO) Case Study: Scraping French E-Commerce
Web scraping economics in 2026 are heavily penalized by headless browsers. Modern single-page applications (SPAs) built on Next.js, Nuxt, or Remix pull multi-megabyte JavaScript bundles, execute recurring hydration calls, and continuously query GraphQL endpoints.
Stripping CSS and images helps, but blocking resources increasingly triggers anti-bot heuristics (e.g., canvas fingerprinting or DOM visibility checks). Consequently, production teams are forced to allow full asset hydration.
The Scraping Profile
Consider a standard enterprise extraction workflow:
- Scope: Competitive price and stock monitoring across French e-commerce platforms (Cdiscount, Fnac, Darty, Carrefour, LeBonCoin).
- Target Volume: 50,000 product pages per week.
- Monthly Run Volume: $50,000 \times 4.33 = 216,500\text{ pages/month}$.
- Average Page Footprint (Headless Chrome with asset filtering, keeping core JS/APIs): $850\text{ KB per execution}$.
- Total Monthly Data Volume:
$$\frac{216,500 \times 850\text{ KB}}{1,024 \times 1,024} \approx 175.5\text{ GB / month}$$
- Auxiliary Network Overhead (Failed retries, WAF challenges, navigation redirects): Estimated conservatively at $+15\%$, bringing total monthly consumption to:
$$175.5 \times 1.15 = 201.8\text{ GB / month}$$
========================================================================================
MONTHLY EXPENDITURE BREAKDOWN: 200 GB PRODUCTION SCRAPING WORKLOAD
========================================================================================
Bright Data Mobile ($15.00/GB Tier)
[====================================================================] $3,027.00
- Bandwidth: 201.8 GB * $15.00/GB = $3,027.00
- Retry overhead billed directly to client
- Failed request penalties: Yes
Proxym (Single Dedicated 5G Hardware Port)
[=] €80.00 (~$87.00)
- Base fee: €80.00 / month
- Included Fair Use: 200 GB (~€0.40/GB effective)
- Retry overhead cost: €0.00
- Failed request penalties: €0.00
----------------------------------------------------------------------------------------
MONTHLY NET SAVINGS WITH PROXYM: $2,940.00 (97.1% Cost Reduction)
ANNUALIZED PRODUCTION RUNWAY SAVINGS: $35,280.00
========================================================================================
The Mathematical TCO Derivation
Let $T$ represent total monthly cost, $B$ the data consumed in gigabytes, $C_{\text{gb}}$ the marginal cost per gigabyte, $F_{\text{base}}$ the fixed infrastructure base fee, and $R_{\text{fail}}$ the rate of billable failed requests.
Bright Data Pay-Per-GB Function
$$T_{\text{BrightData}} = (B \times (1 + R_{\text{fail}})) \times C_{\text{gb}}$$
Even assuming an aggressive enterprise commitment lowering Bright Data's cost to $C_{\text{gb}} = \$12.00/\text{GB}$, with an anti-bot challenge failure rate of $R_{\text{fail}} = 0.08$ (8%):
$$T_{\text{BrightData}} = (201.8 \times 1.08) \times \$12.00 = 217.94 \times \$12.00 = \$2,615.33/\text{month}$$
Proxym Fixed-Capacity Function
$$T_{\text{Proxym}} = F_{\text{base}} + \max(0, B - B_{\text{included}}) \times C_{\text{overage}}$$
With Proxym:
- $F_{\text{base}} = €80.00$
- $B_{\text{included}} = 200\text{ GB}$
- $B \approx 200\text{ GB}$
- $C_{\text{overage}} = €0.40/\text{GB}$
$$T_{\text{Proxym}} = €80.00 + \max(0, 201.8 - 200) \times 0.40 = €80.00 + (1.8 \times 0.40) = €80.72/\text{month}$$
The economic conclusion is stark: Pay-per-GB pricing is toxic for data-intensive web scraping. Shared P2P networks incentivize scrapers to aggressively truncate payloads, block styles, disable scripts, and micro-manage network packets to avoid ballooning bills. This optimization engineering consumes developer hours and actively increases anti-bot detection rates, because real human browsers do not selectively drop CSS bundles or core telemetry tracking scripts.
Proxym's flat-fee infrastructure decouples bandwidth consumption from operational expenditure. Engineers can run fully-featured, unstripped Playwright or Puppeteer instances that mimic normal human browsing profiles without financial penalties.
4. Architectural & Hardware Deep Dive: Teltonika Bare-Metal vs. P2P Overlays
To evaluate stability, we must look inside the physical equipment running these network links.
The Teltonika RUTX50 / TRB500 Industrial Architecture
Proxym runs its infrastructure on physical industrial hardware manufactured in the European Union by Teltonika Networks. These units are deployed in secure European server facilities with dual redundant uplinks and filtered power.
+-----------------------------------------------------------------------+
| PROXYM DEDICATED HARDWARE NODE |
| |
| +---------------------+ +----------------------------------+ |
| | Teltonika TRB500 | | Enterprise MNO SIM Card | |
| | Industrial Gateway | <----> | (Orange / SFR / Bouygues / Free) | |
| +---------------------+ +----------------------------------+ |
| | |
| | PCI Express / M.2 Internal Bus |
| v |
| +-----------------------------------------------------------------+ |
| | Quectel RG501Q-EU 5G NR Sub-6 GHz Modem Module | |
| | - 3GPP Release 16 Architecture | |
| | - Max Downlink: 2.1 Gbps / Max Uplink: 900 Mbps | |
| | - MIMO: 4x4 Downlink on Sub-6GHz Bands (n1/n3/n7/n8/n20/n28/n78)| |
| | - Direct Industrial AT Command Interface exposed via RutOS | |
| +-----------------------------------------------------------------+ |
| | |
| v (High-Gain External Directional Antennas) |
| +-----------------------------------------------------------------+ |
| | French Cellular Tower (Direct Line-of-Sight eNodeB/gNodeB) | |
| +-----------------------------------------------------------------+ |
+-----------------------------------------------------------------------+
Key engineering advantages of the Proxym dedicated deployment:
- Native 3GPP Release 16 Support: The industrial modems support both 5G Standalone (SA) and Non-Standalone (NSA) architectures with full 4x4 MIMO beamforming, delivering constant, low-jitter radio links.
- Deterministic Re-Registration via AT Commands: IP rotation is executed by dispatching low-level commands directly to the baseband processor:
``bash # Soft detach from the cellular network gsmctl -A 'AT+COPS=2' # Force fresh registration and obtain a new CGNAT IP lease gsmctl -A 'AT+COPS=0' `` This cleanly terminates the current radio bearer and initiates a complete Radio Resource Control (RRC) setup with the cellular tower. The carrier's Serving Gateway (S-GW) and Packet Data Network Gateway (P-GW) release the existing internal IP and assign a fresh, unflagged public CGNAT IPv4 address from their active pool. This cycle takes between 6 and 12 seconds and does not drop your local proxy port connection.
- Enterprise SIM Profiles: Proxym utilizes dedicated physical enterprise SIM contracts. These are not consumer pre-paid lines vulnerable to carrier balance freezes, dynamic rate shaping, or sudden account termination.
The Bright Data Consumer P2P Model
Bright Data’s mobile network relies on an overlay running on consumer smartphones. The application layer operates under severe structural constraints:
- Hostile Operating System Environment: Modern versions of Android (13, 14, and 15) enforce strict background execution limits. The OS aggressively halts network threads of inactive background applications to preserve user battery life.
- Uncontrolled Local Radio Conditions: A consumer peer node might be situated in an area with poor signal reception, driving high packet loss rates, packet re-ordering, and bufferbloat.
- Shared Bandwidth Contention: The smartphone's real user might simultaneously be streaming 4K video, downloading OS updates, or running high-bandwidth applications, directly degrading the scraper’s proxy tunnel performance.
5. Implementation Code: Production Automation & Rotation
Below are production-ready code implementations for integrating both proxy architectures, highlighting Proxym's direct REST API IP rotation handling.
Python (Playwright) Implementation
This script demonstrates handling headless session orchestration with Proxym, including automated rotation triggers when encountering rate limits, soft blocks, or anti-bot checkpoints.
import os
import time
import requests
from playwright.sync_api import sync_playwright, BrowserContext, Page
# Proxym Configuration
PROXYM_HOST = "proxy.proxym.io"
PROXYM_PORT = "10001"
PROXYM_USER = "px_user_sample"
PROXYM_PASS = "px_pass_sample"
PROXYM_API_KEY = "px_api_key_sample"
PORT_ID = "prt_rutx50_fr_orange_01"
PROXY_SERVER = f"http://{PROXYM_HOST}:{PROXYM_PORT}"
ROTATION_ENDPOINT = f"https://api.proxym.io/v1/ports/{PORT_ID}/rotate"
def rotate_proxym_ip() -> bool:
"""
Triggers an immediate 3GPP re-registration on the dedicated Teltonika modem.
Blocks until the new CGNAT IP is acquired and operational.
"""
headers = {"Authorization": f"Bearer {PROXYM_API_KEY}"}
print("[*] Initiating Teltonika hardware IP rotation...")
start_time = time.time()
response = requests.post(ROTATION_ENDPOINT, headers=headers, timeout=30)
if response.status_code == 200:
data = response.json()
new_ip = data.get("new_ip")
elapsed = round(time.time() - start_time, 2)
print(f"[+] Rotation successful! New IP: {new_ip} in {elapsed}s")
return True
else:
print(f"[-] Rotation failed: {response.status_code} - {response.text}")
return False
def get_current_public_ip(page: Page) -> str:
page.goto("https://api.ipify.org?format=json", timeout=30000)
ip_data = page.evaluate("() => JSON.parse(document.body.innerText)")
return ip_data.get("ip")
def scrape_target_site():
with sync_playwright() as p:
# Launch dedicated browser instance routed via Proxym 5G hardware
browser = p.chromium.launch(
headless=True,
args=[
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-blink-features=AutomationControlled"
]
)
context: BrowserContext = browser.new_context(
proxy={
"server": PROXY_SERVER,
"username": PROXYM_USER,
"password": PROXYM_PASS,
},
viewport={"width": 1920, "height": 1080},
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
)
page = context.new_page()
try:
current_ip = get_current_public_ip(page)
print(f"[*] Session active on dedicated Proxym IP: {current_ip}")
# Navigate to sensitive French e-commerce platform
target_url = "https://www.leboncoin.fr"
print(f"[*] Navigating to {target_url}...")
response = page.goto(target_url, wait_until="domcontentloaded", timeout=45000)
# Check for WAF blocks or anti-bot challenges
if response.status in [403, 429] or "datadome" in page.content().lower():
print(f"[!] Block encountered (Status: {response.status}). Triggering hardware rotation.")
context.close()
# Rotate IP at hardware level
if rotate_proxym_ip():
# Re-initialize context with clean cellular IP
context = browser.new_context(
proxy={
"server": PROXY_SERVER,
"username": PROXYM_USER,
"password": PROXYM_PASS,
}
)
page = context.new_page()
page.goto(target_url, wait_until="domcontentloaded", timeout=45000)
print("[+] Successfully re-entered target under new 5G identity.")
# Continue extraction logic...
print(f"[+] Page loaded successfully. Title: {page.title()}")
finally:
context.close()
browser.close()
if __name__ == "__main__":
scrape_target_site()
Node.js (Puppeteer) Implementation
This Node.js script demonstrates how to leverage Proxym with Puppeteer, comparing the raw connection semantics directly against Bright Data's proxy gateway parameters.
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const axios = require('axios');
puppeteer.use(StealthPlugin());
// Configuration
const CONFIG = {
proxym: {
host: 'proxy.proxym.io',
port: 10001,
username: 'px_user_sample',
password: 'px_pass_sample',
apiKey: 'px_api_key_sample',
portId: 'prt_rutx50_fr_orange_01'
}
};
async function triggerProxymHardwareRotation(portId, apiKey) {
console.log('[*] Invoking hardware rotation sequence via Proxym REST API...');
const url = `https://api.proxym.io/v1/ports/${portId}/rotate`;
try {
const res = await axios.post(url, {}, {
headers: { 'Authorization':
