API Reference
119 endpoints across 9 services.
/registerRegister a new user account.
/loginAuthenticate user and receive JWT token.
/verifyVerify JWT token and return user info.
/users/:idGet user profile by ID.
/users/:idUpdate user profile.
/preferences/request-typesGet user's request type subscriptions (v9.0).
/preferences/request-typesUpdate a single request type subscription.
/preferences/request-types/bulkBulk update request type subscriptions.
/preferences/interestsGet user's interest categories (service_category, item_category, event_type).
/preferences/interestsAdd a new interest.
/preferences/interests/:idRemove an interest.
/preferences/feed (ADR-022)Get user's feed visibility preferences for multi-tier feed.
/preferences/feed (ADR-022)Update user's feed visibility preferences.
/healthService health check.
/communitiesGet all communities with optional filters.
/communities/my/communitiesGet communities the user is a member of.
/communities/:idGet specific community with all members.
/communitiesCreate new community.
/communities/:idUpdate community details (admin only).
/communities/:idArchive community (admin only, soft delete).
/communities/:communityId/membersGet all members of a community.
/communities/:communityId/joinJoin a community (public: immediate, private: pending approval).
/communities/:communityId/membersAdd member to community (invite).
/communities/:communityId/members/:userIdUpdate member role or status.
/communities/:communityId/members/:userIdRemove member from community (self-leave or admin kick).
/communities/:communityId/normsGet all norms for a community.
/communities/:communityId/norms/:normIdGet specific norm with all approvals.
/communities/:communityId/normsPropose a new community norm.
/communities/:communityId/norms/:normId/approveApprove a proposed norm (requires simple majority >50% of members).
/communities/:communityId/norms/:normIdArchive a norm (admin or creator only).
/communities/:id/configGet community configuration.
/communities/:id/configUpdate community configuration (founder only for Phase 1).
/communities/config-templatesBrowse available configuration templates.
/communities/:id/config/copy-from/:source_community_idCopy configuration from another community.
/communities/configs/publicBrowse configurations from thriving communities.
/healthService health check.
/communities/:communityId/linksPropose a link from this community to another (admin-only). Creates a `pending` link awaiting approval by the other community's admin.
/communities/:communityId/links/:linkIdApprove a pending link (other community's admin), or update `trust_carry_factor`/`show_in_sister_feeds`. Use `action: "approve"` or `action: "deactivate"` in the body.
/communities/:communityId/linksList all links involving this community. Optional `?status=pending|active|inactive` filter. Returns `partner_community_id` and `partner_community_name` for convenience.
/communities/:communityId/links/:linkIdRemove a link (sets status to `inactive`). Either community's admin can do this.
/requestsGet all help requests with optional filters.
/requests/matched/for-userGet requests matching user's skills from their communities (skill-based matching algorithm).
/requests/curated (v9.0 + ADR-031 Multi-Tier)Get curated feed with match scores, trust distance, and multi-tier visibility.
/requests/:idGet specific request details.
/requests (v9.0 Polymorphic + ADR-022 Visibility)Create new polymorphic help request (supports 5 types) with visibility scope.
/requests/:idUpdate help request (requester only).
/requests/:idCancel help request (requester only).
/requests/:id/privacyUpdate privacy settings for a request (Social Karma v2.0).
/requests/:id/admin-triageOverride request urgency and/or add a community-scoped admin note (Sprint 25).
/offersGet all help offers with optional filters.
/offers/:idGet specific offer details.
/offersCreate new help offer.
/offers/:id/privacyUpdate privacy settings for an offer (Social Karma v2.0).
/matchesGet all matches with optional filters.
/matches/:idGet specific match details.
/matchesCreate a match between request and responder.
/matches/:id/completeTwo-phase match completion. Each party calls this independently; the match
/matches/:id/feedbackSubmit interaction feedback for a completed match.
/matches/:id/feedbackGet feedback for a match.
/providersList all provider profiles. Optional query param: service_type.
/providers/myGet the authenticated user's own provider profiles. Auth required.
/providers/:idGet a single provider profile by ID, including ride details if applicable.
/providersCreate a provider profile for the authenticated user.
/providers/:idUpdate a provider profile. Owner only.
/providers/:idDelete a provider profile. Owner only.
/collectivesList all provider collectives. Optional query param: service_type.
/collectives/myGet collectives the authenticated user belongs to (via their provider profiles). Auth required.
/collectives/:idGet a collective with members and communities served.
/collectivesCreate a new provider collective.
/collectives/:idUpdate a collective. Collective admin only.
/collectives/:idDelete a collective. Collective admin only.
/collectives/:id/membersJoin a collective as a member.
/collectives/:id/members/:providerIdRemove a member from a collective. Collective admin only.
/collectives/:id/communitiesLink a collective to a community.
/collectives/:id/communities/:communityIdUnlink a collective from a community. Auth: collective admin OR community admin (Sprint 26).
/collectives/:id/statsReturns aggregate performance stats for a collective: `total_requests_matched`, `fulfillment_rate`, `avg_completion_hours` (null if no completed matches), `communities_served_count`, `available_membe
/providers/:providerId/availabilityToggle a provider's availability status. Body: `{ is_available: boolean }`. Auth: owner only (provider_profiles.user_id must match JWT userId). Returns `{ id, is_available }`. (Sprint 26)
/healthService health check.
/reputation/karma/:userIdGet user's total karma across all communities.
/reputation/trust/:userIdGet user's overall trust score — weighted average across all communities, weighted by recent interaction count.
/reputation/trust/:userId/:communityIdGet user's trust score in a specific community.
/reputation/leaderboard/:communityIdGet top karma earners in a community.
/reputation/history/:userIdGet karma transaction history for a user.
/reputation/users/:userId/badgesGet all prestige badges earned by a user (public). Phase 1 badge types: `first_helper`, `milestone_10`, `milestone_50`, `milestone_100`, `connector`.
/reputation/community-health/:communityIdGet community health metrics and trends.
/reputation/milestones/:communityIdGet community milestone achievements.
/reputation/trust/:userId/:communityIdEnhanced trust score with interaction quality (UPDATED).
/reputation/network-metrics/:communityIdGet the network cohesion score for a community (ADR-045). Four graph topology metrics — reciprocity, density, clustering coefficient, and path score — over a rolling 90-day window.
/reputation/community-trust/:communityIdGet the community trust score (ADR-040). Computed daily; recalculates on demand if no score exists yet.
/reputation/feedback (Authenticated)Submit a private quality rating after a completed interaction. Ratings are internal trust signals — never exposed to users (ADR-036).
/healthService health check.
/notifications/stream/:userIdServer-Sent Events (SSE) endpoint for real-time notifications.
/notifications/:userIdGet user's notifications (paginated).
/notifications/:userId/unread-countGet count of unread notifications.
/notifications/:notificationId/readMark specific notification as read.
/notifications/:userId/read-allMark all notifications as read for a user.
/notifications/:notificationIdDelete a notification.
/notifications/:userId/preferencesGet user's notification preferences.
/notifications/:userId/preferencesUpdate user's global notification preferences.
/healthService health check.
/messages/conversations/:userIdGet all conversations for a user.
/messages/:conversationIdGet all messages in a conversation (paginated).
/messagesCreate new conversation (usually auto-created when match occurs).
/messages/:conversationId/mark-readMark all messages in conversation as read.
/feedGet personalized feed for user.
/feed/dismissDismiss item from feed.
/feed/preferencesGet user's feed preferences.
/feed/preferencesUpdate feed preferences.
/healthHealth check endpoint.
/search?q={query}Search for geocoded addresses. Returns cached results if available, otherwise calls Nominatim API and caches the result.
/cacheManually cache a geocoding result (used by frontend for fire-and-forget caching).
/statsGet cache statistics and analytics.
/cleanupRemove expired cache entries (older than 30 days).
/invitations/generateGenerate a new invitation code for current user.
/invitations/acceptAccept an invitation code during user signup.
/invitationsGet invitation history for current user.
/invitations/statsGet inviter statistics for current user (gamification metrics).
/paths/:targetUserIdGet shortest path between current user and target user.
/paths/batchGet paths for multiple target users (optimized for feed ranking).