๐ค User & Authentication API
Comprehensive user management system with Supabase authentication, profiles, presets, passkeys, and personalization features. All user data is stored in Supabase with Row Level Security (RLS) policies.
๐ Supabase Authentication
All user endpoints require Supabase authentication. The system uses:
- Supabase Auth: Email/password authentication with JWT tokens
- RLS Policies: Row-level security ensures users can only access their own data
- OAuth Support: Google, Discord, GitHub, and other providers
- WebAuthn/Passkeys: Passwordless authentication support
Database Tables:
users - Main user profiles with display names, bios, avatars
user_presets - Saved station/podcast presets
user_passkeys - WebAuthn credentials
user_top_songs - Favorite songs lists
song_requests - Song request submissions
podcast_assignments - User podcast host assignments
station_assignments - User station DJ/host assignments
Manage user profiles including display name, bio, avatar, social links, and preferences. Supports profile updates and public profile viewing.
Requires: Authentication token (Authorization header)
GET https://api.typicalmedia.net/api/v1/user/profile
Manage user's favorite station presets. Save and retrieve custom station collections with ordering and organization.
Requires: Authentication token
GET https://api.typicalmedia.net/api/v1/user/presets
WebAuthn passkey management for passwordless authentication. Register, list, and delete passkeys for secure biometric login.
Requires: Authentication token
GET https://api.typicalmedia.net/api/v1/user/passkeys
Manage user's top/favorite songs list. Users can curate their personal music collection and share favorites.
Requires: Authentication token
GET https://api.typicalmedia.net/api/v1/user/top_songs
Submit and manage song requests for radio stations. Users can request songs to be played on air.
Requires: Authentication token
GET https://api.typicalmedia.net/api/v1/user/song_requests
Upload and manage user profile avatars. Supports image validation, automatic resizing, and storage.
Requires: Authentication token
Content-Type: multipart/form-data
POST https://api.typicalmedia.net/api/v1/user/upload_avatar
Register new user accounts with email verification and profile setup. Creates user in Supabase authentication system.
Body Parameters:
email - User email address (required)
password - Account password (required)
display_name - Display name (optional)
POST https://api.typicalmedia.net/api/v1/user/register