# Network › vRack › Attached services › Eligible services API

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

> 2 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/network/vrack/attached-services/eligible-services/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/network/vrack/attached-services/eligible-services.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/network/vrack/attached-services/eligible-services.json?format=openapi3

## Operations

- `GET /vrack/{serviceName}/eligibleServices` — List eligible services
- `GET /vrack/{serviceName}/allowedServices` — List allowed services (deprecated)

## List eligible services

`GET /1.0/vrack/{serviceName}/eligibleServices`

Link: https://developers.eu.ovhcloud.com/reference/network/vrack/attached-services/eligible-services/#get-vrack-servicename-eligibleservices

**Status:** Stable production version  
**IAM actions:** `vrack:apiovh:eligibleServices/get`, `legacyVrack:apiovh:vrack/attach`, `ipLoadbalancing:apiovh:vrack/attach`, `ovhCloudConnect:apiovh:vrack/attach`, `dedicatedServer:apiovh:vrack/attach`, `pccVMware:apiovh:vrack/attach`, `vrackServices:apiovh:vrack/attach`, `ip:apiovh:vrack/attach`, `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrack/attach`

Returns, by service family, the services that can be attached to the vRack. The eligibility check runs asynchronously: the route can be called several times until all the eligible services are returned.

While the `status` is set to `pending` the results are partial.

Once the `status` is set to `done`, all the eligible services have been found.

In the eventuality of errors getting specific service types, the errors will be listed in the `errors` field.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceFamily` | query | vrack.EligibleServicesEnum |  | serviceFamily allows to filter on a specific service family — one of `cloudProject`, `dedicatedCloud`, `dedicatedServer`, `dedicatedServerInterface`, `ip`, `ipLoadbalancing`, `ipv6`, `legacyVrack`, `ovhCloudConnect`, `vmwareCloudDirectorVirtualDataCenter`, `vrackServices` |
| `serviceName` | path | string | yes | The internal name of your vrack |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vrack.EligibleServicesResponse | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string | read-only | Creation date of the call |
| `errors` | string[] | read-only | List of services where an error has been encountered |
| `result` | vrack.EligibleServices | read-only | Eligible services for this vRack |
| `result.cloudProject` | string[] | read-only | List of publicCloud projects allowed to be connected to this vRack |
| `result.dedicatedCloud` | string[] | read-only | List of dedicated cloud allowed to be connected to this vRack |
| `result.dedicatedCloudDatacenter` | string[] | read-only | List of dedicated cloud datacenters allowed to be connected to this vRack |
| `result.dedicatedConnect` | string[] | read-only | List of dedicated connect links allowed to be connected to this vRack |
| `result.dedicatedServer` | string[] | read-only | List of dedicated servers allowed to be connected to this vRack |
| `result.dedicatedServerInterface` | vrack.EligibleDedicatedServerInterfaces[] | read-only | List of dedicated server interfaces allowed to be connected to this vRack |
| `result.dedicatedServerInterface[].dedicatedServer` | string | read-only | The name of the dedicatedServer |
| `result.dedicatedServerInterface[].dedicatedServerInterface` | string | read-only | The unique identifier of the dedicatedServerInterface |
| `result.dedicatedServerInterface[].name` | string | read-only | The name of the dedicatedServerInterface |
| `result.ip` | ipBlock[] | read-only | List of blocks allowed to be connected to this vRack |
| `result.ipLoadbalancing` | string[] | read-only | List of ipLoadbalancing allowed to be connected to this vRack |
| `result.ipv6` | ipv6Block[] | read-only | List of ipv6 blocks allowed to be connected to this vRack |
| `result.legacyVrack` | string[] | read-only | List of legacy vRack (1.0) allowed to be connected to this vRack |
| `result.ovhCloudConnect` | string (uuid)[] | read-only | List of the ovhCloudConnect services allowed to be connected to this vRack |
| `result.vmwareCloudDirectorVirtualDataCenter` | string[] | read-only | List of the VMwareCloudDirectorVirtualDatacenter allowed to be connected to this vRack |
| `result.vrackServices` | string[] | read-only | List of the vrackServices allowed to be connected to this vRack |
| `status` | string | read-only | Status of the call |

```json
{
  "createdAt": "string",
  "errors": [
    "string"
  ],
  "result": {
    "cloudProject": [
      "string"
    ],
    "dedicatedCloud": [
      "string"
    ],
    "dedicatedCloudDatacenter": [
      "string"
    ],
    "dedicatedConnect": [
      "string"
    ],
    "dedicatedServer": [
      "string"
    ],
    "dedicatedServerInterface": [
      {
        "dedicatedServer": "string",
        "dedicatedServerInterface": "string",
        "name": "string"
      }
    ],
    "ip": [
      "192.0.2.0/24"
    ],
    "ipLoadbalancing": [
      "string"
    ],
    "ipv6": [
      "2001:41d0::/128"
    ],
    "legacyVrack": [
      "string"
    ],
    "ovhCloudConnect": [
      "00000000-0000-0000-0000-000000000000"
    ],
    "vmwareCloudDirectorVirtualDataCenter": [
      "string"
    ],
    "vrackServices": [
      "string"
    ]
  },
  "status": "string"
}
```

### Example

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

# 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("/vrack/{serviceName}/eligibleServices");

print_r($result);
?>
```

