> For the complete documentation index, see [llms.txt](https://docs.nebulablock.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nebulablock.com/api-reference/platform-api/list-products.md).

# Instances

List the GPU and CPU instance configurations available to rent, with hardware specs and hourly pricing.

Return a list of available GPU instance hardware configurations, which include GPUs, CPUs, RAM, and system disk. These instance configurations are referred to as products.

## HTTP Request

`GET` `{API_URL}/computing/products`

## Response Attributes

#### data `object`

Products are **grouped by country, then by GPU type** — not returned as a flat array:

```
data → "CANADA" → "H100" → [ product, product, … ]
```

Countries currently returned are `CANADA`, `US`, `FINLAND`, `FRANCE` and `NORWAY`. Countries are added and retired over time, so read the keys rather than hard-coding this list.

> **Note:** The top-level key is the product's `country`, not its `region`. The two are usually the same string here, but a product's own `region` can be more specific — `Montreal` sits under the `CANADA` key. Group on `country` and read `region` off the product itself.

Each product contains:

* **id** `string`: The product's unique identifier. Pass this as `product_id` to [Create Instance](/api-reference/platform-api/list-products/create-instance.md).
* **dc\_id** `number`: Identifier of the data center providing the product. Must match the `dc_id` of the OS image you deploy.
* **product\_type** `string`: The form factor — `Virtual Machine`, `Baremetal`, or `Container`.
* **country** `string`: The country the product is hosted in, for example `CANADA`.
* **region** `string`: The region within that country. Often the same as `country`, but can be more specific, for example `Montreal`.
* **price\_per\_hour** `decimal`: Hourly price in USD.
* **cpu** `number`: Number of CPU cores.
* **ram** `number`: RAM in gigabytes.
* **gpu** `string`: The full GPU model name, for example `A100-80G-PCIe`.
* **gpu\_type** `string`: The GPU family, which is also the second-level grouping key — currently `A100`, `B200`, `B300`, `H100`, `H200`, `L40`, `L40S` and `RTX`. New families are added over time, so read the keys rather than hard-coding this list.
* **gpu\_count** `number`: Number of GPUs in the configuration.
* **disk\_size** `number`: Root disk size in gigabytes.
* **ephemeral** `number`: Ephemeral disk capacity in gigabytes. Ephemeral storage is a temporary drive attached to the instance for the active workload; it does not survive termination.
* **stock** `number`: An availability flag rather than a unit count — in practice `0` when the configuration cannot be deployed and a fixed placeholder when it can. Do not read it as the number of instances you can launch.
* **is\_available** `boolean`: Whether the product can be deployed right now. This is the field to branch on. Out-of-stock configurations stay in the catalog with `is_available` `false`, so filter rather than assuming everything returned is deployable.
* **is\_spot** `boolean`: Whether the product is spot capacity.
* **featured** `boolean`: Whether the console highlights this configuration.
* **type** `number`: An internal product classification. Usually `null`.

#### status `string`

Indicates the result of the request. `success` signifies success, while `failed` indicates an error.

#### message `string`

A description of the status of the request.

## Example

#### Request

```bash
curl -X GET '{API_URL}/computing/products' \
-H 'Authorization: Bearer {TOKEN/KEY}' \
-H 'Content-Type: application/json'
```

#### Response

```json
{
    "data": {
        "CANADA": {
            "H100": [
                {
                    "id": "b59cfc9f-8ab0-447f-8b2a-bb54e529d986",
                    "dc_id": 8,
                    "product_type": "Virtual Machine",
                    "country": "CANADA",
                    "region": "CANADA",
                    "price_per_hour": 2.632,
                    "cpu": 28,
                    "ram": 180,
                    "gpu": "H100-80G-PCIe",
                    "gpu_type": "H100",
                    "gpu_count": 1,
                    "disk_size": 100,
                    "ephemeral": 750,
                    "stock": 99,
                    "is_available": true,
                    "type": null,
                    "featured": false,
                    "is_spot": false
                },
                {
                    "id": "673d728d-1c84-4296-a79c-06014c27c9ff",
                    "dc_id": 8,
                    "product_type": "Virtual Machine",
                    "country": "CANADA",
                    "region": "CANADA",
                    "price_per_hour": 2.696,
                    "cpu": 28,
                    "ram": 180,
                    "gpu": "H100-80G-PCIe",
                    "gpu_type": "H100",
                    "gpu_count": 1,
                    "disk_size": 850,
                    "ephemeral": 0,
                    "stock": 99,
                    "is_available": true,
                    "type": null,
                    "featured": false,
                    "is_spot": false
                }
            ]
        },
        "US": {
            "B200": [
                {
                    "id": "a1d0180b-8228-4688-907c-36662bb1e641",
                    "dc_id": 7,
                    "product_type": "Virtual Machine",
                    "country": "US",
                    "region": "US",
                    "price_per_hour": 57.2,
                    "cpu": 160,
                    "ram": 1792,
                    "gpu": "B200-NVLink",
                    "gpu_type": "B200",
                    "gpu_count": 8,
                    "disk_size": 2048,
                    "ephemeral": 4092,
                    "stock": 99,
                    "is_available": true,
                    "type": null,
                    "featured": true,
                    "is_spot": false
                }
            ]
        }
    },
    "message": "All products retrieved successfully",
    "status": "success"
}
```
