ProxyRise documentation
Complete reference for proxy usage, API endpoints, the reseller program, and datacenter coverage. Everything you need to get started and integrate with your tools.
Getting started
Go to /register. Complete the Turnstile captcha. You receive an API key and a login token.
Go to /login. Paste your API key, complete Turnstile. A session token is set as a cookie.
Open /dashboard. View your usage, manage sessions, generate proxy strings, and monitor real-time stats.
Use any HTTP/SOCKS client. Set the proxy to HOST:3389 with your username format and API key as the password.
Proxy types
7 proxy types are available. Each type determines how IPs are assigned and rotated.
resres_scresfixstcstc_scmobdcUse ANY as the country code to get a random location. Use gb or uk interchangeably for United Kingdom (auto-mapped).
Authentication
Every proxy request requires authentication. Your API key (starts with pgw-) is your password. The username determines the proxy type, country, and routing options.
# HTTP / HTTPS proxy
Proxy-Authorization: Basic base64(username:api_key)
# SOCKS5
username = proxy_username (e.g. res-us)
password = api_key (e.g. pgw-abc123...)
# SOCKS4 / SOCKS4a
userid = username:api_key (e.g. res-us:pgw-abc123...)
# API endpoints (non-proxy)
Header: X-Api-Key: pgw-abc123...
or
Header: Authorization: Bearer <login_token>Username format
The username controls routing. The password is always your API key.
Basic (country only)
{type}-{country}
res-us # Residential rotating, United States
stc-nl # Static ISP, Netherlands
mob-uk # Mobile, United Kingdom
dc-de # Datacenter, GermanySticky session (same IP for multiple requests)
{type}-{country}-sid-{session_id}
res-us-sid-123456789 # Same IP while session is alive
stc-jp-sid-987654321 # Static sticky sessionState / City targeting
{type}_sc-{country}_{state}_{city}
res_sc-us_california_losangeles # Residential, LA
res_sc-us_new_york_newyork # Residential, NYC
stc_sc-us_texas_dallas # Static ISP, Dallas
res_sc-us_florida_miami # Residential, MiamiState and city names are lowercase, no spaces. Multi-word names merge into one word or use underscores in the state part.
Long session (NNID)
resfix-{country}-nnid-{session_id}
resfix-us-nnid-0 # Hold same IP for extended time
resfix-uk-nnid-42 # Different session ID = different IPUse different NNID values (0, 1, 2, ...) to get different long-lived IPs.
ASN targeting
{type}_sc-ASN{number}
res_sc-ASN12345 # Route through specific ISP/ASNSupported protocols
All protocols auto-detect on a single port (3389). No configuration needed — just connect with your client's native protocol.
Standard HTTP proxy with CONNECT tunneling for HTTPS sites.
TLS-encrypted connection to the proxy itself. Use --proxy-insecure for self-signed cert.
Full SOCKS5 with username/password auth. Best compatibility.
SOCKS4 protocol. Auth via userid field as username:api_key.
SOCKS4a with remote DNS. Auth same as SOCKS4.
Custom TCP tunnel via WebSocket frames for advanced use cases.
Code examples
cURL
# HTTP proxy
curl -x "http://res-us:YOUR_API_KEY@HOST:3389" \
https://httpbin.org/ip
# HTTPS proxy (TLS to proxy)
curl --proxy "https://res-us:YOUR_API_KEY@HOST:3389" \
--proxy-insecure https://httpbin.org/ip
# SOCKS5
curl -x "socks5://res-us:YOUR_API_KEY@HOST:3389" \
https://httpbin.org/ip
# Sticky session
curl -x "http://res-us-sid-123456:YOUR_API_KEY@HOST:3389" \
https://httpbin.org/ip
# State / City
curl -x "http://res_sc-us_california_losangeles:YOUR_API_KEY@HOST:3389" \
https://httpbin.org/ipPython (requests)
import requests
API_KEY = "pgw-your-api-key"
HOST = "172.65.145.196"
# Rotating residential US
proxies = {
"http": f"http://res-us:{API_KEY}@{HOST}:3389",
"https": f"http://res-us:{API_KEY}@{HOST}:3389",
}
r = requests.get("https://httpbin.org/ip", proxies=proxies)
print(r.json())
# Sticky session
proxies = {
"http": f"http://res-us-sid-12345:{API_KEY}@{HOST}:3389",
"https": f"http://res-us-sid-12345:{API_KEY}@{HOST}:3389",
}
r = requests.get("https://httpbin.org/ip", proxies=proxies)
print(r.json())Node.js (undici / fetch)
import { ProxyAgent } from "undici";
const API_KEY = "pgw-your-api-key";
const agent = new ProxyAgent(
`http://res-us:${API_KEY}@172.65.145.196:3389`
);
const res = await fetch("https://httpbin.org/ip", {
dispatcher: agent,
});
console.log(await res.json());Environment variables
export HTTP_PROXY="http://res-us:YOUR_API_KEY@HOST:3389"
export HTTPS_PROXY="http://res-us:YOUR_API_KEY@HOST:3389"
export ALL_PROXY="socks5://res-us:YOUR_API_KEY@HOST:3389"
# Now any CLI tool that reads these vars will use the proxy
curl https://httpbin.org/ip
wget -qO- https://httpbin.org/ipSessions
Sessions let you manage named proxy configurations in your dashboard. Create sessions with a specific type, country, and optional city. Each session gets a numeric session_id used for sticky routing.
# API: Create a session
POST /user/sessions
Content-Type: application/json
X-Api-Key: pgw-your-key
{ "name": "US Scraper", "proxy_type": "res", "country": "us" }
# API: List sessions
GET /user/sessions
# API: Delete session
DELETE /user/sessions/:id
# API: Generate proxy string
POST /user/proxy-string
{ "proxy_type": "res", "country": "us", "protocol": "http" }Sticky sessions append -sid-SESSION_ID to the username to reuse the same IP across multiple requests. The session stays alive as long as traffic flows through it.
Long sessions (resfix) use -nnid-N to hold the same IP for minutes to hours. Use different N values (0, 1, 2...) for different long-lived IPs.
Country coverage
203 countries available for residential, static ISP, and mobile proxy types. Use the 2-letter country code in your username. Use ANY for random location.
North America (36)
USUnited StatesCACanadaMXMexicoPRPuerto RicoGTGuatemalaHNHondurasSVEl SalvadorNINicaraguaCRCosta RicaPAPanamaBZBelizeCUCubaJMJamaicaHTHaitiDODominican RepublicTTTrinidad and TobagoBSBahamasBBBarbadosAGAntigua and BarbudaDMDominicaGDGrenadaKNSaint Kitts and NevisLCSaint LuciaVCSaint VincentAIAnguillaAWArubaBMBermudaCWCuracaoGLGreenlandGPGuadeloupeKYCayman IslandsMQMartiniqueSXSint MaartenTCTurks and CaicosVGBritish Virgin IslandsVIUS Virgin IslandsEurope (51)
UKUnited KingdomDEGermanyFRFranceNLNetherlandsITItalyESSpainSESwedenNONorwayDKDenmarkFIFinlandPLPolandATAustriaBEBelgiumCHSwitzerlandPTPortugalIEIrelandCZCzech RepublicRORomaniaHUHungaryGRGreeceBGBulgariaHRCroatiaSKSlovakiaSISloveniaRSSerbiaUAUkraineBYBelarusLTLithuaniaLVLatviaEEEstoniaISIcelandLULuxembourgMTMaltaALAlbaniaBABosnia and HerzegovinaMEMontenegroMKNorth MacedoniaMDMoldovaADAndorraMCMonacoSMSan MarinoLILiechtensteinVAVatican CityXKKosovoGGGuernseyJEJerseyIMIsle of ManGIGibraltarFOFaroe IslandsAXAland IslandsSJSvalbard and Jan MayenAsia (52)
JPJapanKRSouth KoreaCNChinaTWTaiwanHKHong KongMOMacaoSGSingaporeMYMalaysiaTHThailandVNVietnamIDIndonesiaPHPhilippinesINIndiaBDBangladeshPKPakistanLKSri LankaNPNepalKHCambodiaLALaosMMMyanmarBNBruneiMNMongoliaKGKyrgyzstanKZKazakhstanUZUzbekistanTJTajikistanTMTurkmenistanAZAzerbaijanGEGeorgiaAMArmeniaTRTurkeyCYCyprusILIsraelJOJordanLBLebanonIQIraqIRIranSASaudi ArabiaAEUnited Arab EmiratesQAQatarKWKuwaitBHBahrainOMOmanYEYemenSYSyriaPSPalestineAFAfghanistanBTBhutanMVMaldivesTLTimor LesteKPNorth KoreaRURussiaSouth America (14)
BRBrazilARArgentinaCLChileCOColombiaPEPeruVEVenezuelaECEcuadorUYUruguayPYParaguayBOBoliviaGYGuyanaSRSurinameGFFrench GuianaFKFalkland IslandsAfrica (57)
ZASouth AfricaNGNigeriaEGEgyptKEKenyaGHGhanaMAMoroccoTNTunisiaDZAlgeriaETEthiopiaTZTanzaniaUGUgandaRWRwandaSNSenegalCIIvory CoastCMCameroonAOAngolaMZMozambiqueMGMadagascarZMZambiaZWZimbabweBWBotswanaNANamibiaMUMauritiusGAGabonCDDR CongoCGCongoMLMaliBFBurkina FasoNENigerTDChadSDSudanSSSouth SudanSOSomaliaDJDjiboutiEREritreaLYLibyaMWMalawiLSLesothoSZEswatiniSCSeychellesCVCape VerdeKMComorosGMGambiaGNGuineaGWGuinea-BissauGQEquatorial GuineaBJBeninTGTogoSLSierra LeoneLRLiberiaCFCentral African RepublicBIBurundiSTSao Tome and PrincipeMRMauritaniaREReunionYTMayotteEHWestern SaharaOceania (24)
AUAustraliaNZNew ZealandFJFijiPGPapua New GuineaNCNew CaledoniaPFFrench PolynesiaGUGuamSBSolomon IslandsVUVanuatuWSSamoaTOTongaFMMicronesiaKIKiribatiMHMarshall IslandsPWPalauNRNauruTVTuvaluCKCook IslandsNUNiueTKTokelauNFNorfolk IslandMPNorthern Mariana IslandsASAmerican SamoaWFWallis and FutunaDatacenter locations
Datacenter proxies (dc type) are available in 23 countries with dedicated server infrastructure. Fastest speeds and lowest cost per GB.
AUAustraliaATAustriaBEBelgiumBRBrazilCACanadaFRFranceDEGermanyHKHong KongINIndiaITItalyJPJapanMXMexicoNLNetherlandsPLPolandRORomaniaSGSingaporeKRSouth KoreaESSpainSESwedenTRTurkeyAEUnited Arab EmiratesUKUnited KingdomUSUnited StatesAPI reference
Public endpoints (no auth)
GET /health # Service status
GET /countries # All 203 supported countries
GET /types # All 7 proxy types
GET /proxy-config # Proxy host, port, protocols, formats
GET /plans # Available payment plans with pricingAuthentication (Turnstile captcha required)
POST /auth/register
Body: { "name": "string", "turnstile_token": "string" }
Returns: { "api_key": "pgw-...", "token": "lt-..." }
POST /login
Body: { "api_key": "pgw-...", "turnstile_token": "string" }
Returns: { "token": "lt-..." }
POST /auth/verify
Header: Authorization: Bearer lt-...
Returns: { "valid": true, "user": {...} }User endpoints (X-Api-Key or Bearer token)
GET /user/me # Your profile, usage, limits
GET /user/sessions # List your sessions
POST /user/sessions # Create session
PATCH /user/sessions/:id # Update session
DELETE /user/sessions/:id # Delete session
POST /user/proxy-string # Generate proxy connection string/user/me returns your full profile including: name, API key, data used, data limit, active status, unlimited status, plan info, and reseller status if applicable.
WebSocket (real-time)
Connect to the WebSocket to receive real-time updates about your sessions, usage, and bandwidth.
# Connect with your API key
wss://backend-panel.niansuh.dev/ws?api_key=pgw-...Client messages you can send:
{"type": "ping"}
{"type": "pong"}
{"type": "get_sessions"}
{"type": "get_stats"}
{"type": "subscribe", "events": [
"session_created",
"session_deleted",
"session_rotated",
"request_log",
"usage_update",
"payment_completed"
]}Server messages you receive:
# Connection confirmation
{"type": "connected", "role": "user", "user": {...}}
# Your statistics
{"type": "stats", "data_used_gb": 12.5, "data_limit_gb": 100}
# Real-time events
{"type": "request_log", ...} # Per-request logging
{"type": "usage_update", ...} # Data usage change
{"type": "session_created", ...} # New session
{"type": "session_deleted", ...} # Session removed
{"type": "session_rotated", ...} # IP rotated
{"type": "payment_completed", ...} # Payment processed
{"type": "unlimited_expired", ...} # Unlimited plan endedReseller program
The reseller program lets you create and manage sub-users under your account. Sub-users get their own API keys and can use the proxy independently, but their data is deducted from your pool.
How it works
1. Contact support to enable reseller status on your account and set a max sub-user limit.
2. Your total data limit (e.g. 100 GB) becomes a shared pool.
3. You allocate portions of this pool to sub-users when creating them.
4. Usage is tracked dually: against both the sub-user and your parent account.
Pool allocation example
# Your account: 100 GB total
# Create sub-user A with 30 GB
# Create sub-user B with 20 GB
# Remaining pool: 100 - 30 - 20 = 50 GB
# Sub-user A uses 10 GB of their 30 GB:
# Sub-user A data_used: 10 GB
# Your data_used: +10 GB (dual tracking)
# Reclaim from sub-user A (used 10 of 30 GB):
# Sub-user A limit shrinks to 10 GB
# You get 20 GB back in your poolKey rules
• Sub-users cannot be resellers themselves (no nesting).
• If your pool runs out, sub-user proxy requests are rejected.
• Sub-users authenticate with their own API key, same proxy format.
• Manage sub-users via the Reseller tab in your dashboard or via API.
Reseller API reference
All reseller endpoints require your API key (with reseller permissions) via X-Api-Key header or Authorization: Bearer token.
Status & stats
GET /user/reseller/status
Returns: {
"is_reseller": true,
"max_sub_users": 50,
"current_sub_users": 12,
"data_limit_gb": 100,
"allocated_gb": 45.5,
"remaining_pool_gb": 54.5
}
GET /user/reseller/stats
Returns: {
"total_sub_users": 12,
"active_sub_users": 10,
"total_allocated_gb": 45.5,
"total_used_gb": 22.3,
"today_usage_gb": 1.2
}Sub-user CRUD
# List all sub-users
GET /user/reseller/sub-users
# Create sub-user
POST /user/reseller/sub-users
Body: { "name": "Client A", "data_limit_gb": 10 }
Returns: { "id": 42, "api_key": "pgw-...", "name": "Client A", ... }
# Get single sub-user
GET /user/reseller/sub-users/:id
# Update sub-user
PATCH /user/reseller/sub-users/:id
Body: { "name": "New Name", "data_limit_gb": 15, "is_active": true }
# Delete sub-user
DELETE /user/reseller/sub-users/:idSub-user actions
# Reset data usage to 0
POST /user/reseller/sub-users/:id/reset
# Add GB from your pool
POST /user/reseller/sub-users/:id/add
Body: { "gb": 5 }
# Reclaim unused data back to your pool
POST /user/reseller/sub-users/:id/reclaim
# Shrinks sub-user limit to their current usage
# Returns unused GB to your pool
# Regenerate sub-user API key
POST /user/reseller/sub-users/:id/newkey
Returns: { "api_key": "pgw-new-key..." }
# 90-day usage history
GET /user/reseller/sub-users/:id/usagePlans & pricing
Data-based plans include a signup bonus. Unlimited plans provide unrestricted bandwidth for a set duration.
Unlimited plans