# Public Cloud › Container › Managed Kubernetes Service › Service references API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Public Cloud product's sections: https://developers.eu.ovhcloud.com/reference/public-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 4 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/service-references/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/public-cloud/container/managed-kubernetes-service/service-references.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/public-cloud/container/managed-kubernetes-service/service-references.json?format=openapi3

## Operations

- `GET /publicCloud/project/{projectId}/reference/managedKubernetes/region` — List Kubernetes cluster regions
- `GET /publicCloud/project/{projectId}/reference/managedKubernetes/plan` — List Kubernetes cluster plans
- `GET /publicCloud/project/{projectId}/reference/managedKubernetes/flavor` — List Kubernetes node flavors
- `GET /publicCloud/project/{projectId}/reference/managedKubernetes/version` — List Kubernetes versions

## List Kubernetes cluster regions

`GET /v2/publicCloud/project/{projectId}/reference/managedKubernetes/region`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/service-references/#get-publiccloud-project-projectid-reference-managedkubernetes-region

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:reference/managedKubernetes/region/get`

Returns the regions where a cluster can be created, with their availability zones and the plans offered there.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Region[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `availabilityZones` | string[] | read-only | Availability zones in the region. Empty for a single-zone (mono-AZ) region. |
| `availablePlans` | publicCloud.managedKubernetes.PlanNameEnum[] | read-only | Plans that can be selected when creating a cluster in this region |
| `name` | string | read-only | Region identifier, for example EU-WEST-PAR |

```json
[
  {
    "availabilityZones": [
      "string"
    ],
    "availablePlans": [
      "FREE"
    ],
    "name": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/reference/managedKubernetes/region" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/region")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/region");

print_r($result);
?>
```

## List Kubernetes cluster plans

`GET /v2/publicCloud/project/{projectId}/reference/managedKubernetes/plan`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/service-references/#get-publiccloud-project-projectid-reference-managedkubernetes-plan

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:reference/managedKubernetes/plan/get`

Returns the plans available for cluster creation in a region, with their control plane characteristics and limits. Requires a region.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `projectId` | path | string | yes | Project ID |
| `region` | query | string | yes | Region to list plans for. Plan availability varies by region. An unknown region returns 404. |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Plan[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `controlPlane` | publicCloud.managedKubernetes.PlanControlPlane | read-only | Control plane characteristics of the plan |
| `controlPlane.etcd` | publicCloud.managedKubernetes.PlanEtcd | read-only | Etcd characteristics of the control plane |
| `controlPlane.etcd.dedicated` | boolean | read-only | Whether etcd runs on storage dedicated to the cluster |
| `controlPlane.etcd.storage` | publicCloud.managedKubernetes.PlanEtcdStorage | read-only | Etcd storage quota |
| `limits` | publicCloud.managedKubernetes.PlanLimits | read-only | Limits enforced by the plan |
| `limits.maxNodes` | integer | read-only | Maximum number of nodes allowed across the cluster |
| `name` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Plan name — one of `FREE`, `STANDARD` |
| `status` | publicCloud.managedKubernetes.PlanStatusEnum | read-only | Availability of the plan for cluster creation — one of `AVAILABLE`, `UNAVAILABLE` |

```json
[
  {
    "controlPlane": {
      "etcd": {
        "dedicated": true,
        "storage": {
          "limit": 0,
          "unit": "COUNT"
        }
      }
    },
    "limits": {
      "maxNodes": 0
    },
    "name": "FREE",
    "status": "AVAILABLE"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/reference/managedKubernetes/plan" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/plan")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/plan");

print_r($result);
?>
```

## List Kubernetes node flavors

`GET /v2/publicCloud/project/{projectId}/reference/managedKubernetes/flavor`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/service-references/#get-publiccloud-project-projectid-reference-managedkubernetes-flavor

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:reference/managedKubernetes/flavor/get`

Returns the node flavors available for node pools in a region, with their category, resources and status. Requires a region.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `projectId` | path | string | yes | Project ID |
| `region` | query | string | yes | Region to list flavors for. Flavor availability varies by region. An unknown region returns 404. |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Flavor[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `category` | publicCloud.managedKubernetes.FlavorCategoryEnum | read-only | Category of the flavor — one of `CPU_OPTIMIZED`, `DISCOVERY`, `GENERAL_PURPOSE`, `GPU`, `IOPS_OPTIMIZED`, `MEMORY_OPTIMIZED` |
| `name` | string | read-only | Flavor name, for example b3-8 |
| `resources` | publicCloud.managedKubernetes.FlavorResources | read-only | Compute resources provided by the flavor |
| `resources.gpus` | integer | read-only | Number of GPUs |
| `resources.memoryGiB` | integer | read-only | Memory in GiB |
| `resources.vcpus` | integer | read-only | Number of virtual CPUs |
| `status` | publicCloud.managedKubernetes.FlavorStatusEnum | read-only | Availability of the flavor for node pool creation — one of `AVAILABLE`, `UNAVAILABLE` |

```json
[
  {
    "category": "CPU_OPTIMIZED",
    "name": "string",
    "resources": {
      "gpus": 0,
      "memoryGiB": 0,
      "vcpus": 0
    },
    "status": "AVAILABLE"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/reference/managedKubernetes/flavor" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/flavor")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/flavor");

print_r($result);
?>
```

## List Kubernetes versions

`GET /v2/publicCloud/project/{projectId}/reference/managedKubernetes/version`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/service-references/#get-publiccloud-project-projectid-reference-managedkubernetes-version

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:reference/managedKubernetes/version/get`

Returns the minor versions available for cluster creation, newest first, and the default version. Creation resolves a minor version to its latest patch.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.VersionCatalog | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `availableVersions` | publicCloud.managedKubernetes.VersionReference[] | read-only | Minor versions available for cluster creation, for example 1.34, newest first |
| `availableVersions[].status` | publicCloud.managedKubernetes.VersionStatusEnum | read-only | Support status of the version — one of `END_OF_SUPPORT`, `SUPPORTED` |
| `availableVersions[].version` | string | read-only | Kubernetes version. Minor in the creation catalog, for example 1.34, full in the cluster update and upgrade lists, for example 1.34.2-1. |
| `defaultVersion` | string | read-only | Minor version applied when a creation request does not specify one, for example 1.34 |

```json
{
  "availableVersions": [
    {
      "status": "END_OF_SUPPORT",
      "version": "string"
    }
  ],
  "defaultVersion": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/reference/managedKubernetes/version" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/version")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/reference/managedKubernetes/version");

print_r($result);
?>
```
