Skip to main content
DELETE
Revoke a sandbox key
Soft-revoke a sandbox key (status='revoked'). Idempotent 204. The UPDATE is scoped to org_id and the sandbox user, so this route can never revoke a real member’s key even if handed that key’s hash. Unlike the shipped DELETE /v1/keys/{id} (which 404s on a non-owned id and stays exactly as shipped), this returns 204 for an unknown id: an idempotent delete that leaks nothing about which hashes exist. Returns None so the dependency stack’s headers (X-Request-Id, RateLimit) survive on the 204.

Authorization

This route requires the admin 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.

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 sandbox key id returned by GET /v1/sandbox/keys (its SHA-256 hash).

Response

Successful Response