NovaProxy Docs
Products

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/residential
  • GET /plans/residential-budget
  • GET /plans/unlimited-residential
  • GET /plans/unlimited-residential-budget
  • GET /plans/ipv6-residential
  • GET /plans/ipv6-datacenter
  • GET /plans/static-isp
  • GET /plans/datacenter

The response is a PlanResource whose shape depends on type:

  • type: "bandwidth" — the plan is sold by GB. The bandwidths array lists the available tiers.
  • type: "duration" — the plan is sold for a fixed period of time. The durations array lists each duration, and may expose configurable per-duration options.

When building an order payload, use:

  • plan.slug as plan
  • duration.slug as duration (duration-type plans)
  • option.name as keys in config (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:

ProductSlugDocs
Residential Budgetresidential-budgetResidential Budget
Unlimited Residential (Dedicated)unlimited-residentialUnlimited Residential (Dedicated)
Unlimited Residential (Budget)unlimited-residential-budgetUnlimited Residential (Budget)
IPv6 Residentialipv6-residentialIPv6 Residential
IPv6 Datacenteripv6-datacenterIPv6 Datacenter
Static ISPstatic-ispStatic ISP

Duration Slug Format

Duration slugs follow the pattern <integer>_<unit>. The unit is singular when the duration equals 1 and plural otherwise.

Example slugMeaning
1_minute1 minute
20_minutes20 minutes
1_hour1 hour
12_hours12 hours
1_day1 day
30_days30 days
1_week1 week
2_weeks2 weeks
1_month1 month
6_months6 months
1_quarter1 quarter
2_quarters2 quarters
1_year1 year
2_years2 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

On this page