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
Sequence number of the packet
team number of player (players are usually in a team of 1)
Have the scores been officialised
Copy {
"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
True if player is an amateur
Copy "players": [
{
"displayName": "Sami VALIMAKI",
"country": "FIN",
"isAmateur": false,
"lastName": "VALIMAKI",
"firstName": "Sami",
"id": 6088
}
],
roundScores Object
The object in which the round score information is included
Copy "roundScores": {
"1": {** see object below **
},
"2": {** see object below **
},
"3": {** see object below **
},
"4": {** see object below **
}
}
}
roundScores 1-4 (round) Object
Includes value and roundPar of the par score for that round. See object docs
Includes value and roundScore of the score for that team for that round. See object docs
Includes value and roundToPar for the team's overall to par score for that round. See object docs
Copy "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
Copy "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
The to par score for that team in that hole
The par score for that hole
How many holes into their round is the team
The length of the hole in yards
The number of strokes that the team did on that hole
Copy "1": {
"holeScore": 0,
"holePar": 3,
"holeOrder": 8,
"holeYardage": 168,
"holeStrokes": 3
},
inScore Object
Copy "inScore": {
"par": 36,
"score": -3,
"strokes": 33,
"yardage": 3486
},
The par score for the last 9 holes of the course
The to par score for the last 9 holes of the course
The number of strokes that the team did on the last 9 holes of the course
The length of the last 9 holes in yards
outScore Object
The par score for the first 9 holes of the course
The to par score for the first 9 holes of the course
The number of strokes that the team did on the first 9 holes of the course
The length of the first 9 holes in yards
Copy "outScore": {
"par": 36,
"score": -3,
"strokes": 33,
"yardage": 3486
},
roundToPar object
Player's score relative to par on the current round
Player's score relative to par on the current round
Copy "roundToPar": {
"value": -5,
"displayValue": "-5"
},
roundScore object
Player's score on the current round
Player's score on the current round
Copy "roundScore": {
"value": 67,
"displayValue": "67"
},
roundPar object
Score for a round required for a player to make par
Score for a round required for a player to make par
Copy "roundPar": {
"value": 72,
"displayValue": "72"
}
Sample Output
Copy {
"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:
Copy {
"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": {}
}