Legacy Plans Management API
This page covers the management API for legacy port-based plans — grandfathered customers with a fixed range of ports rather than the traffic-based gateway. Use these endpoints to whitelist source IPs, set the per-port geo defaults, and pull the assigned port list.
Authentication
Section titled “Authentication”All endpoints authenticate with an api_token query parameter. Generate a token in the panel under Account → API Tokens.
?api_token=YOUR_API_TOKENThe {membership} path parameter is your plan ID, shown in the panel on the plan page.
Authorized IPs
Section titled “Authorized IPs”Legacy plans authenticate by source IP only — whitelist the IPs your scrapers connect from.
List authorized IPs
Section titled “List authorized IPs”| Parameter | In | Required | Description |
|---|---|---|---|
membership | path | yes | The plan ID |
api_token | query | yes | Your account API token |
Example:
curl "https://shifter.io/api/v1/backconnect/MEMBERSHIP_ID/authorized-ips?api_token=YOUR_API_TOKEN"Response:
{ "ips": ["198.51.100.10", "203.0.113.42"]}Update authorized IPs
Section titled “Update authorized IPs”Replaces the list of authorized IPs with the values provided.
| Parameter | In | Required | Description |
|---|---|---|---|
membership | path | yes | The plan ID |
api_token | query | yes | Your account API token |
ips[] | body | yes | Array of IPv4 addresses to whitelist |
Example (form-encoded, with method override):
curl -X POST "https://shifter.io/api/v1/backconnect/MEMBERSHIP_ID/authorized-ips?api_token=YOUR_API_TOKEN" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "_method=PUT&ips[]=198.51.100.10&ips[]=203.0.113.42"Geo defaults
Section titled “Geo defaults”Legacy ports have a per-plan geo assignment. Set it once and every port in the plan routes through IPs in the configured countries (or advanced filters).
Get current geo assignment
Section titled “Get current geo assignment”| Parameter | In | Required | Description |
|---|---|---|---|
membership | path | yes | The plan ID |
api_token | query | yes | Your account API token |
Response:
{ "geo": ["us", "gb"], "advanced_geo": []}Update geo assignment
Section titled “Update geo assignment”| Parameter | In | Required | Description |
|---|---|---|---|
membership | path | yes | The plan ID |
api_token | query | yes | Your account API token |
geo[] | body | yes | Array of ISO-3166-1 alpha-2 country codes |
advanced_geo[] | body | no | Array of advanced geo filters (city or ASN) |
curl -X POST "https://shifter.io/api/v1/backconnect/MEMBERSHIP_ID/geo?api_token=YOUR_API_TOKEN" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "_method=PUT&geo[]=us&geo[]=uk&geo[]=ca"List proxies
Section titled “List proxies”Returns the list of host:port entries for each port in your legacy plan.
| Parameter | In | Required | Description |
|---|---|---|---|
membership | path | yes | The plan ID |
api_token | query | yes | Your account API token |
Response:
{ "proxies": [ { "host": "apollo.p.shifter.io", "port": 10001 }, { "host": "zeus.p.shifter.io", "port": 10002 }, { "host": "cronos.p.shifter.io", "port": 10003 } ]}Method overrides
Section titled “Method overrides”Many proxy-aware HTTP clients strip non-standard methods. The management API accepts POST with a _method=PUT form field as equivalent to PUT.
See also
Section titled “See also”- Legacy port model
- Authentication — how legacy auth differs from Residential Proxies and ISP Proxies