Main non-admin routes
GET/POST /api/locker-roomGET/PUT/DELETE /api/locker-room/[id]GET/POST /api/locker-room/[id]/commentsPUT/DELETE /api/locker-room/[id]/comments/[commentId]GET/POST /api/locker-room/comments/[commentId]/reactPOST /api/locker-room/[id]/reactPOST /api/locker-room/[id]/likePOST /api/locker-room/[id]/poll/voteGET/PUT/DELETE /api/locker-room/posts/draftGET /api/locker-room/hot-takesGET /api/locker-room/streamPOST /api/user/followGET /api/user/followersGET /api/user/recommendedGET /api/user/searchGET/POST/DELETE /api/user/mutesGET/POST/DELETE /api/user/blocksGET /api/user/follow-requestsDELETE /api/user/follow-requests/[id]POST /api/user/follow-requests/[id]/approvePOST /api/user/follow-requests/[id]/denyGET /api/pins,GET /api/prompts,GET /api/news,GET /api/news/[id]POST /api/v1/users/contacts/match
Runtime behavior highlights
- Post creation updates feed-visible entities with author-linked identity.
teamIdon create is the about-tag.authorTeamId/postAsTeamIdis who the post is authored as.- Unauthorized
authorTeamIdreturns403. Unknown ids return400. Following a team does not grant post-as-team. - Attachment-only posts are valid.
lineupis stored on the post and returned on later reads. POST /{id}/likeis additive ({ liked, likeCount }) and does not replace/react.- Comment and reaction routes mutate child entities tied to post IDs.
- Comment create may send
mentionedUserIds. Edit must sendmentionedUserIds: []to clear mentions. GET /api/user/searchrequiresq. Default scope also matches location whenqis at least 2 characters.scope=mentionmatches handle and name only and omits users without a handle.limitis 1–50 (default 20). Rows useprofileUrl, notavatar.- Follow routes enforce self-consistency and update follower/following graph edges.
TeamFollowstays social-only. Leaderboard join uses/api/teams/{id}/join.- Recommendation and follower endpoints read from current social graph state.
- Mute is one-way and silent (
UserMute). Block is stronger (UserBlock) and removes the blocked user from the blocker’s social surfaces. - Mute/block target refs resolve by
User.idor handle. Missing targets return404. Self-target returns400.
Side effects and integration points
- Social actions can trigger quest progression checks in onboarding/gamification flows.
- Team follow actions can influence team-scoped user experiences.
Known caveats
- Stream endpoints are transport-sensitive and clients should support reconnection behavior.
- Some recommendation heuristics are derived from current follow state and may evolve independently from route contracts.
Exclusions
- Moderation enforcement and privileged content management workflows are documented under moderation, not this section.
