Skip to Content
User GuidesTrips API Surface Map

Trips API Surface Map

This reference maps Trips product areas to backend controllers and endpoint families.

Auth Modes

Trips currently uses two main auth patterns:

  1. Dashboard authenticated requests (Bearer user auth)
  2. Portal token session requests (TripPortalTokenGuard)

Use the correct mode for each endpoint family.

Core Trips

Controller: apps/api/src/modules/trips/trips.controller.ts

Primary routes:

  • POST /trips
  • GET /trips
  • GET /trips/copyable
  • POST /trips/wizard
  • GET /trips/:tripId
  • PATCH /trips/:tripId
  • DELETE /trips/:tripId
  • GET /trips/:tripId/players
  • POST /trips/:tripId/players
  • POST /trips/:tripId/players/bulk
  • PATCH /trips/:tripId/players/:playerId
  • DELETE /trips/:tripId/players/:playerId
  • GET /trips/:tripId/wizard/status
  • POST /trips/:tripId/wizard/retry
  • GET /trips/:tripId/copy

Trip Rounds

Controller: apps/api/src/modules/trips/trip-rounds.controller.ts

Primary routes:

  • POST /trips/:tripId/rounds
  • GET /trips/:tripId/rounds
  • GET /trips/:tripId/rounds/:roundId
  • PATCH /trips/:tripId/rounds/:roundId
  • DELETE /trips/:tripId/rounds/:roundId
  • PATCH /trips/:tripId/rounds/:roundId/ready
  • POST /trips/:tripId/rounds/:roundId/reset
  • POST /trips/:tripId/rounds/:roundId/complete
  • POST /trips/:tripId/rounds/:roundId/convert-to-team-scorecards

Trip Expenses And Settlements (Dashboard)

Controller: apps/api/src/modules/trips/trip-expenses.controller.ts

Primary routes:

  • POST /trips/:tripId/expenses
  • GET /trips/:tripId/expenses
  • GET /trips/:tripId/expenses/:expenseId
  • PATCH /trips/:tripId/expenses/:expenseId
  • DELETE /trips/:tripId/expenses/:expenseId
  • POST /trips/:tripId/receipts/upload
  • GET /trips/:tripId/expense-balances
  • POST /trips/:tripId/settlements/generate
  • GET /trips/:tripId/settlements
  • GET /trips/:tripId/settlements/unified
  • POST /trips/:tripId/settlements/unified/persist
  • GET /trips/:tripId/settlements/organizer/:organizerPlayerId
  • POST /trips/:tripId/settlements/organizer/:organizerPlayerId/persist
  • PATCH /trips/:tripId/settlements/:settlementId/complete
  • POST /trips/:tripId/wagers
  • GET /trips/:tripId/wagers
  • PATCH /trips/:tripId/wagers/:wagerId/settle
  • DELETE /trips/:tripId/wagers/:wagerId
  • GET /trips/:tripId/tournament-pot
  • PATCH /trips/:tripId/tournament-pot
  • POST /trips/:tripId/tournament-pot/apply

Trip Portal

Controller: apps/api/src/modules/trip-portal/trip-portal.controller.ts

Notable groups:

  • Token/session: /trip-portal/token, /trip-portal/tokens/bulk, /trip-portal/validate
  • My trips: /trip-portal/my-trips
  • Overview/rounds: /trip-portal/trips/:tripId, /trip-portal/trips/:tripId/rounds
  • Scoring: /trip-portal/scorecards/:scorecardId/scores, /scores/bulk
  • Leaderboards: round, tournament, multi-round, Ryder Cup endpoints
  • Side games: skins and Nassau endpoints
  • Settlements and unified balances endpoints
  • Portal expenses endpoints under /trip-portal/trips/:tripId/expenses
  • Point game state/selections endpoints

Trip Travel

Controller: apps/api/src/modules/trip-travel/trip-travel.controller.ts

Primary groups:

  • Flights
  • Rental cars
  • Accommodations
  • Ride coordination
  • Aggregate travel stats

Trip Activities

Controller: apps/api/src/modules/trip-activities/trip-activities.controller.ts

Primary groups:

  • CRUD for activities
  • Date-grouped views
  • Stats
  • Attendee management

Trip Availability

Controller: apps/api/src/modules/trip-availability/trip-availability.controller.ts

Primary groups:

  • Per-trip availability
  • Per-round availability
  • Player-level updates
  • Bulk updates

Display Manager

Controller: apps/api/src/modules/trip-display/trip-display.controller.ts

Primary groups:

  • Display config
  • Display data aggregation
  • Public display by trip or access code

Payments For Settlements

Controller: apps/api/src/modules/payments/settlement-payments.controller.ts

Primary groups:

  • Payment links
  • Mark paid / confirm receipt
  • Player payment preference endpoints

Analytics

Controller: apps/api/src/modules/analytics/analytics.controller.ts

Trip-specific groups:

  • Trip summary
  • Head-to-head and matrix
  • MVP and fun stats
  • Rivalries

Validation Sources

Use these test suites as contract references:

  • apps/api/src/modules/trip-portal/__tests__/integration/*
  • apps/api/src/modules/trips/__tests__/integration/trip-expenses-v2.integration.spec.ts
  • apps/api/src/modules/expenses/__tests__/integration/*
  • testing/simulator/src/trip/*