# Storage & Backup › File Storage › Enterprise File Storage › Capabilities API

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

> 1 operation 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/storage-backup/file-storage/enterprise-file-storage/capabilities/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/storage-backup/file-storage/enterprise-file-storage/capabilities.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/storage-backup/file-storage/enterprise-file-storage/capabilities.json?format=openapi3

## Operations

- `GET /storage/netapp/capabilities/product` — Get product capabilities

## Get product capabilities

`GET /1.0/storage/netapp/capabilities/product`

Link: https://developers.eu.ovhcloud.com/reference/storage-backup/file-storage/enterprise-file-storage/capabilities/#get-storage-netapp-capabilities-product

**Status:** Stable production version

Returns product capabilities such as features, supported protocols, and limits.

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | storage.NetAppCapabilitiesProduct | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `performance` | storage.NetAppCapabilitiesPerformance | read-only | Performance capabilities |
| `performance.levels` | storage.NetAppCapabilitiesPerformanceLevel[] | read-only | Available performance levels |
| `performance.levels[].limits` | storage.NetAppCapabilitiesPerformanceLevelLimits | read-only | Performance level limits |
| `performance.levels[].name` | storage.NetAppServicePerformanceLevelEnum | read-only | Performance level name — one of `premium` |
| `service` | storage.NetAppCapabilitiesService | read-only | Service capabilities |
| `service.features` | storage.NetAppFeatureEnum[] | read-only | Available features |
| `service.networks` | storage.NetAppCapabilitiesServiceNetwork[] | read-only | Supported network types |
| `service.networks[].type` | storage.NetAppNetworkEnum | read-only | Network type — one of `vRack` |
| `service.networks[].vRackServices` | storage.NetAppCapabilitiesServiceNetworkVRackServices | read-only | vRack Services constraints |
| `service.protocols` | storage.NetAppCapabilitiesServiceProtocol[] | read-only | Supported protocols |
| `service.protocols[].type` | storage.ProtocolEnum | read-only | Protocol type — one of `NFS` |
| `service.protocols[].versions` | string[] | read-only | Protocol versions |
| `service.size` | storage.NetAppCapabilitiesSizeRange | read-only | Service size constraints |
| `service.size.granularity` | integer | read-only | Size granularity |
| `service.size.max` | integer | read-only | Maximum size |
| `service.size.min` | integer | read-only | Minimum size |
| `service.size.unit` | storage.NetAppSizeUnitEnum | read-only | Size unit — one of `GiB`, `TiB` |
| `share` | storage.NetAppCapabilitiesShare | read-only | Share capabilities |
| `share.fileSize` | storage.NetAppCapabilitiesFileSize | read-only | File size constraints |
| `share.fileSize.max` | integer | read-only | Maximum file size |
| `share.fileSize.unit` | storage.NetAppSizeUnitEnum | read-only | File size unit — one of `GiB`, `TiB` |
| `share.maxItemsPerTiB` | integer | read-only | Maximum number of shares per TiB of service size |
| `share.size` | storage.NetAppCapabilitiesSizeRange | read-only | Share size constraints |
| `share.size.granularity` | integer | read-only | Size granularity |
| `share.size.max` | integer | read-only | Maximum size |
| `share.size.min` | integer | read-only | Minimum size |
| `share.size.unit` | storage.NetAppSizeUnitEnum | read-only | Size unit — one of `GiB`, `TiB` |
| `share.snapshot` | storage.NetAppCapabilitiesShareSnapshot | read-only | Share snapshot constraints |
| `share.snapshot.maxItems` | integer | read-only | Maximum number of snapshots per share |
| `share.snapshotPolicy` | storage.NetAppCapabilitiesShareSnapshotPolicy | read-only | Share snapshot policy constraints |
| `share.snapshotPolicy.maxItems` | integer | read-only | Maximum number of snapshot policies per share |
| `share.snapshotReserve` | storage.NetAppCapabilitiesShareSnapshotReserve | read-only | Share snapshot reserve constraints |
| `share.snapshotReserve.default` | integer | read-only | Default snapshot reserve percentage |
| `share.snapshotReserve.max` | integer | read-only | Maximum snapshot reserve percentage |
| `share.snapshotReserve.min` | integer | read-only | Minimum snapshot reserve percentage |
| `share.snapshotReserve.unit` | storage.NetAppShareSnapshotReserveUnitEnum | read-only | Snapshot reserve unit — one of `percent` |
| `shareReplica` | storage.NetAppCapabilitiesShareReplica | read-only | Share replica capabilities |
| `shareReplica.fileSize` | storage.NetAppCapabilitiesFileSize | read-only | File size constraints |
| `shareReplica.fileSize.max` | integer | read-only | Maximum file size |
| `shareReplica.fileSize.unit` | storage.NetAppSizeUnitEnum | read-only | File size unit — one of `GiB`, `TiB` |
| `shareReplica.maxItemsPerTiB` | integer | read-only | Maximum number of share replicas per TiB of service size |
| `shareReplica.size` | storage.NetAppCapabilitiesSizeRange | read-only | Share replica size constraints |
| `shareReplica.size.granularity` | integer | read-only | Size granularity |
| `shareReplica.size.max` | integer | read-only | Maximum size |
| `shareReplica.size.min` | integer | read-only | Minimum size |
| `shareReplica.size.unit` | storage.NetAppSizeUnitEnum | read-only | Size unit — one of `GiB`, `TiB` |
| `snapshotPolicy` | storage.NetAppCapabilitiesSnapshotPolicy | read-only | Snapshot policy capabilities |
| `snapshotPolicy.maxItems` | integer | read-only | Maximum number of snapshot policies |
| `snapshotPolicy.rules` | storage.NetAppCapabilitiesSnapshotPolicyRules | read-only | Snapshot policy rules constraints |
| `snapshotPolicy.rules.maxItems` | integer | read-only | Maximum number of rules per snapshot policy |
| `snapshotPolicy.rules.minItems` | integer | read-only | Minimum number of rules per snapshot policy |
| `snapshotPolicy.rules.schedule` | storage.NetAppCapabilitiesSnapshotPolicySchedule | read-only | Snapshot policy rule schedule constraints |

