> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Keystore

> Deletes an existing keystore and undeploys it from all environments.

## Endpoint

```
DELETE /apiops/projects/{projectName}/keystores/{keystoreName}/
```

## Authentication

Requires a Personal API Access Token.

### Header

```
Authorization: Bearer YOUR_TOKEN
```

## Request

### Headers

| Header        | Value            | Required |
| ------------- | ---------------- | -------- |
| Authorization | Bearer `{token}` | Yes      |

### Path Parameters

| Parameter    | Type   | Required | Description                    |
| ------------ | ------ | -------- | ------------------------------ |
| projectName  | string | Yes      | Project name                   |
| keystoreName | string | Yes      | Name of the keystore to delete |

### Query Parameters

| Parameter       | Type   | Required | Description                                                                                                                                  |
| --------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| jwkDeleteAction | string | No       | Action to take on referenced JWKs: `NULLIFY` (clear references) or `DELETE` (delete JWKs completely). Defaults to `NULLIFY` if not provided. |

## Response

### Success Response (200 OK)

```json theme={null}
{
  "success": true,
  "deploymentResult": {
    "success": true,
    "message": "Undeployment completed successfully",
    "environmentResults": [
      {
        "environmentName": "production",
        "success": true,
        "message": "Undeployed successfully"
      }
    ]
  }
}
```

## cURL Example

### Example 1: Delete Keystore (Default: Clear JWK References)

```bash theme={null}
curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/keystores/my-keystore/" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### Example 2: Delete Keystore and Clear JWK References

```bash theme={null}
curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/keystores/my-keystore/?jwkDeleteAction=NULLIFY" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### Example 3: Delete Keystore and Delete Related JWKs

```bash theme={null}
curl -X DELETE \
  "https://demo.apinizer.com/apiops/projects/MyProject/keystores/my-keystore/?jwkDeleteAction=DELETE" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

## Notes and Warnings

* **Permanent Deletion**:
  * Keystore is permanently deleted
  * This action cannot be undone

* **Automatic Undeployment**:
  * Keystore is automatically undeployed from all environments
  * Undeployment results are returned in the response

* **Referenced JWKs**:
  * If `jwkDeleteAction=NULLIFY` or not provided (default), JWK references will be cleared
  * If `jwkDeleteAction=DELETE`, all JWKs created from this keystore will be permanently deleted
  * Default behavior (`NULLIFY`) preserves JWKs but removes their reference to the deleted keystore

## Permissions

User must have **`SECRETS` + `MANAGE`** permission in the project. For undeployment operations (when undeploying keystores from environments), user must also have **`SECRETS` + `DEPLOY_UNDEPLOY`** permission.

## Related Documentation

* [List Keystores](/api-reference/keys-secrets/crud/list-keystores) - List all keystores
* [Create Keystore](/api-reference/keys-secrets/crud/create-keystore) - Create a new keystore
