Mint a fresh API key for the caller.
The response includes the full plaintext value in plaintext. This
is the only time it will ever be returned; subsequent reads only
surface metadata + prefix. Frontend MUST present a “save this now”
UX before allowing the response to be dismissed.
Soft-deleted users in their grace window are blocked here (423): minting fresh credentials post-deletion-intent would extend an attacker’s foothold if the soft-delete was their own session- cleanup move. List + revoke remain available on the sibling handlers so a compromised user can still defend their account.
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.
Body of POST /api-keys.
User-chosen label for the key (e.g. 'production-deploy', 'ci-runner'). Stored verbatim and shown in the dashboard alongside the prefix.
1 - 120Successful Response
Response to POST /api-keys. Adds the one-shot plaintext field.
The full API key. This is the only time you will see the plaintext value -- once this response is dismissed, only the prefix is recoverable. Save it to a secure location (password manager, secret store) before continuing.