# Hole Statistics

This endpoint is a live websocket endpoint that returns the statistics for all holes, on a per round basis for a given tournament. Currently the whole hole stats event is sent whenever a new RoundDetails packet is received from either FlightScope of PGA.

The authentication token provided will be required to make a connection to this websocket endpoint.

Once you have the API token, any further data that you send over the connection will be ignored.

N.B – This endpoint sends heartbeats in-between data packets to let you know that it is still connected.

This endpoint currently takes no request parameters

This can be found at - `wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/holestats`

### Hole Statistics via RestAPI

Note that the hole statistics websockets is available via Rest - `https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/holestats?rest=true`

### Hole Stats

**holeStats Object**

| Field        | Definition                           | Data Type                |
| ------------ | ------------------------------------ | ------------------------ |
| SeqNum       | Sequence number of the update packet | integer                  |
| holeStats    | See object docs                      | array                    |
| timestamp    | Time the update is sent              | time                     |
| tournamentId | Tournament ID                        | The id of the tournament |

```
{
  "holeStats": [** see object below **],
  "seqNum": 2082,
  "timestamp": "2025-02-16T23:24:58.869Z",
  "tournamentId": 1096
}
```

**holeStats Array**

| Field      | Definition                                           | Data Type |
| ---------- | ---------------------------------------------------- | --------- |
| holeNumber | Hole number                                          | integer   |
| parNumber  | Par value for hole                                   | integer   |
| rounds     | Hole statistics by round -view table below           | array     |
| total      | Hole Statistics for the tournament -view table below | array     |

```
{
  "holeStats": [
    {
      "holeNumber": 1,
      "parNumber": 4,
      "rounds": [** see object below **],
      "total": {** see object below **}
    },
    {
      "holeNumber": 2,
      "parNumber": 4,
      "rounds": [** see object below **],
      "total": {** see object below **}
    },
    {
      "holeNumber": 3,
      "parNumber": 3,
      "rounds": [** see object below **],
      "total": {** see object below **}
    }
```

The hole statistics are returned at round level and tournament level. The full list of statistics and their definitions are as follows:

| Statistic           | Definition                                                                | Data type |
| ------------------- | ------------------------------------------------------------------------- | --------- |
| averagePutts        | Average amount of putts players take to hole out                          | integer   |
| pars                | Total pars on a hole                                                      | integer   |
| birdies             | Total birdies on a hole                                                   | integer   |
| bogeys              | Total bogeys on a hole                                                    | integer   |
| doubleBogeysOrWorse | Total double bogeys or worse on a hole                                    | integer   |
| eaglesOrBetter      | Total eagles or better on a hole                                          | integer   |
| fairwaysHit         | Total number of times players hit the fairway on a hole from the tee shot | integer   |
| greensHit           | Total number of times players hit the green on a hole from the tee shot   | integer   |
| threePutts          | Total three putts (or worse) on a hole                                    | integer   |
| timesPlayed         | Total number of times the hole has been played by all players             | integer   |
| scoringAverage      | The scoring average on the hole                                           | integer   |

These statistics are outputted per hole, per round.

Sample output:

