Games

is_finished: when a game is set to true with either via a POST or PATCH it currently triggers a full rebuild of the player stats.

Temporarily this can also be manually triggered via GET /v0/updateStats.

Create a game

POST /games

Request:

{
  "home_team_id": 1,
  "away_team_id": 2,
  "start_time": "2026-03-10T19:30:00-05:00",
  "is_finished": false
}

Response:

{
  "game": {
    "id": 2,
    "home_team_id": 1,
    "away_team_id": 2,
    "start_time": "2026-03-10T19:30:00-05:00",
    "is_finished": false
  }
}

Get all games

GET /games

Response:

{
  "games": [
    {
      "id": 1,
      "home_team": "NYR",
      "away_team": "SJS",
      "home_team_id": 1,
      "away_team_id": 2,
      "is_finished": false,
      "start_time": "2026-03-11T00:30:00Z"
    },
    {
      "id": 2,
      "home_team": "NYR",
      "away_team": "SJS",
      "home_team_id": 1,
      "away_team_id": 2,
      "is_finished": true,
      "start_time": "2026-03-11T00:30:00Z"
    }
  ]
}

Edit a game

PATCH /games/{id}

Partial updates are accepted

Request:

{
  "home_team_id": 1,
  "away_team_id": 3,
  "is_finished": true
}

Response:

{
  "game": {
    "id": 2,
    "home_team_id": 1,
    "away_team_id": 3,
    "start_time": "2026-03-10T19:30:00-05:00",
    "is_finished": true
  }
}

View a game

GET /games/{id}

Response:

{
  "game": {
    "home_team": "NYR",
    "away_team": "SJS",
    "home_team_id": 1,
    "away_team_id": 2,
    "is_finished": false,
    "start_time": "2026-03-11T00:30:00Z",
    "game_events": [
      {
        "id": 1,
        "event_number": 1,
        "period": 2,
        "clock_seconds": 12,
        "event_type": "penalty",
        "situation": "EV",
        "team_id": 2
      },
      {
        "id": 2,
        "event_number": 2,
        "period": 2,
        "clock_seconds": 12,
        "event_type": "penalty",
        "situation": "EV",
        "team_id": 2
      }
    ]
  }
}