Skip to main content
DELETE
Revoke an API key
Soft-revoke one of the caller’s keys (status='revoked'). Idempotent. Revoking an already-revoked key the caller owns is a 204 (the row still matched), so retries are safe. A key that is not the caller’s (another member’s, another org’s, or nonexistent) is a 404, which also keeps key hashes unenumerable. Returns no body, so the cross-cutting headers (X-Request-Id, RateLimit) survive on the 204.

Authorization

This route accepts any authenticated Exo API key and checks no additional scope. A missing or invalid credential returns 401 authentication_error. A valid credential without the scope returns 403 permission_denied, and the problem body names the exact scope required.

Headers

These are request conventions the contract does not declare as parameters, so they do not appear in the schema tables below.

Success responses

Errors

Every error is an RFC 9457 application/problem+json body carrying a stable code, a requestId, and a suggestedAction where Exo has one. See Errors.

Notes

  • Revocation is a soft revoke and is idempotent. Revoking your own already-revoked key is 204. A key that is not yours is 404, which keeps key hashes unenumerable.

Authorizations

X-Exo-API-Key
string
header
required

An Exo API key (exo_...) sent as the X-Exo-API-Key header.

Path Parameters

key_id
string
required

The key id returned by GET /v1/keys (its SHA-256 hash, not the plaintext).

Response

Successful Response