> ## Documentation Index
> Fetch the complete documentation index at: https://developers.flameproxies.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List package tiers

> Returns the public catalog of package tiers and prices for the products the Customer API supports.

Returns the public catalog for API-supported products only: `residential` and `premium_residential`. Each product lists its price tiers by GB range.

This endpoint takes no request body. The catalog changes rarely, so cache the response rather than calling it before every order.

<Note>
  Values in the examples are illustrative. Call the endpoint for current prices.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl https://flameproxies.com/api/customer/packages \
    -H "Authorization: Bearer fp_live_xxx"
  ```

  ```python Python theme={null}
  import requests

  resp = requests.get(
      "https://flameproxies.com/api/customer/packages",
      headers={"Authorization": "Bearer fp_live_xxx"},
  )
  for product in resp.json()["products"]:
      print(product["name"], [tier["name"] for tier in product["prices"]])
  ```

  ```javascript Node.js theme={null}
  const resp = await fetch("https://flameproxies.com/api/customer/packages", {
    headers: { Authorization: "Bearer fp_live_xxx" },
  });
  const { products } = await resp.json();
  console.log(products);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "products": [
      {
        "id": 1,
        "name": "residential",
        "description": "...",
        "features": ["..."],
        "prices": [
          {
            "id": 10,
            "name": "1-10 GB",
            "min_range": 1,
            "max_range": 10,
            "price": 1.25,
            "currency": "USD"
          }
        ]
      }
    ]
  }
  ```
</ResponseExample>

## Response

<ResponseField name="products" type="object[]">
  The products available through the Customer API.

  <Expandable title="product">
    <ResponseField name="id" type="number">
      Product ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Product slug: `residential` or `premium_residential`. Use this as `product` when you [create an order](/api/orders/create).
    </ResponseField>

    <ResponseField name="description" type="string">
      Product description.
    </ResponseField>

    <ResponseField name="features" type="string[]">
      Product features.
    </ResponseField>

    <ResponseField name="prices" type="object[]">
      Price tiers for this product.

      <Expandable title="price tier">
        <ResponseField name="id" type="number">
          Tier ID.
        </ResponseField>

        <ResponseField name="name" type="string">
          Tier name, for example `1-10 GB`.
        </ResponseField>

        <ResponseField name="min_range" type="number">
          Smallest quantity in GB for this tier.
        </ResponseField>

        <ResponseField name="max_range" type="number">
          Largest quantity in GB for this tier.
        </ResponseField>

        <ResponseField name="price" type="number">
          Price per GB for orders in this range.
        </ResponseField>

        <ResponseField name="currency" type="string">
          Price currency, for example `USD`.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
