Full grid of (type, channel) prefs with defaults merged in.
Every type x channel pair is present in the response; the
is_default field tells the UI whether the user has explicitly set
it (else falling back to the static default), and is_mandatory
greys-out toggles the user can’t change.
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
Full grid of every (type, channel) prefs for the caller, with defaults merged in. Stable order so the UI can render predictably.