Skip to content

Mobile BFF Endpoints ​

All endpoints require Clerk + Org authentication (handled by gateway). Routed via https://g2-elite-gateway.2pw.workers.dev/api/mobile/*.

Home ​

GET /api/mobile/home ​

Home screen data: active seasons + upcoming games (next 7 days).

Teams ​

GET /api/mobile/teams ​

List teams. Query params: ?seasonId=, ?sportId=

GET /api/mobile/teams/:id ​

Team detail with full player roster.

GET /api/mobile/teams/:teamId/player-stats ​

Season stat totals for all players on a team. Returns sport-specific stats (baseball, football, soccer, basketball, volleyball).

Players ​

GET /api/mobile/players/search?name= ​

Search players by name (fuzzy, case-insensitive). Minimum 2 characters.

Schedule & Games ​

GET /api/mobile/schedule ​

Games list. Query params: ?teamId=, ?startDate=, ?endDate=

GET /api/mobile/games/:gameId/player-stats ​

Per-game stat events. Query param: ?teamId=

POST /api/mobile/games/:gameId/player-stats ​

Create a game stat event (scoring).

PATCH /api/mobile/games/:gameId ​

Update game fields: homeScore, visitorScore, homeJerseyColor, visitorJerseyColor, snackParentName, snackParentPhone, officialScorer.

GET /api/mobile/games/:gameId/team-history ​

Umpire intel: past reports for both teams in a game.

Standings ​

GET /api/mobile/standings?ageGroupId=&seasonId= ​

League standings by age group.

Sports, Seasons, Facilities ​

GET /api/mobile/sports ​

Active sports.

GET /api/mobile/seasons ​

Seasons. Query param: ?sportId=

GET /api/mobile/facilities ​

Facility list with addresses.

Parent-Player Linking ​

POST /api/mobile/parent-links ​

Link a parent to a child player. Body: { "playerId": "uuid" }

Get the current parent's linked children.

Coach ​

GET /api/mobile/coach/teams?coachName= ​

Find teams by coach name (for onboarding confirmation).

Chat (HTTP Polling) ​

GET /api/mobile/chat/rooms ​

List chat rooms. Query params: ?teamId=, ?type=

GET /api/mobile/chat/rooms/:roomId/messages ​

Message history. Query params: ?before= (pagination), ?limit=

POST /api/mobile/chat/rooms/:roomId/messages ​

Send a message. Body: { "content": "text", "replyToId": null }

GET /api/mobile/chat/rooms/:roomId/poll?since= ​

Poll for new messages since a timestamp.

Push Notifications ​

POST /api/mobile/push-token ​

Register an Expo push token. Body: { "token": "ExponentPushToken[...]", "platform": "ios", "teamId": "uuid" }

Internal Documentation — Do Not Share