REST: Rotating Proxies
Rotating proxies expose stable listener ports and rotate through alive upstream proxies.
GET /api/rotatingProxies
Requires auth.
Response:
{
"rotating_proxies": [
{
"id": 5,
"name": "res-good",
"instance_id": "proxy-node-1",
"instance_name": "Proxy Node 1",
"instance_region": "us-east-1",
"protocol": "http",
"listen_protocol": "http",
"transport_protocol": "tcp",
"listen_transport_protocol": "tcp",
"uptime_filter_type": "min",
"uptime_percentage": 95,
"alive_proxy_count": 340,
"listen_port": 20042,
"auth_required": false,
"listen_host": "203.0.113.10",
"listen_address": "203.0.113.10:20042",
"reputation_labels": ["good", "neutral"],
"created_at": "2026-02-12T10:00:00Z"
}
]
}
POST /api/rotatingProxies
Requires auth.
Request:
{
"name": "res-good",
"instance_id": "proxy-node-1",
"protocol": "http",
"listen_protocol": "http",
"transport_protocol": "tcp",
"listen_transport_protocol": "tcp",
"uptime_filter_type": "min",
"uptime_percentage": 95,
"auth_required": false,
"auth_username": "",
"auth_password": "",
"reputation_labels": ["good", "neutral"]
}
Validation and behavior:
namerequired, max length 120, unique per user.instance_idrequired and must be one of the currently available instances with free listener ports.protocolrequired and must be enabled in the user's protocol settings.auth_required=truerequires non-emptyauth_usernameandauth_password.reputation_labelssupportsgood,neutral,poor.- Optional uptime filter requires a valid pair:
uptime_filter_type:minormaxuptime_percentage:0..100
- Listener port is allocated from
ROTATING_PROXY_PORT_START..ROTATING_PROXY_PORT_END.
Status mapping:
201: created400: validation errors404: rotator not found (delete/next)409: conflict (name exists, or no alive proxies for next)503: no available rotator ports / no available instances with free ports
GET /api/rotatingProxies/instances
Requires auth. Returns only instances that currently have free rotator listener ports.
Response:
{
"instances": [
{
"id": "proxy-node-1",
"name": "Proxy Node 1",
"region": "us-east-1",
"port_start": 20000,
"port_end": 20100,
"used_ports": 12,
"free_ports": 89,
"total_ports": 101
}
]
}
DELETE /api/rotatingProxies/{id}
Requires auth.
- Success:
204 No Content
POST /api/rotatingProxies/{id}/next
Requires auth. Returns the next upstream proxy that will be served.
Response:
{
"proxy_id": 12345,
"ip": "198.51.100.25",
"port": 8080,
"username": "u",
"password": "p",
"has_auth": true,
"protocol": "http"
}