Skip to Content
Changelog

Changelog

v1.1.0

Opt-in populates via ?include=

  • Extended ?include= to support nested populates and per-field selection. Tokens: a, a.b, a.b.c, a(x,y), a.b(x,y). Multiple tokens with the same root automatically merge. See Query Parameter: ?include=.
  • Breaking: the following GET endpoints previously force-populated reference fields. They now return ObjectId strings unless the caller opts in with ?include=. To preserve old behavior, append the listed include tokens:
    • GET /api/v1/divisions/* — add ?include=league,layout
    • GET /api/v1/games/:id — add ?include=homeTeam.players,awayTeam.players,organization,league
    • GET /api/v1/games/team/:id and /league/:id — add ?include=homeTeam,awayTeam,organization,league (plus ,division for the /league/:id variant)
    • GET /api/v1/leagues/:id, /organization/:id — add ?include=tournament
    • GET /api/v1/leagues/tournament/:id — add ?include=paymentProduct,tournament
    • GET /api/v1/tournaments/:id and /organizationName/:name — add ?include=paymentProduct
    • GET /api/v1/players/team/:id, /division/:id, /registration/:id, /registrationTeam/:id, /game/:id, /league/:id, /leagueName/:name — add ?include=team
    • GET /api/v1/players?team=:id — add &include=team
    • GET /api/v1/players/search — add &include=team,organization
    • GET /api/v1/registrations/:id, /organizationName/:name, /tournament/:id, /league/:id, /organizationName/:name/all — add ?include=contests,paymentProduct,tournament,contest (plus ,league for the /all variant)
    • GET /api/v1/registrationTeams/:id — add ?include=division,playerz
    • GET /api/v1/registrationTeams/registration/:id/all — add ?include=division,requestedDivision,tournament,contest,requestedContest,divisionTeam,user(email,name),registration(paymentProduct)
    • GET /api/v1/registrationTeams/organizationName/:name — add ?include=team,division,requestedDivision.paymentProduct,requestedContest.paymentProduct,tournament.paymentProduct,contest
    • GET /api/v1/teams/:id, /league/:id, /division/:id, /organizationName/:name, /organization/:orgId/division/:divId — add ?include=division
    • GET /api/v1/divisionTeams/:id — add ?include=division,registrationTeam,registration
    • GET /api/v1/divisionTeams/division/:id, /registration/d/:id, /registrationTeam/d/:id — add ?include=division,team (append ,players to also get rosters)
    • GET /api/v1/divisionTeams/league/:id — add ?include=division,team,registrationTeam
    • GET /api/v1/stats/player/:id — add ?include=vsTeam,game,organization(name,_id),league(name,_id),player(name,_id)
    • GET /api/v1/stats/players?id=... — add &include=division(name,_id),organization(name,_id),league(name,_id),team,vsTeam,game,player,player.team,player.organization
    • GET /api/v1/stats/team/:id — add ?include=team,vsTeam,game,player,organization,league
    • GET /api/v1/stats/game/:id — add ?include=player,game
    • GET /api/v1/payments/organization/:name — add ?include=registration,registrationTeam,user(email)
    • GET /api/v1/timeSlots/organizationName/:name, /league/:id, /tournament/:id — add ?include=location.parentLocation
    • GET /api/v1/users/profile, /watchlist, PUT /users/addwatch, PUT /users/removewatch — add ?include=players,players.team,players.organization,players.league
    • GET /api/v1/admins/clerk/:id — add ?include=organizations
  • A handful of write endpoints (notably POST /registrationTeams/:id/playerRemove, /requestTeamAccept, and the admin-dashboard summary endpoints) keep their existing populates because the populated fields drive server-side email and business logic; no caller change needed.

v1.0.0

Initial API release

  • GET/POST/PUT /api/v1/leagues — Season/competition period management
  • GET/POST/PUT /api/v1/tournaments — Bracket tournament management
  • GET/POST/PUT /api/v1/divisions — Division and standings management
  • GET/POST/PUT /api/v1/registrations — Team enrollment windows
  • GET/POST/PUT /api/v1/players — Player profiles and rosters
  • GET/POST/PUT /api/v1/games — Game scheduling and scores (Basketball, Baseball, Judo, Golf, Racket, Track)
  • GET /api/v1/divisionTeams — Division team roster queries with ?include=players
  • Bearer token authentication with scoped API keys
  • Response envelope: { success, data, count }
  • Rate limits: Free (60/min), Pro (300/min), Enterprise (custom)
Last updated on