## List allowed services (deprecated)

`GET /1.0/vrack/{serviceName}/allowedServices`

Link: https://developers.eu.ovhcloud.com/reference/network/vrack/attached-services/eligible-services/#get-vrack-servicename-allowedservices

**Status:** Deprecated, will be removed  
**Deprecated** since 2025-09-02, removed on 2025-12-02.  
**IAM actions:** `vrack:apiovh:allowedServices/get`, `publicCloudProject:apiovh:vrack/attach`, `legacyVrack:apiovh:vrack/attach`, `ipLoadbalancing:apiovh:vrack/attach`, `ovhCloudConnect:apiovh:vrack/attach`, `dedicatedServer:apiovh:vrack/attach`, `pccVMware:apiovh:vrack/attach`, `vrackServices:apiovh:vrack/attach`, `ip:apiovh:vrack/attach`, `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrack/attach`

List allowed services (deprecated). Returns, by service family, the services that can be attached to the vRack. Deprecated: use eligibleServices instead.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceFamily` | query | vrack.AllowedServiceEnum |  | Filter on a specific service family — one of `cloudProject`, `dedicatedCloud`, `dedicatedCloudDatacenter`, `dedicatedConnect`, `dedicatedServer`, `dedicatedServerInterface`, `ip`, `ipLoadbalancing`, `ipv6`, `legacyVrack`, `ovhCloudConnect`, `vmwareCloudDirectorVirtualDataCenter`, … |
| `serviceName` | path | string | yes | The internal name of your vrack |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vrack.AllowedServices | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cloudProject` | string[] |  | list of publicCloud projects allowed to be connected to vrack |
| `dedicatedCloud` | string[] |  | list of dedicated cloud allowed to be connected to vrack |
| `dedicatedCloudDatacenter` | string[] |  | list of dedicated cloud datacenters allowed to be connected to vrack |
| `dedicatedConnect` | string[] |  | list of dedicated connect links allowed to be connected to vrack |
| `dedicatedServer` | string[] |  | list of dedicated servers allowed to be connected to vrack |
| `dedicatedServerInterface` | vrack.AllowedDedicatedServerInterfaces[] |  | list of dedicated server interfaces allowed to be connected to vrack |
| `dedicatedServerInterface[].dedicatedServer` | string |  | the name of dedicatedServer |
| `dedicatedServerInterface[].dedicatedServerInterface` | string |  | the unique identifier of dedicatedServerInterface |
| `dedicatedServerInterface[].name` | string |  | the name of dedicatedServerInterface |
| `ip` | ipBlock[] |  | list of blocks allowed to be connected to vrack |
| `ipLoadbalancing` | string[] |  | list of ipLoadbalancing allowed to be connected to vrack |
| `ipv6` | ipv6Block[] |  | list of ipv6 blocks allowed to be connected to vrack |
| `legacyVrack` | string[] |  | list of legacy vrack (1.0) allowed to be connected to vrack |
| `ovhCloudConnect` | string (uuid)[] |  | List of the ovhCloudConnect services allowed to be connected to vrack |
| `vmwareCloudDirectorVirtualDataCenter` | string[] |  | List of the vmwareCloudDirectorVirtualDataCenter allowed to be connected to vrack |
| `vrackServices` | string[] |  | List of the vrackServices allowed to be connected to vrack |

```json
{
  "cloudProject": [
    "string"
  ],
  "dedicatedCloud": [
    "string"
  ],
  "dedicatedCloudDatacenter": [
    "string"
  ],
  "dedicatedConnect": [
    "string"
  ],
  "dedicatedServer": [
    "string"
  ],
  "dedicatedServerInterface": [
    {
      "dedicatedServer": "string",
      "dedicatedServerInterface": "string",
      "name": "string"
    }
  ],
  "ip": [
    "192.0.2.0/24"
  ],
  "ipLoadbalancing": [
    "string"
  ],
  "ipv6": [
    "2001:41d0::/128"
  ],
  "legacyVrack": [
    "string"
  ],
  "ovhCloudConnect": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "vmwareCloudDirectorVirtualDataCenter": [
    "string"
  ],
  "vrackServices": [
    "string"
  ]
}
```

### Example

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

# 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("/vrack/{serviceName}/allowedServices");

print_r($result);
?>
```
