# Bare Metal Cloud › Dedicated Servers › Availability & Ordering API

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

> 12 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/bare-metal-cloud/dedicated-servers/availability-ordering/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/bare-metal-cloud/dedicated-servers/availability-ordering.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/bare-metal-cloud/dedicated-servers/availability-ordering.json?format=openapi3

## Operations

- `GET /dedicated/server/{serviceName}/orderable/backupStorage` — Get orderable backup storage
- `GET /dedicated/server/{serviceName}/orderable/bandwidth` — Get orderable bandwidth
- `GET /dedicated/server/{serviceName}/orderable/bandwidthvRack` — Get orderable vRack bandwidth
- `GET /dedicated/server/{serviceName}/orderable/feature` — Check whether a feature is orderable
- `GET /dedicated/server/{serviceName}/orderable/ip` — Get orderable IP addresses
- `GET /dedicated/server/{serviceName}/orderable/kvm` — Check whether a KVM is orderable
- `GET /dedicated/server/{serviceName}/orderable/kvmExpress` — Check whether KVM Express is orderable
- `GET /dedicated/server/{serviceName}/orderable/professionalUse` — Check whether professional use is orderable
- `GET /dedicated/server/{serviceName}/orderable/traffic` — Get orderable traffic
- `GET /dedicated/server/{serviceName}/orderable/usbKey` — Get orderable USB keys
- `GET /dedicated/server/datacenter/availabilities` — List server availability by datacenter
- `GET /dedicated/server/region/availabilities` — List server availability by region

## Get orderable backup storage

