---
title: "Revoke an API key (first-party, JWT-authenticated)"
method: DELETE
path: "/api/v1/keys/{id}"
tags: ["API Keys"]
---

# Revoke an API key (first-party, JWT-authenticated)

`DELETE /api/v1/keys/{id}`

## Request

- Base URL: `https://api.reconcileiq.com`
- URL: `https://api.reconcileiq.com/api/v1/keys/{id}`
- Auth: HTTP bearer

Soft-revokes a key owned by the caller (sets revoked_at). Revoked or non-owned keys return 404. JWT-authenticated.

## Path parameters

- `id` integer, required

## Response `200`

Key revoked.

- object
  - `revoked` object
    - `id` integer
    - `name` string
    - `prefix` string
    - `revoked_at` string, date-time

## Other responses

- `400`: Structurally invalid request (Zod). Distinct from the 422 format-contract gate.
- `401`: First-party web-session (JWT) auth failure on a /api/v1/keys endpoint. Standard error envelope, identical in shape to API-key auth failures: `401 unauthorized` when the token is missing, `401 invalid_token` when it is invalid or expired.
- `404`: Resource not found, or not visible to the caller (no existence leak).

---

[API](https://skmtc.dev/reconcileiq/apis/reconcileiq-public-api.md) · [All operations](https://skmtc.dev/reconcileiq/apis/reconcileiq-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reconcileiq/apis/reconcileiq-public-api/revisions/5401beef8653?raw)
