Team Hole-By-Hole Score

This endpoint is a live websocket endpoint that returns individual team hole-by-hole scores. Currently the whole json is sent whenever there is an update – this will look to be optimised in the future to just send new data (deltas). You should receive a new update any time a player completes a hole, and their total strokes and “to par” score for the day changes.

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

This endpoint currently takes no request parameters, we aim to add them, and once we have they will be detailed here.

Endpoint URL

wss://dde-streams.imggaming.com/media/golf/tournaments/[ID]/teamholebyhole/[TeamID]

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

Sample Endpoint URL for Sentry Tournament of Champions 2019 for team 1: wss://dde-streams.imggaming.com/golf/tournaments/80/teamholebyhole/1

Hole by hole object

Field Name

Type

Description

tournamentID

integer

tournament ID

players

object

see object docs

timestamp

time

Time the update sent

seqNum

integer

Sequence number of the packet

teamNo

integer

team number of player (players are usually in a team of 1)

roundScores

object

see object docs

playOffScore

object

see object docs

isOfficial

boolean

Have the scores been officialised

{
  "tournamentId": 224,
  "players": [
      {
        *** see object below ***
      }
  ],
  "timestamp": "2020-06-05T17:14:07.415Z",
  "playOffScore": {
      *** see object below ***
  },
  "isOfficial": false,
  "seqNum": 82,
  "teamNo": 119,
  "roundScores": {
      *** see object below ***
   }
  }
}

Players object

Field Name

Type

Description

displayName

string

Name of the player

Country

string

Country of the player

isAmateur

boolean

True if player is an amateur

lastName

string

Last name

firstName

string

First name

id

integer

Player ID

  "players": [
    {
      "displayName": "Sami VALIMAKI",
      "country": "FIN",
      "isAmateur": false,
      "lastName": "VALIMAKI",
      "firstName": "Sami",
      "id": 6088
    }
  ],

roundScores Object

Field Name

Type

Description

1- 4+ playoff (round)

object

The object in which the round score information is included

 "roundScores": {
    "1": {** see object below **
    },
    "2": {** see object below **
    },
    "3": {** see object below **
    },
    "4": {** see object below **
    }
  }
}

roundScores 1-4 (round) Object

Field Name

Type

Description

holes

object

see object docs

inScore

object

see object docs

outScore

object

see object docs

roundPar

object

Includes value and roundPar of the par score for that round. See object docs

roundScore

object

Includes value and roundScore of the score for that team for that round. See object docs

roundToPar

object

