Revoke a key. Idempotent on already-revoked.
revoked_at flips to now() (or stays put on the second call).
The auth-side query filters revoked_at IS NULL, so the next
request using the revoked key fails with 401 immediately.
Documentation Index
Fetch the complete documentation index at: https://docs.roughy.ai/llms.txt
Use this file to discover all available pages before exploring further.
Either your Supabase session JWT (UI flows) or an API key minted via POST /api-keys (programmatic flows). Pass it as Authorization: Bearer <token>. The server inspects the token format and routes to JWT or API-key verification automatically.
Successful Response