---
title: "Available countries & periods"
method: GET
path: "/api/v1/products/{id}/options"
tags: ["Products & pricing"]
---

# Available countries & periods

`GET /api/v1/products/{id}/options`

## Request

- Base URL: `https://hproxy.com`
- URL: `https://hproxy.com/api/v1/products/{id}/options`
- Auth: API key in header `X-API-Key`

For **dedicated per-IP products** (IPv4, IPv6, ISP), the live list of countries you can order and the rental periods available, so you can build a picker without hardcoding anything. Countries come back as `{ name, alpha3 }` and are **kept current for you**: the list is refreshed from stock and a country that has run out is removed automatically, so what this returns is always orderable. Feed an `alpha3` straight into the `country` of [price](#price) and [orders](/docs/proxy-api/orders), and a `days` into `period_days`. Gateway products (`delivery` is `lines`: residential, mobile, ISP rotating, IPv4 and IPv6 per GB) have no per-country configurator and return `400 no_options`: they target by country at generation time instead (see [generate](/docs/proxy-api/plans#generate)).

## Path parameters

- `id` string, required

## Response `200`

Success

- object

## Other responses

- `400`: Invalid input. The body names the field and the accepted set.
- `401`: Missing or invalid API key.
- `429`: Rate limited. Retry after the delay in the response.

---

[API](https://skmtc.dev/hproxy/apis/hproxy-api.md) · [All operations](https://skmtc.dev/hproxy/apis/hproxy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hproxy/apis/hproxy-api/revisions/9f6898fe76e2?raw)
