Changelog

What’s new in ProxyRequest.

Versioned routing, accounting, API, dashboard, and infrastructure changes in one release record.

Release record

Filter by change type.

Rust Proxy Runtime in Production
ProxyRequest production traffic is now served by our Rust proxy runtime. The new data plane lowers infrastructure overhead and keeps response times more consistent when traffic, provider selection, and plan rules put the system under pressure.
A more efficient production data plane
3–5×
Lower CPU usage
5–8×
Lower RAM usage
Lower
Tail latency
New
Rust proxy runtime now serves production traffic
The ProxyRequest data plane has moved to a purpose-built Rust runtime for HTTP, CONNECT, and SOCKS5 traffic. Bounded connection handling, provider work, queues, and buffers keep resource use predictable as traffic grows, while the existing control plane continues to manage routing, sessions, accounting, and provider configuration.
RustProductionHTTP & SOCKS5
Improvements
A smaller infrastructure footprint
In matched internal measurements against the previous production proxy written in Go, the Rust runtime used about one-third to one-fifth as much CPU and one-fifth to one-eighth as much RAM. That corresponds to 3–5× lower CPU usage and 5–8× lower memory usage across the measured profiles.
These are observed ranges, not fixed guarantees. The result varies with traffic type and concurrency, the number and configuration of connected upstream providers, and the number and complexity of active tariff plans and their routing or targeting rules.
3–5× CPU5–8× RAMMeasured ranges
Fewer unusually slow requests
p95 is the time within which 95 out of every 100 requests finish, and p99 covers 99 out of every 100. Lower tail latency means the handful of requests at the slow end now spend less time inside the proxy, instead of being hidden by a fast average.
Reducing those slow outliers limits stalls during traffic bursts, makes request behavior more stable, and helps each proxy instance sustain more useful throughput at both the 95th- and 99th-percentile boundaries.
Lower p95Lower p99Stable throughput
Idempotent API Mutations and SDK Support
Retry critical creates, deletes, and data allocations without duplicating a completed operation. The public contract now documents replay-safe mutation keys, optimistic concurrency, and matching behavior across every official SDK.
Safer state changes
12
Protected mutations
24h
Successful replay window
3
Official SDKs
New
Replay-safe critical mutations
Twelve operations declared by the public contract now accept an optional Idempotency-Key. Repeating the same request with the same key replays its successful response for 24 hours and sets Idempotency-Replayed. Reusing a key for a different request, or while the first request is still running, returns 409 Conflict; in-progress responses include retry guidance.
Inspect supported operations → Download the OpenAPI specification →
Idempotency-Key409 ConflictReplay metadata
Optimistic concurrency with ETags
Documented resource responses expose a strong ETag. Supported updates and deletes accept that value through If-Match, preventing a stale client from overwriting a newer representation. A mismatch returns 412 Precondition Failed together with the current ETag.
ETagIf-Match412 Precondition Failed
Improvements
Official SDK support for safe retries
The JavaScript, Python, and PHP SDKs generate keys automatically for supported mutations, accept stable application-provided keys, and reuse one key across bounded retries after ambiguous network outcomes. Response metadata exposes replay and ETag values, while automatic key generation remains configurable.
JavaScriptPythonPHP
Generated reference aligned with the public contract
The API Reference and downloadable OpenAPI document now include every supported idempotency header, replay response, conditional request header, and concurrency error alongside the existing 82-operation surface.
Browse the API Reference → Download OpenAPI YAML →
OpenAPIAPI ReferenceContract parity
Official SDKs for JavaScript, PHP, and Python
Integrate the ProxyRequest management API without maintaining request wrappers by hand. All three official SDKs cover the complete public API and share the same authentication, resource, error, pagination, file-download, and webhook-verification behavior.
One API, native developer experience
3
Official SDKs
82
API operations
1
Shared OpenAPI contract
New
JavaScript and TypeScript SDK on npm
The universal @proxyrequest/sdk package supports modern browsers and Node.js 22+, ships ESM and CommonJS entry points, and includes complete TypeScript declarations.
npm install @proxyrequest/sdk pnpm add @proxyrequest/sdk yarn add @proxyrequest/sdk
Open the npm package → View the JavaScript SDK on GitHub →
TypeScriptESMCommonJS
PHP 8.5 SDK on Packagist
The typed PHP client integrates through Composer and provides resource-oriented services, PSR-compatible HTTP behavior, normalized API exceptions, pagination, downloads, and webhook verification.
composer require proxyrequest/php-sdk
Open the Packagist package → View the PHP SDK on GitHub →
PHP 8.5ComposerPSR
Sync and async Python SDK
The Python 3.11+ SDK is published on PyPI with typed synchronous and asynchronous clients. Install the verified wheel or source distribution directly from the public index with the package manager used by your project.
python -m pip install proxyrequest-sdk uv add proxyrequest-sdk poetry add proxyrequest-sdk pdm add proxyrequest-sdk
Open the PyPI package → View the Python SDK on GitHub →
Python 3.11+SyncAsync
Improvements
The latest public API contract is now available on the documentation site
The downloadable OpenAPI document now matches the contract used to generate every official SDK. Teams can inspect the same schemas, paths, authentication rules, and response models whether they use generated clients or build an integration directly.
Download the OpenAPI specification → Explore the API resource map →
OpenAPIContract parityDocumentation
Traffic Balance Visibility in Webhooks
Usage webhooks now carry a durable balance snapshot for both direct customers and sub-users. Integrations can react to a normalized remaining percentage, distinguish unlimited packages, and show when and how much traffic was last added.
Balance automation
0–100%
Normalized balance
2
Customer ownership modes
Exact
Latest top-up metadata
New
Low-balance automation from every usage webhook
The nested order object now includes data_allocated, data_available, and data_available_percentage. Clients can apply their own thresholds and notify customers before their traffic allowance is exhausted.
Review the webhook event fields →
webhookstraffic balance
Latest top-up amount and timestamp
latest_data_top_up and latest_data_top_up_date identify the exact most recent allocation. Legacy orders without reliable history return null instead of an estimate.
top-upsdata lifecycle
Improvements
Consistent parent and sub-user balances
Direct users, sub-users with purchased orders, and virtual sub-users now receive balances with ownership-aware semantics. Unlimited packages are explicit and always report a normalized percentage of 100.
Read the webhook integration guide →
sub-usersdurable accounting
Proxy Metrics — Deeper Operational Analytics
A new Proxy Metrics workspace gives operators a deeper view of proxy traffic, gateway behavior, and upstream provider reliability. Use the same filters and time window across every panel to compare providers, investigate degradation, and decide when routing or supplier action is required.
Operational visibility
4
Live KPI summaries
6
Diagnostic panels
31d
Maximum analysis window
New
One workspace for live proxy behavior
The Analytics area now includes a dedicated Proxy Metrics tab. Four KPI cards summarize requests per second, active connections, traffic throughput, and P95 request latency, while six synchronized charts expose those signals alongside success rate and provider failures.
proxy metricsoperational analytics
Shared infrastructure and provider filters
Narrow an analysis by cluster, region, server, protocol, upstream provider, and an exact date-time range of up to 31 days. Applying one scope to every panel makes it easier to compare the same incident window without assembling separate reports.
filtersincident window
Improvements
Faster provider and incident diagnosis
Success-rate and failure panels make upstream degradation visible next to traffic and latency. Operators can identify anomalies, compare supplier behavior, gather evidence for an incident, and make informed routing or provider decisions without treating a single aggregate metric as the whole picture.
Read the analytics and operations guide →
providersincident response
Explicit partial and unavailable states
When the metrics datasource cannot return every series, the workspace marks partial or unavailable data instead of presenting an incomplete view as healthy. Existing results remain visible where possible so the operator retains context during investigation.
data qualityfailure states
Localized Public API Error Responses
Human-readable errors from the public API now follow the caller's requested language. The API supports nine locales, negotiates them through Accept-Language, and returns the effective locale in Content-Language.
API localization by the numbers
9
Supported languages
75
Documented operations
en
Default fallback
New
Public API errors in nine languages
Human-readable validation, authentication, permission, and server error messages are available in English (en), Russian (ru), Ukrainian (uk), German (de), Italian (it), French (fr), Spanish (es), Simplified Chinese (zh-hans), and Japanese (ja). Field names and machine-readable values keep their existing shape.
public api9 languages
Standard HTTP language negotiation
Send the optional Accept-Language request header, for example Accept-Language: uk, en;q=0.8. Regional language tags and quality weights are supported. The API chooses the first supported locale with a positive quality value; when the header is omitted or no requested locale is supported, it uses English. Public API language cookies are ignored.
Accept-Languageq-values
Selected locale is explicit in every response
Public API responses return the effective locale in Content-Language and include Vary: Accept-Language so shared caches keep language variants separate. The OpenAPI reference now documents Accept-Language on every operation and Content-Language on error responses.
Open the public API reference →
Content-LanguageVary
Breaking Changes
The translation key was removed from public error payloads
Integrations must no longer read translation or use it as a client-side localization key. Read the existing human-readable error fields, such as detail, non_field_errors, and field-specific message arrays, and select their language with Accept-Language. The server now owns error-message localization and removes legacy translation metadata at every nesting level.
breakingerror contractmigration required
User + Sub-user Analytics Aggregation
The analytics API now supports an optional include_sub_users query parameter. Set it to true to combine the selected user's own activity with all of their sub-users in traffic totals and top-domain reporting.
API release by the numbers
2
Analytics endpoints
1
Optional query flag
false
Backward-compatible default
New
Combined traffic totals and request history
GET /analytics/overall?user_id=…&include_sub_users=true returns transferred bytes and request counts for the selected user and their complete sub-user scope, while preserving the existing date, timezone, and package filters.
Open traffic totals API reference →
analytics/overallaggregation
Combined top-domain reporting
GET /analytics/domains?user_id=…&include_sub_users=true aggregates request count and transferred bytes by destination hostname across the same user hierarchy. Hostname, ledger, package, ordering, and reporting-window filters remain available.
Open top domains API reference →
analytics/domainsreporting
Permission-aware account expansion
Superusers can aggregate any selected user's scope. Resellers can aggregate their own account with all of its sub-users, but cannot expand a separately selected sub-user. The flag is ignored for regular users.
permissionsresellers
Optional by default, validated when supplied
include_sub_users is a boolean and defaults to false, so existing integrations keep their current account scope. Unsupported boolean values are rejected with a validation error instead of being interpreted implicitly.
backward compatiblevalidation
A Completely New Vue 3 Admin Panel
We have released a completely new operator admin panel, rebuilt with Vue 3 around the way proxy businesses actually work. It is significantly easier to navigate, faster to operate, and clearer when managing customers, products, upstream providers, routing, billing, analytics, and infrastructure.
Release by the numbers
Vue 3
New control panel
9
Interface languages
5
Operator workspaces
New
A complete Vue 3 operator experience
The previous administration experience has been replaced with a purpose-built control panel organized into Overview, Customers, Commerce, Infrastructure, and Locations workspaces. Navigation, page structure, and actions now follow the operator workflow instead of the underlying data model.
vue 3admin
Guided creation and import workflows
Step-by-step workflows now cover customers and sub-users, packages, invoices, coupons, upstream providers, provider addresses, and location dictionaries. Each flow validates its inputs, keeps a live summary visible, and protects unfinished work from accidental navigation.
workflowsvalidation
Operations-focused analytics and infrastructure controls
The new analytics workspace combines traffic, requests, packages, domains, users, sub-users, providers, servers, and clusters. Infrastructure operators can also manage proxy lifecycle actions, restart online servers and clusters, and follow long-running operation status from the same interface.
analyticsinfrastructure
Nine interface languages
The complete control panel is available in English, German, Spanish, French, Italian, Japanese, Russian, Ukrainian, and Simplified Chinese. Language selection is stored with the staff account and follows the operator across sessions.
i18n9 languages
Improvements
Tables that adapt to each operator
Search, filters, ordering, pagination, page size, visible columns, and comfortable, compact, or dense row layouts are now consistent across resources. Table state stays in the URL while personal display preferences are saved for the staff account.
tablespreferences
Safer administrative actions
Granular staff permissions, sensitive-action confirmations, unsaved-change guards, safer cascade deletion flows, and an immutable audit log make everyday management more predictable. Notifications and operation feedback keep background work visible without leaving the current workspace.
access controlaudit
Responsive, brand-aware interface
The panel now works cleanly across desktop and responsive layouts, supports light and dark themes, and applies the deployment brand color throughout the navigation, controls, charts, and status surfaces.
responsivewhite-label
IPv6 Full Coverage & Sub-user API Overhaul
This is the largest infrastructure update since Platform 2.0. Every product tier now supports IPv6 endpoints natively, with full parity to IPv4 — including sticky sessions, geo-targeting, and per-user accounting. Alongside this, the sub-user API has been versioned to v2 with cleaner resource modeling and batch operation support.
Release by the numbers
2.4M+
IPv6 IPs Added
18
New API Endpoints
<0.4ms
Routing Overhead
New
Native IPv6 endpoints on all product tiers
All products now expose a dual-stack endpoint. Clients can force IPv6 by appending @ipv6 to the product string, or leave it unset for automatic selection.
#1204infra
Sub-user API v2 — batch operations & cleaner resource model
Create, update, or suspend up to 500 sub-users in a single request. The new POST /v2/sub-users/batch endpoint is idempotent and returns partial success payloads.
Migration guide from v1 available on request
#1198api
IPv6 geo-targeting with country + ASN filters
IPv6 pool now supports the same geo and ASN parameters as residential IPv4. Specify country=US&asn=AS15169 in the proxy auth string.
#1212routing
Improvements
Dashboard sub-user table now loads 3× faster
Switched to cursor-based pagination and server-side filtering. Tables with 100K+ sub-users now load in under 200ms on the first paint.
#1201ui
Reduced accounting microservice memory usage by ~40%
Rewrote the hot path in the accountant to use pooled byte buffers. Peak RSS under 500M req/day dropped from 1.8GB to 1.1GB per instance.
#1195performance
Webhook Reliability Fixes & Upstream Mixer Weights
Patch release addressing webhook delivery edge cases and adding fine-grained weight configuration to the upstream mixer. Also includes two small API improvements from beta customer feedback.
Fixes
Webhook delivery retry storm under high concurrency
Fixed an issue where failed webhook deliveries could trigger exponential retries simultaneously when a downstream target recovered from a brief outage. Now uses jittered backoff with a per-target concurrency cap of 4.
#1181webhooks
Sticky session IDs not persisting across SOCKS5 reconnects
Session tokens were being re-generated on TCP reconnect due to a missing read from the Redis session store. Sessions now correctly resume the same upstream IP for up to 10 minutes of inactivity.
#1178sessions
Bandwidth counter drift on sub-user rotation
Under certain race conditions when credentials were rotated mid-session, the accountant would double-count the final segment. Counters are now flushed atomically on rotation events.
#1172billing
Improvements
Upstream mixer now supports 0.1% weight granularity
Previously weights were integers (whole percent). You can now allocate as precisely as 0.1% per upstream, useful for gradually shifting traffic during provider migrations.
#1185routing
Upstream Mixer — Visual Config & Live Weight Switching
The upstream mixer is now fully configurable from the dashboard with live weight adjustments that take effect without disconnecting active sessions. Includes a new provider health scoring system that automatically deprioritizes degraded upstreams before they impact your customers.
New
Visual upstream mixer with drag-to-adjust weights
Redesigned the mixer UI to support slider-based weight allocation. Changes are previewed before saving and applied to the live routing table without session disruption.
#1148uirouting
Automatic health-based traffic shifting
New provider scoring engine monitors success rate, latency p95, and error patterns. When a provider drops below threshold, traffic is redistributed proportionally across healthy upstreams — no manual intervention needed.
#1155healthcheck
Breaking Changes
Mixer config API endpoint moved from /api/mix to /api/v1/products/:id/mix
The old endpoint is deprecated and will be removed in v3.0. All automated tooling should update to the new resource-scoped path. The old path returns HTTP 301 through v2.9.
Migration notes available on request
#1151api
Webhook Engine — Event Subscriptions & Delivery Logs
Full webhook system is now generally available. Subscribe to any platform event — sub-user created, bandwidth capped, upstream degraded — and get signed HTTP payloads delivered to your endpoint. Includes a delivery log with replay.
New
22 webhook event types across all platform resources
Events cover sub-user lifecycle, billing, upstream health, and system alerts. All payloads are signed with HMAC-SHA256 using your webhook secret. Full event catalog in the docs.
Webhook event reference available on request
#1109webhooks
Delivery log with one-click replay
Every delivery attempt is logged with request/response headers and body. Failed deliveries can be replayed individually or in bulk from the dashboard or API.
#1115webhooksui
Analytics Overhaul — ClickHouse Backend & Retention Controls
Rewrote the analytics pipeline on ClickHouse. Queries that used to take 8–12 seconds on large accounts now return in under 400ms. Added configurable data retention policies and a new CSV export endpoint.
Improvements
Analytics queries 20–40× faster on accounts with 1TB+ monthly traffic
ClickHouse columnar storage with MergeTree partitioning by day replaces the previous Postgres-based analytics. Aggregation queries across 30-day windows complete in under 500ms regardless of data volume.
#1080analyticsperformance
Configurable data retention — 7 days to 24 months
Set per-account retention policies from the dashboard or API. Raw request logs can be retained shorter than aggregated stats to reduce storage costs.
#1088analytics
SOCKS5 Framing Fixes & QUIC Proxy Support
Several framing-level bugs in the SOCKS5 implementation were resolved — particularly around UDP associate and domain name handling. QUIC proxy support ships as beta, available on the Pro tier.
Fixes
SOCKS5 UDP associate missing BND.ADDR for domain-type requests
Clients sending ATYP=0x03 (domain name) in UDP associate requests received a malformed BND response. Fixed response framing to correctly echo the request address type.
#1041socks5
QUIC proxy support (beta) — HTTP/3 tunneling over QUIC
Pro accounts can now use the QUIC endpoint for HTTP/3-capable targets. Reduces connection overhead by 60% on connection-heavy traffic patterns. Opt in by pointing clients to quic.proxyrequest.com:443.
#1055quicbeta
Platform 2.0 — Complete Infrastructure Rewrite
Platform 2.0 is a ground-up rewrite of the proxy routing core, accounting pipeline, and admin UI. The v1 compatibility layer remains active through December 2025. Every component has been rebuilt for scale: the routing layer now runs in Go with zero-allocation hot paths, accounting uses NATS for sub-millisecond event delivery, and the dashboard is a rebuilt Vue.js SPA.
New
Go-based routing core with zero-allocation hot paths
The proxy routing layer was rewritten in Go. Internal routing overhead dropped from ~12ms to under 2ms p99. Buffer pools and pre-allocated structs eliminate GC pressure on the critical path.
#900core
NATS-based accounting with per-user real-time counters
Every byte transferred publishes a NATS message. The accountant aggregates usage in Redis with 1-second granularity. Sub-user bandwidth caps are enforced within milliseconds of the limit being hit.
#912accounting
Rebuilt admin dashboard — Vue.js SPA with real-time push
New dashboard uses WebSocket subscriptions to push live traffic data. No more page refreshes to see current state. Sub-user table handles 200K+ rows with virtualized rendering.
#955ui
Deprecated
Legacy v1 API — sunset December 31, 2025
All /api/v1/* endpoints remain active through end of 2025. The v2 API is a superset — migration is straightforward for most integrations. Sunset emails went out in July.
v1→v2 migration guide available on request
#901api