`GET /1.0/dedicated/server/{serviceName}/orderable/backupStorage`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-backupstorage

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/backupStorage/get`

Get orderable backup storage. Returns whether backup storage can be ordered for the server and the orderable capacities in gigabytes.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.BackupStorageOrderable | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `capacities` | dedicated.server.BackupStorageCapacityEnum[] |  | Backup storage orderable capacities in gigabytes |
| `orderable` | boolean |  | Is a backup storage is orderable for this server |

```json
{
  "capacities": [
    500
  ],
  "orderable": true
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/backupStorage" \
  -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("/dedicated/server/{serviceName}/orderable/backupStorage")

# 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("/dedicated/server/{serviceName}/orderable/backupStorage");

print_r($result);
?>
```

## Get orderable bandwidth

`GET /1.0/dedicated/server/{serviceName}/orderable/bandwidth`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-bandwidth

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/bandwidth/get`

Get orderable bandwidth. Returns whether bandwidth can be ordered for the server and the orderable premium, platinum and ultimate bandwidths in Mbps.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.BandwidthOrderable | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `orderable` | boolean |  | Is bandwidth orderable for this server |
| `platinum` | dedicated.server.BandwidthOrderEnum[] |  | Bandwidth "platinum" orderable in mbps |
| `premium` | dedicated.server.BandwidthOrderEnum[] |  | Bandwidth "premium" orderable in mbps |
| `ultimate` | dedicated.server.BandwidthOrderEnum[] |  | Bandwidth "ultimate" orderable in mbps |

```json
{
  "orderable": true,
  "platinum": [
    1000
  ],
  "premium": [
    1000
  ],
  "ultimate": [
    1000
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/bandwidth" \
  -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("/dedicated/server/{serviceName}/orderable/bandwidth")

# 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("/dedicated/server/{serviceName}/orderable/bandwidth");

print_r($result);
?>
```

## Get orderable vRack bandwidth

`GET /1.0/dedicated/server/{serviceName}/orderable/bandwidthvRack`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-bandwidthvrack

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/bandwidthvRack/get`

Get orderable vRack bandwidth. Returns whether vRack bandwidth can be ordered for the server and the orderable vRack bandwidths in Mbps.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.BandwidthvRackOrderable | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `orderable` | boolean |  | Is bandwidth orderable for this server |
| `vrack` | dedicated.server.BandwidthvRackOrderEnum[] |  | vRack Bandwidth orderable in mbps |

```json
{
  "orderable": true,
  "vrack": [
    1000
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/bandwidthvRack" \
  -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("/dedicated/server/{serviceName}/orderable/bandwidthvRack")

# 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("/dedicated/server/{serviceName}/orderable/bandwidthvRack");

print_r($result);
?>
```

## Check whether a feature is orderable

`GET /1.0/dedicated/server/{serviceName}/orderable/feature`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-feature

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/feature/get`

Check whether a feature is orderable. Returns true if the feature given in the feature parameter can be ordered for the server, false otherwise. Accepted features are monitoring and backupProtocol.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `feature` | query | dedicated.server.OrderableSysFeatureEnum | yes | the feature — one of `backupProtocol`, `monitoring` |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/feature" \
  -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("/dedicated/server/{serviceName}/orderable/feature")

# 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("/dedicated/server/{serviceName}/orderable/feature");

print_r($result);
?>
```

## Get orderable IP addresses

`GET /1.0/dedicated/server/{serviceName}/orderable/ip`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-ip

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/ip/get`

Get orderable IP addresses. Returns the IPv4 and IPv6 types that can be ordered for the server, with their block sizes, the number of prefixes and IPs that can be routed to it, and whether they are included in the offer. When a type needs an option first, optionRequired names it.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.IpOrderable | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ipv4` | dedicated.server.IpOrderableDetails[] |  | Orderable IP v4 details |
| `ipv4[].blockSizes` | dedicated.server.IpBlockSizeEnum[] |  | Orderable IP blocks sizes |
| `ipv4[].included` | boolean |  | Are those IP included with your offer |
| `ipv4[].ipNumber` | integer |  | Total number of IP that can be routed to this server |
| `ipv4[].number` | integer |  | Total number of prefixes that can be routed to this server |
| `ipv4[].optionRequired` | dedicated.server.OptionRequiredEnum |  | Which option is required to order this type of IP — one of `professionalUse` |
| `ipv4[].type` | dedicated.server.IpTypeOrderableEnum |  | this IP type — one of `failover`, `static`, `unshielded` |
| `ipv6` | dedicated.server.IpOrderableDetails[] |  | Orderable IP v6 details |
| `ipv6[].blockSizes` | dedicated.server.IpBlockSizeEnum[] |  | Orderable IP blocks sizes |
| `ipv6[].included` | boolean |  | Are those IP included with your offer |
| `ipv6[].ipNumber` | integer |  | Total number of IP that can be routed to this server |
| `ipv6[].number` | integer |  | Total number of prefixes that can be routed to this server |
| `ipv6[].optionRequired` | dedicated.server.OptionRequiredEnum |  | Which option is required to order this type of IP — one of `professionalUse` |
| `ipv6[].type` | dedicated.server.IpTypeOrderableEnum |  | this IP type — one of `failover`, `static`, `unshielded` |

```json
{
  "ipv4": [
    {
      "blockSizes": [
        1
      ],
      "included": true,
      "ipNumber": 0,
      "number": 0,
      "optionRequired": "professionalUse",
      "type": "failover"
    }
  ],
  "ipv6": [
    {
      "blockSizes": [
        1
      ],
      "included": true,
      "ipNumber": 0,
      "number": 0,
      "optionRequired": "professionalUse",
      "type": "failover"
    }
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/ip" \
  -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("/dedicated/server/{serviceName}/orderable/ip")

# 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("/dedicated/server/{serviceName}/orderable/ip");

print_r($result);
?>
```

## Check whether a KVM is orderable

`GET /1.0/dedicated/server/{serviceName}/orderable/kvm`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-kvm

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/kvm/get`

Check whether a KVM is orderable. Returns true if a KVM can be ordered for the server, false otherwise. KVM Express has its own route, orderable/kvmExpress.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/kvm" \
  -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("/dedicated/server/{serviceName}/orderable/kvm")

# 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("/dedicated/server/{serviceName}/orderable/kvm");

print_r($result);
?>
```

## Check whether KVM Express is orderable

`GET /1.0/dedicated/server/{serviceName}/orderable/kvmExpress`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-kvmexpress

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/kvmExpress/get`

Check whether KVM Express is orderable. Returns true if a KVM Express can be ordered for the server, false otherwise. A standard KVM has its own route, orderable/kvm.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/kvmExpress" \
  -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("/dedicated/server/{serviceName}/orderable/kvmExpress")

# 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("/dedicated/server/{serviceName}/orderable/kvmExpress");

print_r($result);
?>
```

## Check whether professional use is orderable

`GET /1.0/dedicated/server/{serviceName}/orderable/professionalUse`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-professionaluse

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/professionalUse/get`

Check whether professional use is orderable. Returns true if the professional use option can be ordered for the server, false otherwise. Ordering some IP types or USB keys can require this option.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/professionalUse" \
  -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("/dedicated/server/{serviceName}/orderable/professionalUse")

# 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("/dedicated/server/{serviceName}/orderable/professionalUse");

print_r($result);
?>
```

## Get orderable traffic

`GET /1.0/dedicated/server/{serviceName}/orderable/traffic`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-traffic

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/traffic/get`

Get orderable traffic. Returns whether traffic can be ordered for the server and the orderable traffic values, such as 250Mbps-Unlimited.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.TrafficOrderable | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `orderable` | boolean |  | Is traffic orderable for this server |
| `traffic` | dedicated.server.TrafficOrderEnum[] |  | traffic orderable |

```json
{
  "orderable": true,
  "traffic": [
    "100Mbps-Unlimited"
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/traffic" \
  -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("/dedicated/server/{serviceName}/orderable/traffic")

# 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("/dedicated/server/{serviceName}/orderable/traffic");

print_r($result);
?>
```

## Get orderable USB keys

`GET /1.0/dedicated/server/{serviceName}/orderable/usbKey`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-servicename-orderable-usbkey

**Status:** Stable production version  
**IAM actions:** `dedicatedServer:apiovh:orderable/usbKey/get`

Get orderable USB keys. Returns whether USB keys can be ordered for the server, how many, and the orderable capacities in gigabytes. When an option is needed first, optionRequired names it.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | The internal name of your dedicated server |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.UsbKeyOrderableDetails | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `capacity` | dedicated.server.UsbKeyCapacityEnum[] |  | Orderable USB keys capacity in gigabytes |
| `number` | integer |  | Number of USB keys that can be ordered for this server |
| `optionRequired` | dedicated.server.OptionRequiredEnum |  | Which option is required to order an USB key — one of `professionalUse` |
| `orderable` | boolean |  | Is USB keys orderable for this server |

```json
{
  "capacity": [
    16
  ],
  "number": 0,
  "optionRequired": "professionalUse",
  "orderable": true
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/{serviceName}/orderable/usbKey" \
  -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("/dedicated/server/{serviceName}/orderable/usbKey")

# 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("/dedicated/server/{serviceName}/orderable/usbKey");

print_r($result);
?>
```

## List server availability by datacenter

`GET /1.0/dedicated/server/datacenter/availabilities`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-datacenter-availabilities

**Status:** Stable production version  
**Authentication:** none (public operation)

Returns the availability of each server hardware configuration in each datacenter. Filter by plan code or hardware part, and choose datacenters with datacenters and excludeDatacenters. This call does not require authentication.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenters` | query | string |  | The names of datacenters separated by commas |
| `excludeDatacenters` | query | boolean |  | If true, all datacenters are returned except those listed in datacenters parameter |
| `gpu` | query | string |  | The name of the gpu hardware part |
| `memory` | query | string |  | The name of the memory hardware part |
| `planCode` | query | string |  | The plan code in which the hardware is involved |
| `server` | query | string |  | The name of the base hardware |
| `storage` | query | string |  | The name of the storage hardware part |
| `systemStorage` | query | string |  | The name of the system storage hardware part |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.DatacenterAvailability[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `datacenters` | dedicated.AvailabilityDatacenter[] | read-only | The hardware availability for each datacenter |
| `datacenters[].availability` | dedicated.AvailabilityEnum | read-only | The availability — one of `120H`, `1440H`, `1H-high`, `1H-low`, `2160H`, `240H`, `24H`, `480H`, `720H`, `72H`, `comingSoon`, `unavailable`, … |
| `datacenters[].datacenter` | dedicated.AvailabilityDatacenterEnum | read-only | The datacenter — one of `ap-south-1-a`, `ap-south-mum-a`, `ap-southeast-sgp-a`, `ap-southeast-syd-a`, `au`, `bhs`, `ca`, `ca-east-1-a`, `ca-east-bhs-a`, `ca-east-tor-a`, `de`, `default`, … |
| `fqn` | string | read-only | Fully qualified and unique name of the hardware |
| `gpu` | string | read-only | Name of the gpu hardware part |
| `memory` | string | read-only | Name of the memory hardware part |
| `planCode` | string | read-only | Plan code in which the hardware is involved |
| `server` | string | read-only | Name of the base hardware |
| `storage` | string | read-only | Name of the storage hardware part |
| `systemStorage` | string | read-only | Name of the system storage hardware part |

```json
[
  {
    "datacenters": [
      {
        "availability": "120H",
        "datacenter": "ap-south-1-a"
      }
    ],
    "fqn": "string",
    "gpu": "string",
    "memory": "string",
    "planCode": "string",
    "server": "string",
    "storage": "string",
    "systemStorage": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/datacenter/availabilities" \
  -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("/dedicated/server/datacenter/availabilities")

# 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("/dedicated/server/datacenter/availabilities");

print_r($result);
?>
```

## List server availability by region

`GET /1.0/dedicated/server/region/availabilities`

Link: https://developers.eu.ovhcloud.com/reference/bare-metal-cloud/dedicated-servers/availability-ordering/#get-dedicated-server-region-availabilities

**Status:** Beta version

Returns the availability of each server hardware configuration in each region and its availability zones. Filter by plan code or hardware part, and choose regions with regions and excludeRegions. Unlike the datacenter route, this call requires authentication.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `excludeRegions` | query | boolean |  | If true, all regions are returned except those listed in regions parameter |
| `gpu` | query | string |  | The name of the gpu hardware part |
| `memory` | query | string |  | The name of the memory hardware part |
| `planCode` | query | string |  | The plan code in which the hardware is involved |
| `regions` | query | dedicated.server.AvailabilityRegionalizationEnum[] |  | The names of regions |
| `server` | query | string |  | The name of the base hardware |
| `storage` | query | string |  | The name of the storage hardware part |
| `systemStorage` | query | string |  | The name of the system storage hardware part |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | dedicated.server.RegionAvailability[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `fqn` | string | read-only | Fully qualified and unique name of the hardware |
| `gpu` | string | read-only | Name of the gpu hardware part |
| `memory` | string | read-only | Name of the memory hardware part |
| `planCode` | string | read-only | Plan code in which the hardware is involved |
| `regions` | dedicated.server.AvailabilityByRegion[] | read-only | The hardware availability for each region |
| `regions[].availability` | dedicated.server.AvailabilityEnum | read-only | The availability — one of `120H`, `1440H`, `1H-high`, `1H-low`, `2160H`, `240H`, `24H`, `480H`, `720H`, `72H`, `comingSoon`, `unavailable`, … |
| `regions[].availabilityZones` | dedicated.server.AvailabilityZones[] | read-only | Availability zones |
| `regions[].availabilityZones[].availability` | dedicated.server.AvailabilityEnum | read-only | The availability — one of `120H`, `1440H`, `1H-high`, `1H-low`, `2160H`, `240H`, `24H`, `480H`, `720H`, `72H`, `comingSoon`, `unavailable`, … |
| `regions[].availabilityZones[].availabilityZone` | dedicated.server.AvailabilityZonesEnum | read-only | The availability zone — one of `ap-south-1-a`, `ap-south-mum-a`, `ap-southeast-sgp-a`, `ap-southeast-syd-a`, `ca-east-1-a`, `ca-east-bhs-a`, `ca-east-tor-a`, `eu-central-waw-a`, `eu-south-mil-a`, `eu-south-mil-b`, `eu-south-mil-c`, `eu-west-1-a`, … |
| `regions[].region` | dedicated.server.AvailabilityRegionalizationEnum | read-only | The region — one of `ap-south-1`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-1`, `ca-east-bhs`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `server` | string | read-only | Name of the base hardware |
| `storage` | string | read-only | Name of the storage hardware part |
| `systemStorage` | string | read-only | Name of the system storage hardware part |

```json
[
  {
    "fqn": "string",
    "gpu": "string",
    "memory": "string",
    "planCode": "string",
    "regions": [
      {
        "availability": "120H",
        "availabilityZones": [
          {
            "availability": "120H",
            "availabilityZone": "ap-south-1-a"
          }
        ],
        "region": "ap-south-1"
      }
    ],
    "server": "string",
    "storage": "string",
    "systemStorage": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/dedicated/server/region/availabilities" \
  -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("/dedicated/server/region/availabilities")

# 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("/dedicated/server/region/availabilities");

print_r($result);
?>
```