```
{
  "holeStats": [
    {
      "holeNumber": 1,
      "parNumber": 4,
      "rounds": [
        {
          "averagePutts": 1.708,
          "birdies": 4,
          "bogeys": 14,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 1,
          "fairwaysHit": 33,
          "greensHit": 43,
          "pars": 53,
          "roundNumber": 1,
          "scoringAverage": 4.111,
          "threePutts": 4,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.597,
          "birdies": 4,
          "bogeys": 15,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 0,
          "fairwaysHit": 41,
          "greensHit": 33,
          "pars": 53,
          "roundNumber": 2,
          "scoringAverage": 4.153,
          "threePutts": 0,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.463,
          "birdies": 12,
          "bogeys": 7,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 0,
          "fairwaysHit": 19,
          "greensHit": 30,
          "pars": 35,
          "roundNumber": 3,
          "scoringAverage": 3.907,
          "threePutts": 0,
          "timesPlayed": 54
        },
        {
          "averagePutts": 1.537,
          "birdies": 5,
          "bogeys": 8,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 30,
          "greensHit": 27,
          "pars": 40,
          "roundNumber": 4,
          "scoringAverage": 4.093,
          "threePutts": 1,
          "timesPlayed": 54
        }
      ],
      "total": {
        "": 6.306,
        "birdies": 25,
        "": 44,
        "": 1,
        "": 1,
        "fairwaysHit": 123,
        "greensHit": 133,
        "": 181,
        "scoringAverage": 16.264,
        "threePutts": 5,
        "timesPlayed": 252
      }
    },
    {
      "holeNumber": 2,
      "parNumber": 4,
      "rounds": [
        {
          "averagePutts": 1.817,
          "birdies": 7,
          "bogeys": 24,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 42,
          "greensHit": 45,
          "pars": 39,
          "roundNumber": 1,
          "scoringAverage": 4.268,
          "threePutts": 8,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.708,
          "birdies": 17,
          "bogeys": 5,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 0,
          "fairwaysHit": 49,
          "greensHit": 63,
          "pars": 50,
          "roundNumber": 2,
          "scoringAverage": 3.833,
          "threePutts": 0,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.556,
          "birdies": 15,
          "bogeys": 3,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 1,
          "fairwaysHit": 34,
          "greensHit": 44,
          "pars": 34,
          "roundNumber": 3,
          "scoringAverage": 3.778,
          "threePutts": 2,
          "timesPlayed": 54
        },
        {
          "averagePutts": 1.63,
          "birdies": 18,
          "bogeys": 5,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 27,
          "greensHit": 46,
          "pars": 30,
          "roundNumber": 4,
          "scoringAverage": 3.796,
          "threePutts": 1,
          "timesPlayed": 54
        }
      ],
      "total": {
        "averagePutts": 6.71,
        "birdies": 57,
        "bogeys": 37,
        "doubleBogeysOrWorse": 3,
        "eaglesOrBetter": 1,
        "fairwaysHit": 152,
        "greensHit": 198,
        "pars": 153,
        "scoringAverage": 15.675,
        "threePutts": 11,
        "timesPlayed": 252
      }
    },
    {
      "holeNumber": 3,
      "parNumber": 3,
      "rounds": [
        {
          "averagePutts": 1.778,
          "birdies": 5,
          "bogeys": 15,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 0,
          "greensHit": 48,
          "pars": 51,
          "roundNumber": 1,
          "scoringAverage": 3.167,
          "threePutts": 4,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.597,
          "birdies": 13,
          "bogeys": 6,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 0,
          "greensHit": 50,
          "pars": 52,
          "roundNumber": 2,
          "scoringAverage": 2.931,
          "threePutts": 3,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.685,
          "birdies": 11,
          "bogeys": 6,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 1,
          "fairwaysHit": 0,
          "greensHit": 45,
          "pars": 36,
          "roundNumber": 3,
          "scoringAverage": 2.87,
          "threePutts": 4,
          "timesPlayed": 54
        },
        {
          "averagePutts": 1.519,
          "birdies": 18,
          "bogeys": 2,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 1,
          "fairwaysHit": 0,
          "greensHit": 46,
          "pars": 33,
          "roundNumber": 4,
          "scoringAverage": 2.667,
          "threePutts": 0,
          "timesPlayed": 54
        }
      ],
      "total": {
        "averagePutts": 6.579,
        "birdies": 47,
        "bogeys": 29,
        "doubleBogeysOrWorse": 2,
        "eaglesOrBetter": 2,
        "fairwaysHit": 0,
        "greensHit": 189,
        "pars": 172,
        "scoringAverage": 11.634,
        "threePutts": 11,
        "timesPlayed": 252
      }
    },
    {
      "holeNumber": 4,
      "parNumber": 4,
      "rounds": [
        {
          "averagePutts": 1.708,
          "birdies": 6,
          "bogeys": 18,
          "doubleBogeysOrWorse": 3,
          "eaglesOrBetter": 0,
          "fairwaysHit": 31,
          "greensHit": 40,
          "pars": 45,
          "roundNumber": 1,
          "scoringAverage": 4.264,
          "threePutts": 3,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.875,
          "birdies": 3,
          "bogeys": 25,
          "doubleBogeysOrWorse": 4,
          "eaglesOrBetter": 0,
          "fairwaysHit": 36,
          "greensHit": 38,
          "pars": 40,
          "roundNumber": 2,
          "scoringAverage": 4.417,
          "threePutts": 11,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.667,
          "birdies": 3,
          "bogeys": 13,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 0,
          "fairwaysHit": 36,
          "greensHit": 28,
          "pars": 38,
          "roundNumber": 3,
          "scoringAverage": 4.185,
          "threePutts": 4,
          "timesPlayed": 54
        },
        {
          "averagePutts": 1.444,
          "birdies": 16,
          "bogeys": 3,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 31,
          "greensHit": 37,
          "pars": 34,
          "roundNumber": 4,
          "scoringAverage": 3.796,
          "threePutts": 0,
          "timesPlayed": 54
        }
      ],
      "total": {
        "averagePutts": 6.694,
        "birdies": 28,
        "bogeys": 59,
        "doubleBogeysOrWorse": 8,
        "eaglesOrBetter": 0,
        "fairwaysHit": 134,
        "greensHit": 143,
        "pars": 157,
        "scoringAverage": 16.662,
        "threePutts": 18,
        "timesPlayed": 252
      }
    },
    {
      "holeNumber": 5,
      "parNumber": 4,
      "rounds": [
        {
          "averagePutts": 1.722,
          "birdies": 0,
          "bogeys": 34,
          "doubleBogeysOrWorse": 3,
          "eaglesOrBetter": 0,
          "fairwaysHit": 40,
          "greensHit": 21,
          "pars": 35,
          "roundNumber": 1,
          "scoringAverage": 4.569,
          "threePutts": 7,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.694,
          "birdies": 10,
          "bogeys": 15,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 39,
          "greensHit": 45,
          "pars": 46,
          "roundNumber": 2,
          "scoringAverage": 4.097,
          "threePutts": 5,
          "timesPlayed": 72
        },
        {
          "averagePutts": 1.778,
          "birdies": 6,
          "bogeys": 12,
          "doubleBogeysOrWorse": 1,
          "eaglesOrBetter": 0,
          "fairwaysHit": 28,
          "greensHit": 37,
          "pars": 35,
          "roundNumber": 3,
          "scoringAverage": 4.148,
          "threePutts": 3,
          "timesPlayed": 54
        },
        {
          "averagePutts": 1.37,
          "birdies": 18,
          "bogeys": 5,
          "doubleBogeysOrWorse": 0,
          "eaglesOrBetter": 0,
          "fairwaysHit": 32,
          "greensHit": 33,
          "pars": 31,
          "roundNumber": 4,
          "scoringAverage": 3.759,
          "threePutts": 1,
          "timesPlayed": 54
        }
      ],
      "total": {
        "averagePutts": 6.565,
        "birdies": 34,
        "bogeys": 66,
        "doubleBogeysOrWorse": 5,
        "eaglesOrBetter": 0,
        "fairwaysHit": 139,
        "greensHit": 136,
        "pars": 147,
        "scoringAverage": 16.574,
        "threePutts": 16,
        "timesPlayed": 252
      }
    }
```
