Products
Browse available proxy plans and locations
List Plans
Retrieve a list of all purchasable plans. The response eager-loads planBandwidths, planDurations.options, ipWhitelist, and options for each plan, so you have everything you need to render a checkout flow in a single call.
Endpoint: GET /plans
Get Plan
Retrieve a single plan by its slug (not its numeric ID).
Endpoint: GET /plans/{plan}
Examples:
GET /plans/residentialGET /plans/residential-budgetGET /plans/unlimited-residentialGET /plans/unlimited-residential-budgetGET /plans/ipv6-residentialGET /plans/ipv6-datacenterGET /plans/static-ispGET /plans/datacenter
The response is a PlanResource whose shape depends on type:
type: "bandwidth"— the plan is sold by GB. Thebandwidthsarray lists the available tiers.type: "duration"— the plan is sold for a fixed period of time. Thedurationsarray lists each duration, and may expose configurable per-durationoptions.
When building an order payload, use:
plan.slugasplanduration.slugasduration(duration-type plans)option.nameas keys inconfig(when the duration exposes options)
Example: Bandwidth-type plan (Residential)
GET /plans/residential
{
"id": 1,
"name": "Residential",
"slug": "residential",
"type": "bandwidth",
"has_geo_targeting": true,
"has_ip_whitelist": false,
"rotations": [
{ "code": "rotating", "name": "Rotating" },
{ "code": "sticky", "name": "Sticky" }
],
"protocols": [
{ "code": "http", "port": 12321 },
{ "code": "socks5", "port": 32325 }
],
"bandwidths": [
{
"id": 1,
"bandwidth": 1,
"bandwidth_unit": "GB",
"bandwidth_in_bytes": 1073741824,
"price_per_gb": 5.0
}
// ... more bandwidth tiers
]
}Example: Duration-type plan (Static ISP)
Static ISP is sold by duration with a country select on each term. For a full PlanResource sample (all durations and country values), see Static ISP.
Example: Duration-type plan with numeric options (Datacenter)
GET /plans/datacenter
A duration whose options array contains a number/range entry must respect min, max, and step (when set).
{
"id": 7,
"name": "Datacenter",
"slug": "datacenter",
"type": "duration",
"has_geo_targeting": false,
"has_ip_whitelist": false,
"rotations": [
{ "code": "rotating", "name": "Rotating" },
{ "code": "sticky", "name": "Sticky" }
],
"protocols": [
{ "code": "http", "port": 777 },
{ "code": "socks5", "port": 666 }
],
"durations": [
{
"id": 2,
"slug": "1_day",
"duration": 1,
"duration_unit": "day",
"duration_in_minutes": 1440,
"price": 5.0,
"options": [
{
"id": 31,
"name": "threads",
"label": "Threads",
"type": "range",
"options": [],
"min": 500,
"max": 2000,
"step": 50
}
]
}
// ... more durations
]
}Choice-based option shape
select / radio / checkbox options provide an explicit list under option.options[]. The order payload must send a value (or, for checkbox, an array of values) drawn from option.options[].value.
{
"id": 7,
"name": "threads",
"label": "Threads",
"type": "select",
"options": [
{ "value": 100, "label": "100 threads", "price": { "type": "fixed", "amount": 0 } },
{ "value": 250, "label": "250 threads", "price": { "type": "fixed", "amount": 5 } }
],
"min": null,
"max": null,
"step": null
}Supported type values: select, radio, checkbox, range, number, text.
Product pages
Detailed response shapes and ordering pointers:
| Product | Slug | Docs |
|---|---|---|
| Residential Budget | residential-budget | Residential Budget |
| Unlimited Residential (Dedicated) | unlimited-residential | Unlimited Residential (Dedicated) |
| Unlimited Residential (Budget) | unlimited-residential-budget | Unlimited Residential (Budget) |
| IPv6 Residential | ipv6-residential | IPv6 Residential |
| IPv6 Datacenter | ipv6-datacenter | IPv6 Datacenter |
| Static ISP | static-isp | Static ISP |
Duration Slug Format
Duration slugs follow the pattern <integer>_<unit>. The unit is singular when the duration equals 1 and plural otherwise.
| Example slug | Meaning |
|---|---|
1_minute | 1 minute |
20_minutes | 20 minutes |
1_hour | 1 hour |
12_hours | 12 hours |
1_day | 1 day |
30_days | 30 days |
1_week | 1 week |
2_weeks | 2 weeks |
1_month | 1 month |
6_months | 6 months |
1_quarter | 1 quarter |
2_quarters | 2 quarters |
1_year | 1 year |
2_years | 2 years |
Accepted units (the parser is permissive on singular/plural): minute(s), hour(s), day(s), week(s), month(s), quarter(s), year(s).
Get Locations
Retrieve available geo-targeting locations for a plan.
Endpoint: GET /plans/{plan}/locations