```json
{
  "performance": {
    "levels": [
      {
        "limits": {
          "bandwidth": {
            "perTiB": 0,
            "unit": "IOPS"
          },
          "iops": {
            "perTiB": 0,
            "unit": "IOPS"
          }
        },
        "name": "premium"
      }
    ]
  },
  "service": {
    "features": [
      "ovhBackup"
    ],
    "networks": [
      {
        "type": "vRack",
        "vRackServices": {
          "max": 0
        }
      }
    ],
    "protocols": [
      {
        "type": "NFS",
        "versions": [
          "string"
        ]
      }
    ],
    "size": {
      "granularity": 0,
      "max": 0,
      "min": 0,
      "unit": "GiB"
    }
  },
  "share": {
    "fileSize": {
      "max": 0,
      "unit": "GiB"
    },
    "maxItemsPerTiB": 0,
    "size": {
      "granularity": 0,
      "max": 0,
      "min": 0,
      "unit": "GiB"
    },
    "snapshot": {
      "maxItems": 0
    },
    "snapshotPolicy": {
      "maxItems": 0
    },
    "snapshotReserve": {
      "default": 0,
      "max": 0,
      "min": 0,
      "unit": "percent"
    }
  },
  "shareReplica": {
    "fileSize": {
      "max": 0,
      "unit": "GiB"
    },
    "maxItemsPerTiB": 0,
    "size": {
      "granularity": 0,
      "max": 0,
      "min": 0,
      "unit": "GiB"
    }
  },
  "snapshotPolicy": {
    "maxItems": 0,
    "rules": {
      "maxItems": 0,
      "minItems": 0,
      "schedule": {
        "days": {
          "items": {
            "max": 0,
            "min": 0
          },
          "maxItems": 0,
          "minItems": 0,
          "required": true
  …
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/storage/netapp/capabilities/product" \
  -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("/storage/netapp/capabilities/product")

# 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("/storage/netapp/capabilities/product");

print_r($result);
?>
```
