/api/family/invitePOST — athlete invites 1–2 parents → parent_links + magic-link → /family (PAR.1)
/api/family/checkoutPOST — parent funds a linked athlete's plan (tier→athlete via metadata, parent pays). PAR.2
/api/forum/searchGET — thread title search for the universal Cmd-K palette (Sprint 6.2)
/api/match-analysis/[collegeId]GET — Haiku-written per-school match narrative (Sprint 3.0z)
/api/coaches/whoamiGET — server-side coach session diagnostic (used by /coaches/login fallback)
/api/coach-prep/agent-urlElevenLabs Conversational AI signed URL + per-scenario coach prompt (realtime voice roleplay, Sprint 4.24)
/api/coach-prep/voicesLists the account's ElevenLabs voices (male/female) for the coach voice picker (Sprint 4.26)
/api/messages/[id]/readMark message read
/api/colleges/coachesCoach picker data — every coach for a school+sport from the DB; email/phone tier-gated to Prospect+ (CDB.3)
/api/email/coach-outreachCoach outreach send — send-as-athlete (Gmail) when connected, else managed; tier cap on NEW outreach only (Sprint 5.1 / SAA.1)
/api/e/o/[token]GET — open-pixel for Gmail-sent coach mail → coach_open bell (Sprint SAA.1)
/api/consent/grantGrant consent for a single marketing category (preference center toggle, Sprint 3.7)
/api/consent/withdrawWithdraw consent for a single marketing category (preference center toggle, Sprint 3.7)
/api/unsubscribePublic one-click unsubscribe (no login) — GET browser + POST RFC 8058 (Sprint 3.7)
/api/webhooks/resendResend lifecycle webhook — delivered/opened/clicked/bounced/complained → email_log + suppression (Sprint 3.1) + coach-open bell (Sprint 5.1)
/api/athlete/coach-interestGET/POST — signed-in athlete's interested-school keys (coaches who viewed/saved them, WVY.1); lights the Fit 'Coach interest' factor to verified (Sprint FIT.3)
/api/outreach/recommended-templateGET — data-driven best coach-email template by reply rate for a sport+division (min-sample gated); powers the composer '💡 X replies best' hint (Sprint CE.5)
/api/affiliates/applyPOST — inline affiliate/creator application: creates/links the account from the email, stamps it as an affiliate (not athlete), writes the affiliate_applications row, emails a finish-your-login link (Sprint AFF.2)
/api/affiliates/asset/[format]Generate co-branded social asset PNG (next/og)
/api/cron/reengagementGET — weekly cron: win-back cold marketing subscribers (60d no opens) + sunset (withdraw consent) after 30d (Sprint 3.9)
/api/cron/forum-digestGET — daily cron: 'new replies on discussions you follow' digest email (transactional, COPPA+suppression gated) (Sprint FORUM.3)
/api/events/rsvpPOST — register for an event; returns join link if tier-eligible (Sprint 5.4)
/api/partners/applyPOST — inline club application: creates/links the owning account from the email, uploads logo, writes the partner row, emails a finish-your-login link (Sprint 5.5)
/api/admin/affiliate-applications/approvePOST (admin) — approve an affiliate/creator application: mints their affiliate_codes row (stamped to user_id), marks approved, emails Start-Here w/ QR + family + refer-a-club links (Sprint AFF.1)
/api/admin/users/deletePOST (admin) — permanently remove a user by email or id; cascades across every profile (athlete/affiliate/club/parent) (Sprint AFF.2)
/api/admin/affiliates/upgrade-memberPOST (admin) — move a member's Stripe sub up a tier but KEEP their price (price swap + auto forever coupon); webhook flips tier durably. City SC deal helper
/api/partners/inviteOwner/admin invites a team member (admin | marketing role) + emails accept link (Sprint 4.16)
/api/team/clubsGET — public active-club search for the team-manager self-request (Sprint ROSTER.1)
/api/team/requestPOST — team-manager self-request: creates/links account, inserts pending row for club approval (Sprint ROSTER.1)
/api/team/invitePOST — owner/admin (or founder) direct-invites a team manager → magic-link accept email (Sprint ROSTER.1)
/api/team/approvePOST — approve a pending team manager (creates the team if proposed) + emails them (Sprint ROSTER.1)
/api/team/denyPOST — deny a pending team-manager request (Sprint ROSTER.1)
/api/team/revokePOST — remove a team manager (loses portal access) (Sprint ROSTER.1)
/api/team/managersGET — list a club's team managers + pending requests (owner/admin/founder) (Sprint ROSTER.1)