> For the complete documentation index, see [llms.txt](https://docs.enclaive.cloud/vault/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enclaive.cloud/vault/api/system-backend/sys-rotate-config.md).

# /sys/rotate/config

The `/sys/rotate` endpoint is used to configure automatic key rotation.

### Configure automatic key rotation

This endpoint configures the automatic rotation of the backend encryption key. By default, the key is rotated after just under 4 billion encryptions, to satisfy the recommendation of [NIST SP 800-38D](https://csrc.nist.gov/publications/detail/sp/800-38d/final). One can configure rotations after fewer encryptions or on a time based schedule.

### Create or update the auto rotation configuration

| Method | Path                 |
| ------ | -------------------- |
| `POST` | `/sys/rotate/config` |

#### Parameters

* `max_operations` `(int: 3865470566)` - Specify the limit of encryptions after which the key will be automatically rotated. The number must be between 1,000,000 and the default.
* `interval` \`(string: "") - If set, the age of the active key at which an automatic rotation is triggered. Specified as a Go duration string (e.g. 4320h), the value must be at least 24 hours.
* `enabled` `(bool: true)` - If set to false, automatic rotations will not be performed. Tracking of encryption counts will continue.

#### Sample payload

```json
{
  "max_operations": 2000000000,
  "interval": "4320h"
}
```

#### Sample request

```shell-session
$ curl \
    --request POST \
    --header "X-Vault-Token: ..." \
    --data @payload.json \
    http://127.0.0.1:8200/v1/sys/rotate/config
```

### Get the auto rotation configuration

| Method | Path                 |
| ------ | -------------------- |
| `GET`  | `/sys/rotate/config` |

#### Sample request

```shell-session
$ curl \
    --request GET \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/sys/rotate/config
```

#### Sample response

```json
{
  "request_id": "f3d91b4a-69bf-4aaf-b928-df7a5486c130",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "max_operations": 2000000000,
    "interval": "4320h",
    "enabled": true
  },
  "warnings": null
}
```
