---
title: "Delete"
method: DELETE
path: "/api-keys/{id}"
tags: ["api-keys"]
---

# Delete

`DELETE /api-keys/{id}`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/api-keys/{id}`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Hard-removes an API key row (ResourceAuth write — the key's own account, or a tenant admin over their tenant's keys). Unlike Revoke, this does not leave an inactive row for audit; prefer POST /api-keys/{id}/revoke when the goal is to disable the credential while keeping a record it existed. 404 key_not_found for an unknown or out-of-scope id.

## Path parameters

- `id` string, required

## Response `200`

OK

- InternalDeliveryHttpHandlerOKResponse
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
