List the plans available to your account and their pricing. Regular plans are one-time traffic purchases; subscription plans bill on a recurring period; ISP plans are dedicated ISP proxies. Each endpoint returns a plain plan object (or array of plan objects) — these responses are not wrapped in the standard {success, payload, meta, errors, description} envelope. Public pricing endpoints require no authentication and are safe to call from a landing page.
Plan names are their identifiers. Regular plans are named by size (e.g. 10GB, 50GB); subscription plans embed their period (e.g. monthly-100GB, annual-100GB). Use the exact name value from a list response when calling the by-name endpoints or when creating a payment with plan_id.
Regular Plans
GET/v1/regular-optionsRequires Auth
List Regular Plans
List Regular Plans
Retrieve every regular (one-time purchase) plan visible to the authenticated user. General plans are merged with any personal plans assigned to the account. Returns a flat array of plan objects.
req, _ := http.NewRequest("GET", "https://api.proxyhat.com/v1/regular-options", nil)
req.Header.Set("Authorization", "Bearer __API_KEY__")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var plans []map[string]interface{}
json.NewDecoder(resp.Body).Decode(&plans)
for _, p := range plans {
fmt.Printf("%s: %vGB at $%v\n", p["name"], p["gb"], p["price_total"])
}
Personal plans. When a plan is assigned to your account (user_id is your UUID) and it carries a purchase cap, the list adds two extra fields to that plan object: payment_limit (the maximum number of paid purchases allowed) and purchases_remaining (how many you have left). General plans never include purchases_remaining.
GET/v1/plans/regular/{name}Requires Auth
Get Regular Plan
Get Regular Plan
Retrieve a single regular plan by its name. Personal plans are only visible to the user they belong to — requesting another user's personal plan returns 404. Returns a flat plan object.
We filled these in for you:name
Tweak any value if you like — or just press Try.
Path Parameters
Name
Type
Required
Description
name
string
Required
The name identifier of the regular plan (e.g. "10GB").
Retrieve every subscription plan visible to the authenticated user (general plans merged with any personal plans). Optionally filter by billing period. Returns a flat array of plan objects.
We filled these in for you:period
Tweak any value if you like — or just press Try.
Query Parameters
Name
Type
Required
Description
period
string
Optional
Filter by billing period: "monthly" or "annual". Omit to return all periods.
req, _ := http.NewRequest("GET", "https://api.proxyhat.com/v1/subscription-plans?period=monthly", nil)
req.Header.Set("Authorization", "Bearer __API_KEY__")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
var plans []map[string]interface{}
json.NewDecoder(resp.Body).Decode(&plans)
for _, p := range plans {
fmt.Printf("%s: %vGB at $%v/%s\n", p["name"], p["gb"], p["price_total"], p["period"])
}
GET/v1/plans/subscription/{name}Requires Auth
Get Subscription Plan
Get Subscription Plan
Retrieve a single subscription plan by its name. The result is cached for one hour. Returns a flat plan object including billing period and rollover configuration.
We filled these in for you:name
Tweak any value if you like — or just press Try.
Path Parameters
Name
Type
Required
Description
name
string
Required
The name identifier of the subscription plan (e.g. "monthly-100GB").
Requires ISP proxy access. This endpoint is only available to accounts with has_isp_proxy_access enabled (check the has_isp_proxy_access field on GET /v1/auth/user). Without it the endpoint returns 403 in the standard envelope: { "success": false, "payload": null, "errors": { "access": "..." }, "description": "Access denied" }. To browse the full ISP catalog use GET /v1/isp-store/catalog.
GET/v1/plans/isp/{id}Requires Auth
Get ISP Plan
Get ISP Plan
Retrieve a single active ISP plan by its UUID. Internal cost and markup fields are stripped from the response. A `name` alias (equal to `isp_name`) is added for convenience. Returns a flat plan object; 404 if the plan does not exist or is inactive.
We filled these in for you:id
Tweak any value if you like — or just press Try.
Path Parameters
Name
Type
Required
Description
id
string
Required
The UUID of the ISP plan (from the ISP store catalog).
These endpoints require no authentication and return only general plans (never personal plans). Both are cached for five minutes. Use them to render pricing on public pages.
GET/v1/pricing/regular
Public Regular Pricing
Public Regular Pricing
Public endpoint, no auth required. Returns all general regular plans (ordered by GB) for display on landing pages.