Includes value and roundToPar for the team's overall to par score for that round. See object docs

 "roundScores": {
    "1": {      
      "holes": {** see object below **
      },
      "inScore": {** see object below **
      },
      "outScore": {** see object below **
      },
      "roundToPar": {** see object below **
      },
      "roundScore": {** see object below **
      },
      "roundPar": {** see object below **
    },
    "2": {      
      "holes": {** see object below **
      },
      "inScore": {** see object below **
      },
      "outScore": {** see object below **
      },
      "roundToPar": {** see object below **
      },
      "roundScore": {** see object below **
      },
      "roundPar": {** see object below **
    },
    "3": {      
      "holes": {** see object below **
      },
      "inScore": {** see object below **
      },
      "outScore": {** see object below **
      },
      "roundToPar": {** see object below **
      },
      "roundScore": {** see object below **
      },
      "roundPar": {** see object below **
    },
    "4": {
      "holes": {** see object below **
      },
      "inScore": {** see object below **
      },
      "outScore": {** see object below **
      },
      "roundToPar": {** see object below **
      },
      "roundScore": {** see object below **
      },
      "roundPar": {** see object below **
      }
    }
  }
}

Holes object

Field Name

Type

Description

1- 18 (holes)

object

see object docs

"holes": {
        "1": {** see object below**
        },
        "2": {** see object below**
        },
        "12": {** see object below**
        },
        "8": {** see object below**
        },
        "4": {** see object below**
        },
        "15": {** see object below**
        },
        "11": {** see object below**
        },
        "9": {** see object below**
        },
        "13": {** see object below**
        },
        "16": {** see object below**
        },
        "5": {** see object below**
        },
        "10": {** see object below**
        },
        "6": {** see object below**
        },
        "1": {** see object below**
        },
        "17": {** see object below**
        },
        "14": {** see object below**
        },
        "2": {** see object below**
        },
        "18": {** see object below**
        },
        "7": {** see object below**
        },
        "3": {** see object below**
        }
      },

1-18 holes object

Field Name

Type

Description

holeScore

integer

The to par score for that team in that hole

holePar

integer

The par score for that hole

holeOrder

integer

How many holes into their round is the team

holeYardage

integer

The length of the hole in yards

holeStrokes

integer

The number of strokes that the team did on that hole

        "1": {
          "holeScore": 0,
          "holePar": 3,
          "holeOrder": 8,
          "holeYardage": 168,
          "holeStrokes": 3
        },

inScore Object

      "inScore": {
        "par": 36,
        "score": -3,
        "strokes": 33,
        "yardage": 3486
      },

Field Name

Type

Description

par

integer

The par score for the last 9 holes of the course

score

integer

The to par score for the last 9 holes of the course

strokes

integer

The number of strokes that the team did on the last 9 holes of the course

yardage

integer

The length of the last 9 holes in yards

outScore Object

Field Name

Type

Description

par

integer

The par score for the first 9 holes of the course

score

integer

The to par score for the first 9 holes of the course

strokes

integer

The number of strokes that the team did on the first 9 holes of the course

yardage

integer

The length of the first 9 holes in yards

      "outScore": {
        "par": 36,
        "score": -3,
        "strokes": 33,
        "yardage": 3486
      },

roundToPar object

Field Name

Type

Description

value

integer

Player's score relative to par on the current round

displayValue

string

Player's score relative to par on the current round

      "roundToPar": {
        "value": -5,
        "displayValue": "-5"
      },

roundScore object

Field Name

Type

Description

value

integer

Player's score on the current round

displayValue

string

Player's score on the current round

      "roundScore": {
        "value": 67,
        "displayValue": "67"
      },

roundPar object

Field Name

Type

Description

value

integer

Score for a round required for a player to make par

displayValue

string

Score for a round required for a player to make par

      "roundPar": {
        "value": 72,
        "displayValue": "72"
      }

Sample Output

{
	"seqNum": 20,
	"timestamp": "2018-07-31T07:51:44.642Z",
	"players": [{
		"displayName": "Henrik STENSON",
		"country": "SWE",
		"isAmateur": false,
		"lastName": "STENSON",
		"firstName": "Henrik",
		"id": 123
	}],
	"roundScores": {
		"score": {
			"value": 68,
			"displayValue": "68"
		},
		"1": {
			"holes": {
				"12": {
					"holePar": 3,
					"holeYardage": 199,
					"holeScore": 0,
					"holeStrokes": 3
				},
				"8": {
					"holePar": 4,
					"holeYardage": 320,
					"holeScore": -1,
					"holeStrokes": 3
				},
				"4": {
					"holePar": 4,
					"holeYardage": 350,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"15": {
					"holePar": 4,
					"holeYardage": 360,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"11": {
					"holePar": 4,
					"holeYardage": 333,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"9": {
					"holePar": 5,
					"holeYardage": 550,
					"holeScore": -2,
					"holeStrokes": 3
				},
				"13": {
					"holePar": 4,
					"holeYardage": 380,
					"holeScore": -1,
					"holeStrokes": 3
				},
				"16": {
					"holePar": 4,
					"holeYardage": 355,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"5": {
					"holePar": 5,
					"holeYardage": 560,
					"holeScore": -1,
					"holeStrokes": 4
				},
				"10": {
					"holePar": 4,
					"holeYardage": 340,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"6": {
					"holePar": 4,
					"holeYardage": 300,
					"holeScore": -1,
					"holeStrokes": 3
				},
				"1": {
					"holePar": 4,
					"holeYardage": 400,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"17": {
					"holePar": 4,
					"holeYardage": 400,
					"holeScore": 1,
					"holeStrokes": 5
				},
				"14": {
					"holePar": 5,
					"holeYardage": 590,
					"holeScore": -1,
					"holeStrokes": 4
				},
				"2": {
					"holePar": 4,
					"holeYardage": 380,
					"holeScore": 0,
					"holeStrokes": 4
				},
				"18": {
					"holePar": 4,
					"holeYardage": 410,
					"holeScore": 1,
					"holeStrokes": 5
				},
				"7": {
					"holePar": 4,
					"holeYardage": 380,
					"holeScore": -1,
					"holeStrokes": 3
				},
				"3": {
					"holePar": 3,
					"holeYardage": 200,
					"holeScore": 1,
					"holeStrokes": 4
				}
			},
			"inScore": {
				"par": 37,
				"score": -5,
				"strokes": 32,
				"yardage": 3440
			},
			"outScore": {
				"par": 36,
				"score": 0,
				"strokes": 36,
				"yardage": 3367
			},
			"roundPar": {
				"value": 73,
				"displayValue": "73"
			},
			"roundScore": {
				"value": 73,
				"displayValue": "68"
			},
			"roundToPar": {
				"value": -5,
				"displayValue": "-5"
			},
		},
		"toPar": {
			"value": -5,
			"displayValue": "-5"
		}
	}

Playoffs

Playoff holebyholes work in the same way, to the above holebybhole, however they are sent as a new object with a playOffScore on the same level as roundScores.

See below for an example from the Turkish Open's playoff:

{
  "tournamentId": 168,
  "players": [{
    "displayName": "Tyrrell HATTON",
    "country": "ENG",
    "isAmateur": false,
    "lastName": "HATTON",
    "firstName": "Tyrrell",
    "id": 6
  }],
  "timestamp": "2019-12-10T11:11:09.723Z",
  "playOffScore": {
    "holes": [{
      "holeScore": -1,
      "holePar": 5,
      "holeOrder": 1,
      "holeYardage": 5,
      "holeStrokes": 4,
      "holeNo": 18
    }, {
      "holeScore": 0,
      "holePar": 5,
      "holeOrder": 2,
      "holeYardage": 5,
      "holeStrokes": 5,
      "holeNo": 18
    }, {
      "holeScore": -1,
      "holePar": 5,
      "holeOrder": 3,
      "holeYardage": 5,
      "holeStrokes": 4,
      "holeNo": 18
    }, {
      "holeScore": 0,
      "holePar": 5,
      "holeOrder": 4,
      "holeYardage": 5,
      "holeStrokes": 5,
      "holeNo": 18
    }],
    "inScore": {
      "par": 20,
      "score": -2,
      "strokes": 18,
      "yardage": 2040
    },
    "outScore": {
      "par": 0,
      "score": 0,
      "strokes": 0,
      "yardage": 0
    },
    "roundNo": 5,
    "roundToPar": {
      "value": -2,
      "displayValue": "-2"
    },
    "roundScore": {
      "value": 18,
      "displayValue": "18"
    },
    "roundPar": {
      "value": 20,
      "displayValue": "20"
    }
  },
  "seqNum": 9,
  "teamNo": 28,
  "roundScores": {}
}

Last updated