---
title: Licenses REST Interface
slug: ps/help/en_us/vwaf/ag/licenses-rest-interface
docTags: 
createdAt: 2026-08-02T10:05:41.957Z
---

## Data

:::hint{type="info"}
Where vWAF is integrated with Traffic Manager, you manage licenses using the Traffic Manager administration interface. Do not change any settings in the vWAF License REST Interface. Any changes made using the License REST Interface are overwritten by Traffic Manager.
:::

License data fields are:

- customer
  The name of the customer to whom the license was assigned.
- certificate
  The certificate key that was used to create the license.
- validTo
  UNIX timestamp of the moment when the license will expire or has expired.
- validFrom
  UNIX timestamp of the moment when the license will begin or has begun to be valid.
- capabilities
  A dict of “capability-name: amount of applications”.
- adminserver\_ip\_list
  A list of IP addresses of administration nodes for which the license is valid.
- cluster\_id
  The cluster ID stored in the license.
- number\_of\_enforcers
  The maximum number of licensed enforcers.
- number\_of\_decider\_cores\_productive
  The maximum number of decider nodes allowed in productive mode (in contrast to hot standby mode, which is available for some licenses).
- number\_of\_decider\_cores\_non\_productive
  The maximum number of hot standby decider nodes.
- serial
  The license serial (ID).

:::hint{type="info"}
For more information regarding cluster management, see [Cluster Management](docId:81qwJdlmpB84fdpfmkhFr).
:::

## Getting a list of installed licenses

- Request

| Method    | GET        |
| --------- | ---------- |
| URL       | /licenses/ |
| Arguments | –          |

- Response

| Return code | Arguments                  | Meaning                           |
| ----------- | -------------------------- | --------------------------------- |
| 200         | \[ SERIAL1, SERIAL2, ... ] | list of installed license serials |
| 401         | -                          | no login                          |
| 403         | -                          | not enough rights                 |
| 500         | -                          | internal server error             |

- Example

The following request retrieves all installed license serials. In this case, there are two.

```bash
$ curl -u admin:admin -H 'Content-Type: application/json' http://127.0.0.1:8087/api/af/2.0/licenses { "__name": "licenses", "__path": "/api/af/2.0/licenses/", "__subnodes": [ "68eac3a877869f6b310d54051af20e489bb7036f", "5bc86176bcf2c6003a60ecf008b2ac42b8f63152" ], "licenses": [ "68eac3a877869f6b310d54051af20e489bb7036f", "5bc86176bcf2c6003a60ecf008b2ac42b8f63152" ] }
```

## Getting the data of a license

- Request

| Method    | GET                     |
| --------- | ----------------------- |
| URL       | /licenses/LICENSESERIAL |
| Arguments | –                       |

- Response

| Return code | Arguments        | Meaning               |
| ----------- | ---------------- | --------------------- |
| 200         | \{ LICENSEDATA } | the license data      |
| 401         | -                | no login              |
| 403         | -                | not enough rights     |
| 404         | -                | license not found     |
| 500         | -                | internal server error |

- Example

The following request retrieves the license data for the license with the serial number “68eac3a877869f6b310d54051af20e489bb7036f”.

```bash
$ curl -u admin:admin -H 'Content-Type: application/json' http://127.0.0.1:8087/api/af/2.0/licenses/68eac3a877869f6b310d54051af20e489bb7036f {    "__name": "68eac3a877869f6b310d54051af20e489bb7036f",    "__path": "/api/af/2.0/licenses/68eac3a877869f6b310d54051af20e489bb7036f/",    "__subnodes": [],    "adminserver_ip_list": [        "127.0.0.1"    ],    "capabilities": {        "hyperguard": 10    },    "certificate": "TESTCERTIFICATE",    "cluster_id": "DEVELOPMENT",    "customer": "TEST",    "hostname": "",    "number_of_decider_cores_non_productive": 0,    "number_of_decider_cores_productive": 4,    "number_of_enforcers": 4,    "rvbd_vsn": "YOUR-RIVERBED-SERIAL-NUMBER",    "serial": "68eac3a877869f6b310d54051af20e489bb7036f",    "validFrom": 1347291986,    "validTo": 1349883986 }
```

## Installing a new license

- Request

:::hint{type="info"}
The POST body may only contain the raw license text but no other license data fields. You need to send it with content type “application/octet-stream”.
:::

| Method    | POST               |
| --------- | ------------------ |
| URL       | /licenses/         |
| Arguments | RAW\_LICENSE\_DATA |

- Response

| Return code | Arguments        | Meaning                                                                                          |
| ----------- | ---------------- | ------------------------------------------------------------------------------------------------ |
| 200         | \{ LICENSEDATA } | license with the given license data successfully installed Note: rvdb\_vsn is the Serial Number. |
| 401         | -                | no login                                                                                         |
| 403         | -                | not enough rights                                                                                |
| 409         | -                | malformed, conflicting, or missing data                                                          |
| 500         | -                | internal server error                                                                            |

- Example

The following request installs the given license and retrieves the data specified by the license.

```bash
$ cat license.txt ======== BEGIN HYPERGUARD LICENSE ======== KGRwMQpTJ21heF9yZXFfcGVyX3NlY29uZCcKcDIKSS0xCnNTJ251bWJlcl9v Zl9kZWNpZGVyX2NvcmVzX3Byb2R1Y3RpdmUnCnAzCkk4CnNTJ3Byb2R1Y3Qn CnA0ClMnaHlwZXJndWFyZCcKcDUKc1MndmFsaWRfZnJvbScKcDYKRjE0MDE4 NzU0OTMKc1MnYWRtaW5fc2VydmVyX2lwX2xpc3QnCnA3CihscDgKUycxOTIu ........ yMDQxMzAwMzc= ========  END  HYPERGUARD LICENSE ======== $ curl -u admin:admin -H "Content-Type: application/octet-stream" --data-binary  @license.txt http://127.0.0.1:8087/api/af/2.0/licenses {    "__name": "9f8c4bb2b1fff9103839bb278061a9430484030c",    "__path": "/api/af/2.0/licenses/9f8c4bb2b1fff9103839bb278061a9430484030c/",    "__subnodes": [],    "adminserver_ip_list": [      "192.168.240.3"    ],    "capabilities": {      "hyperguard": 10    },    "certificate": "",    "cluster_id": "",    "customer": "",    "feature_list": [],    "number_of_decider_cores_non_productive": 0,    "number_of_decider_cores_productive": 8,    "number_of_enforcers": 8,    "rvbd_vsn": "YOUR-RIVERBED-SERIAL-NUMBER",    "serial": "9f8c4bb2b1fff9103839bb278061a9430484030c",    "validFrom": 1401875493.0,    "validTo": 1404553893.0 }
```

## Uninstalling a license

- Request

| Method    | DELETE                  |
| --------- | ----------------------- |
| URL       | /licenses/LICENSESERIAL |
| Arguments | –                       |

- Response

| Return code | Arguments | Meaning                          |
| ----------- | --------- | -------------------------------- |
| 200         | -         | license successfully uninstalled |
| 401         | -         | no login                         |
| 403         | -         | not enough rights                |
| 404         | -         | license not found                |
| 500         | -         | internal server error            |

- Example

The following request uninstalls the license with the serial number “68eac3a877869f6b310d54051af20e489bb7036f”.

```bash
$ curl -X DELETE -u admin:admin -H 'Content-Type: application/json' http://127.0.0.1:8087/api/af/2.0/licenses/68eac3a877869f6b310d54051af20e489bb7036f {}
```
