Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This web socket endpoint returns the event-by-event data PER TEAM PER ROUND. You will need to make a connection for each team once per round. All of that team’s event-by-event data for that round will play out, and you should close the connection upon receiving the RoundFinished packet. This endpoint is in conjunction with the Live Events REST endpoint – when a team starts their round they will be included in the response to the /liveevents endpoint, and at that point you should commence connecting to the web socket for that team’s round live stream.
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/round/{roundNo}/team/{teamId}
N.B – Please connect to wss://dde-staging-streams-golf.imggaming.com/golf/tournaments/99999/round/5/team/12 to get a sample one hole’s worth of data, including all of the mentioned keystrokes in the documentation.
Process for connecting to the web socket endpoints
Connect to SSL websocket address
Send JSON packet containing API token
Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
Receive heartbeat packets every 10 seconds to verify the connection is live
Receive data packets
Once you have the API token, any further data that you send over the connection will be ignored.
This endpoint currently takes no request parameters, we aim to add them, and once we have they will be detailed here.
There are a number of different types of packets that can be sent through this endpoint. They are detailed in the Round Details Scenarios section.
Note that the team round details websockets is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/round/{RoundNo}/team/{TeamID}?rest=true
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
Note that the hole statistics websockets is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/holestats?rest=true
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 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
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:
This web socket endpoint returns the event-by-event data PER MATCH. You will need to make a connection for every match played over the course of the tournament. Both (opposing) team’s event-by-event data for that match will play out, and you should close the connection upon receiving the RoundOfficial
packet. This endpoint is in conjunction with the Live Events REST endpoint – when a match starts it will be included in the response to the Live Events endpoint, and at that point you should commence connecting to the web socket for that match’s live stream.
N.B. this websocket will return data for all players in a match, each matchNo
is unique for the whole tournament e.g. there is no way of having a match in round 7 with the same matchNo
as in round 3 (even if the exact same players are playing in the match.)
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/matchdetails/{matchNo}
Process for connecting to the web socket endpoints
Connect to SSL websocket address
Send JSON packet containing API token
Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
Receive heartbeat packets every 10 seconds to verify the connection is live
Receive data packets
Once you have the API token, any further data that you send over the connection will be ignored.
This endpoint currently takes no request parameters, we aim to add them, and once we have they will be detailed here.
There are a number of different types of packets that can be sent through this endpoint. They are detailed in the Round & Match Details Scenarios section.
Key differences between Team Round Details & Team Match Details
stroke play feed keeps a log of a single player’s round, the match play output keeps a log of all players in the given match
Round Started/Finished/Official packets refer to a match opposed to a round but still has same naming conventions as for stroke play
groupNo
and matchNo
not included in events
matchType
: "Matchplay"
hole correction mode will return two packets, one for each team, the teamNo
will be provided on each packet. Both packets combined will cover all events for the entire hole.
different possible values for finishReason
Note that the Team Match details for matchplay websockets is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/matchdetails/{MatchNo}?rest=true
This endpoint is a live websocket endpoint that returns all leaderboard information at any one time. Currently the whole leaderboard is sent whenever there is an update – this will look to be optimised in the future. 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.
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, we aim to add them, and once we have they will be detailed here.
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/leaderboard
N.B. – Please use tournament ID “99999” to return you the sample data. This sample data is 3 leaderboard updates for 3 players towards the end of a round. The authentication token provided will be required to make a connection to this websocket endpoint.
Connect to SSL websocket address
Send JSON packet containing API token
Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
Receive heartbeat packets every 10 seconds to verify the connection is live
Receive data packets
Once you have the API token, any further data that you send over the connection will be ignored. This endpoint sends heartbeats in-between data packets to let you know that it is still connected.
Request Parameters This endpoint currently takes no request parameters, we aim to add them, and once we have they will be detailed here. For this example we will be using the following endpoint URL for The American Express 2025: wss://dde-streams.imggaming.com/media/golf/tournaments/1092/leaderboard
Note that the leaderboard websocket is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/leaderboard?rest=true
Leaderboard Object
Field Name
Type
Description
standings
object
see object docs
tournamentId
integer
Identifier for the tournament
timestamp
time
Time the update is sent
seqNum
integer
Sequence number of the update packet
currentRound
object
See object docs
roundStatuses
array
See array docs;
tournamentStatus
string
Possible values:
NotStarted, InProgress, PlayComplete, Suspended, Official
isPlaySuspendedOvernight
boolean
Flag will be set as true, if play is suspended over night.
Standings Array
Field Name
Type
Description
players
object
See object docs
holesThrough
object
See object docs
roundInfo
object
See object docs
roundInfo
object
See object docs
toParToday
object
See object docs
totalScore
object
See object docs
status
string
Player status, possible values: Possible values: Uncut, Cut, Withdrawn, Retired, Disqualified, DidNotStart, MadeCutButDidNotFinish, Other and Removed (*).
(*) Removed is currently not available.
currentRound
integer
Number of current round
teamNo
integer
What team the player is associated with (for individual tournaments players are in their own team of 1)
toPar
object
See object docs
position
object
See object docs
Players Array
Field Name
Type
Description
displayName
string
Player's display name
country
string
Country code of the player
isAmateur
boolean
True if player is an amateur
lastName
string
Last name
firstName
string
First name
id
integer
Player's identifier
gender
string
Gender of player
Holes Through Object
Field Name
Type
Description
value
integer
The number of holes that a player has completed at this point
displayValue
string
The number of holes that a player has completed at
roundInfo object
Field Name
Type
Description
Value (1)
object
Round 1 - see value object table
Value (2)
object
Round 2 - see value object table
Value (3)
object
Round 3 - see value object table
Value (4)
object
Round 4 - see value object table
Value (401)
object
Playoff round 1 after 4th round. The playoff numbering convention is "{round # after which the playoff is held}0{round # of playoff} "
roundInfo value object (including round values 1, 2, 3, 4, 401+)
Field Name
Type
Description
score
object
See object docs
toPar
object
See object docs
teeTime
string
Time golfer scheduled to tee off
startHole
integer
Number of the hole the player begins the round on (typically only 1 or 10)
roundFinishedPosition
integer
Overall tournament standings at the end of a given round
roundFinishedIsTied
boolean
Tie indicator for roundFinishedPosition
Round Info - Score Object
Field Name
Type
Description
value
integer
The overall number of strokes the player has taken in the selected round, updated a the end of the hole
displayValue
string
The overall number of strokes the player has taken in the selected round, updated a the end of the hole
Round info - toPar object
Field Name
Type
Description
value
integer
The overall "to par" score so far for the tournament for a given player. Updated after every hole finishes
displayValue
string
The overall "to par" score so far for the tournament for a given player. Updated after every hole finishes.
Round info - toParToday object
Field Name
Type
Description
value
integer
The overall "to par" score so far for the day for that player for the selected round. Updated after every hole finishes
displayValue
string
The overall "to par" score so far for the day for that player for the selected round. Updated after every hole finishes
Round info - totalScore object
Field Name
Type
Description
value
integer
The overall number of strokes the player has taken in the tournament to date, updated at the end of the round
displayValue
string
The overall number of strokes the player has taken in the tournament to date, updated at the end of the round
Position object
Field Name
Type
Description
order
integer
The unique order of that player in the leaderboard. To be used to order the players from top to bottom
value
integer
The player's position in the leaderboard. Players can have the same value
format
string
Either "absolute" if only player in that position, or "tied" is sharing the position with another player
displayValue
string
The player's position in the leaderboard - will include a "T" if tied
Current round object
Field Name
Type
Description
number
integer
Number of the current round
name
string
Name of the current round
cutline
object
Includes “required, a boolean field indicating if there is a cut on the current round or not, and “cut”, which is the current score that players need to be above to avoid the cut.
Cut line object
Field Name
Type
Description
cut
integer
Cut line score
required
boolean
Is it required to show a cut line true/false
roundStatus Array
An array containing multiple objects, each object contains the following:
Field Name
Type
Description
number
integer
Number of the current round
status
string
Status of the round. possible values:
GroupingsOfficial, InProgress, Maintenance, NotStarted, Official, PlayComplete, Suspended, Cancelled
Sample Response
This endpoint is a live websocket endpoint that returns the full set up player statistics rankings metrics for all rounds in a given tournament. Currently the whole player stats event is sent whenever a new RoundDetails packet is received from either Sport Services (formerly FlightScope), or 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:
Scoring = wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/scoring
Approach Play = wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/approach
Short Game = wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/shortgame
Putting = wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/putting
Driving = wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/driving
Note that the player statistics ranking websockets are available via Rest:
Scoring - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/scoring?rest=true
Approach - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/approach?rest=true
Shortgame - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/shortgame?rest=true
Putting - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/putting?rest=true
Driving - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/stats/driving?rest=true
)
Full list of statistics
Scoring
teeToGreenStrokesGained
Birdies or Better
Bogeys or Worse
Par 3 scoring
Par 4 scoring
Par 5 scoring
Driving
offTheTeeStrokesGained
Accuracy
Distance
driverUsage
bigMisses
Longest Drive
Approach
approachStrokesGained
Greens in Regulation
Green under Regulation
10-20ft
20-30ft
30ft+
Chances inside 10ft
Chances inside 20ft
Chances inside 30ft
offGreen
Short game
aroundTheGreenStrokesGained
fairway
fringe
other
rough
sand
scrambleFromFairwayFringe
screambleFromRoughHazard
Scrambles
Sand saves
Scrambles Other
Putting
puttingStrokesGained
Total putts
longest holed putt
Putts holed distance
putts per GIR
three putts
Each of these statistics has the following qualifying components:
Tournament
Total
Divisor
Rank (the overall player rank across a tournament for each metric within each discipline)
Field Average (the tournament average for each metric within each discipline)
Round
Total
Divisor
Rank (the specific round player rank across a tournament for each metric within each discipline)
Field Average (the round average for each metric within each discipline)
These qualifying components have different meanings that are dependent on the context. These are outlined along with the definitions of each statistic.
Definitions
Stat
Total
Data type for total
Divisor
Birdies or better
Total number of completed holes where the number of strokes is less than Par for that hole
integer
Holes Played
integer
Bogeys or worse
Total number of completed holes where the number of strokes is more than Par for that hole.
integer
Holes Played
integer
Par 3 scoring
Total Score to Par of all holes that are Par 3s. So if a player scores 4, 5, 3, 5 or the 4 Par 3s, they will be “+5”.
integer
Holes Played
integer
Par 4 scoring
Total Score to Par of all holes that are Par 4s. So if a player scores 4, 5, 3, 5 or the 4 Par 4s, they will be “+1”
integer
Holes Played
integer
Par 5 scoring
Total Score to Par of all holes that are Par 5s. So if a player scores 4, 5, 3, 5 or the 4 Par 5s, they will be “-3”.
integer
Holes Played
integer
Driving accuracy
Total number of Fairways found from Shot 1 on Par 4s and 5s.
integer
Total number of Par 4 and 5s played.
integer
Driving distance
Average Drive Distance of all par 4/5s. Limit to one decimal place
float
Number of driving holes played (*)
integer
Longest Drive
The longest distance from all tee shots on Par 4 and 5 holes for the round
float
Number of driving holes played (*)
Driver Usage
The number of Par 4/5 holes played where the tee shot Club Type is a Driver
float
Number of driving holes played (*)
Greens in Regulation
Total number of Greens in Regulation. Defined as finding the Green or Hole on or before the (n-2)th stroke.
integer
Total number of Holes Played
integer
Birdie Chances 10ft
Total number of Greens in Regulation, where the distance left to the hole is 10ft or 3 metres. If they mad an Eagle or Albatross this should count as a birdie chance hole
integer
Total number of holes played so far
integer
Birdie Chances 20ft
Total number of Greens in Regulation, where the distance left to the hole is 20ft or 6 metres. If they made an Eagle or Albatross this should count as a birdie chance hole.
integer
Total number of holes played so far
integer
Birdie Chances 30ft
Total number of Greens in Regulation, where the distance left to the hole is 30ft or 9 metres. If they made an Eagle or Albatross this should count as a birdie chance hole.
integer
Total number of holes played so far
integer
Sand Saves
Total number of holes where the “Greenside Bunker” has been found and the number of putts is 1 or 0.
integer
Total number of holes where the Greenside Bunker has been found.
integer
Scrambles
Total number of holes where the Green in Regulation is false but Score to Par 0 or -1.
integer
Total number of holes where the Green in Regulation is false
integer
Total Putts
Total number of strokes where the previous lie was “Green”.
integer
Total number of Holes Played
integer
Putts per GIR
Total number of strokes where the previous lie was “Green”. Only on holes where Green in Regulation was also made.
integer
Total number of Greens in Regulation
integer
Putts Holed Distance
Total distance of strokes that are defined as a Putt where the final lie was the Hole. Provide this value in “Meters”, with one decimal place.
float
Total number of Holes Played
integer
holeOuts
Total sum of any time a ball is holed where the previous surfaceType does NOT equal Green.
integer
Total number of holes Played
integer
threePutts
Total count of 3 or more putts on a hole.
integer
Total number of holes Played
integer
penaltyShots
Total sum of Penalty shots in a round.
integer
Total number of holes Played
integer
teeToGreenStrokesGained
Sum of Stroke Gained value for teeToGreen.
float
Total number of strokes considered to be teeToGreen.
integer
offTheTeeStrokesGained
Sum of Stroke Gained value for offTheTee.
float
Total number of strokes considered to be offTheTee.
integer
approachStrokesGained
Sum of Stroke Gained value for approach.
float
Total number of strokes considered to be approach.
integer
greensUnderRegulation
Total number of Greens Under Regulation. Defined as reaching the green in one on a par 4 (off the tee) or Reaching the green in two on a par 5.
integer
Total number of holes Played
integer
20-30ft
Total number of Birdie or Better Chances Inside 20 - 30 ft
integer
Total number of holes Played
integer
30ft+
Total number of Birdie or Better Chances inside 30 ft+
integer
Total number of holes Played
integer
10-20ft
Total number of Birdie or Better Chances Inside 10 - 20 ft
integer
Total number of holes Played
integer
puttingStrokesGained
Sum of Stroke Gained value for putting
float
Total number of strokes considered to be putting.
integer
sand
Total number of times the ball has ended up in the sand
integer
Total number of holes Played
integer
aroundTheGreenStrokesGained
Sum of Stroke Gained value for aroundTheGreen.
float
Total number of strokes considered to be aroundTheGreen.
integer
fringe
Total number of times the ball has ended up on the fringe.
integer
Total number of holes Played
integer
scrambleFromSand
Total number of scrambling success (inside 40 yards) where the surface type is either fairway bunker or greenside bunker.
integer
Total number of scrambling opportunity from either fairway bunker or greenside bunker.
integer
rough
Total number of times the ball has ended up in the rough.
integer
Total number of holes Played
integer
fairway
Total number of times the ball has ended up on the fairway
integer
Total number of holes Played
integer
scrambleFromFairwayFringe
Total number of scrambling success (inside 40 yards) where the surface type is either fairway or fringe.
integer
Total number of scrambling opportunity from either fairway or fringe.
integer
shortGame - other
Total number of times the ball has ended up in an area other then - Fairway and fringe (greenside bunker and fairway bunker) IMrough and primRough
integer
Total number of holes Played
integer
scrambleFromRoughHazard
Total number of scrambling success (inside 40 yards) where the surface type is either rough or other.
integer
Total number of scrambling opportunity from either rough or other.
integer
Sample json output (Putting)
This endpoint is a live WebSocket endpoint that returns the full set up player statistics for all rounds in a given tournament.
This endpoint is a live websocket endpoint that returns the full set up player hole statistics for all rounds in a given tournament. Currently the whole player 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
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/playerstats
This can be found at - https://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/playerstats
Full list of Hole stats for each player
Holes
drivingDistance
fairway
gir
holeNo
holedPuttDistance
bunker
putts
rough
Playerstats Object
Field
Definition
Data Type
SeqNum
Sequence number of the update packet
integer
teamsStatistics
see object docs
object
timestamp
Time the update is sent
time
tournamentId
tournament ID
The id of the tournament
teamsStatistics Object
Field
Definition
Data Type
players
see object docs
object
teamsStatistics
see object docs
object
teamId
team id for the player
integer
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
gender
string
gender of player
id
integer
Player ID
holeStatistics Object
There is a subset of player stats that provides per round information about the player's performance on a limited number of statistics. These are as follows:
Field
Definition
Data Type
holeNo
The number of the hole
integer
gir
Did the player make a Greens in Regulation. Defined as finding the Green or Hole on or before the (n-2)th stroke.
boolean
holedPuttDistance
From what distance did a player hole out
float
fairway
Did the player hit the fairway from the teeshot
boolean
drivingDistance
Driving distance
float
bunker
Did the player hit the bunker
boolean
rough
Did the player hit the rough
boolean
putts
Number of putts to hole the ball
integer
teamsStatistics sample json output:
This is a live websocket endpoint that returns hole by hole scores for a match. The whole json is sent whenever there is an update. You should receive a new update when a hole is completed.
The authentication token provided will be required to make a connection to this websocket endpoint.
This web socket is the match play equivalent to Team Hole by Hole Score web socket for stroke play.
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/matchscore/{matchNo}
Same as Team Hole-by-Hole Score
Same as Team Hole-by-Hole Score
Note that the Match score websockets is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{tournamentId}/matchscore/{MatchNo}?rest=true
Field Name
Type
Description
OPTIONAL
tournamentId
integer
tournament identifier
timestamp
time
Time at which the scorecard feed was generated in UTC
teamScores
array
see object docs
isOfficial
boolean
Indicates whether or not the scorecard updates for the given player are complete. Occurs when a player has completed competing in the tournament either from retiring or finishing all rounds.
seqNum
integer
sequence number of the packet
scoringType
string
[Optional] is either "strokes" or "points"
YES
winningTeamNo
integer
identifier of the match winner; will be null until a winner is defined
YES
matchId
integer
match identifier
Field Name
Type
Description
Optional
matchTotalToPar
integer
[Optional] Integer, Score to par calculated for finished holes
YES
players
array
see object docs
matchPoints
Decimal
[Optional] Decimal, Score for team in match, usually it will be sum of points of MatchHoleScore points (available only for ScoringType set to Points)
YES
matchStrokes
integer
[Optional] Integer, Number of strokes taken in that match - based only on completed holes
YES
holeScores
array
see object docs
teamNo
integer
Team identifier
Field Name
Type
Description
Optional
cumulativeScoreToPar
integer
[Optional] Integer, Contains cumulative number of strokes compared to par of current and previous holes
YES
yardage
integer
The length of the hole in yards
par
integer
Par value for the given hole
holeFinished
boolean
flag to determine if a given hole is finished
scoreToPar
integer
[Optional] integer, score to par on particular hole. This value will be empty when hole was not played yet or conceded
YES
points
double
The accumulated points score for that match
YES
holeFinishedBy
string
The reason for which the hole ended; possible values:
"BallHoled" "HoleWon" "LossOfHole" "HoleConceded"
YES
cumulativeHolesAdvantage
string
YES
strokes
string
YES
holeNo
integer
Number of the hole
playOffSequence
integer
A counter indicating which playoff hole number the given hole pertains to, Will be 0 for non-playoff holes, and will count up from 1 for playoff holes
PlayerScores
array
Score per player on a given hole, this will be sent when teams are playing best ball (Four Balls) format so as to know the individual player score as well as the total team score
YES
Field Name
Type
Description
displayName
string
Name of the player
country
string
Country (3 upper case letters)
isAmateur
boolean
True if player is an amateur
lastName
string
Last name
firstName
string
First name
id
integer
Player ID
gender
string
gender of the player
Field
Type
Description
Optional
Strokes
integer
number of strokes on a given hole
ScoreToPar
integer
score to par on a given hole
id
integer
player ID
isBallHoled
Boolean
Flag indicating whether the ball was holed
Please find below all possible values for cumulativeHolesAdvantage
holescores.strokes field is a string and indicates the number of strokes taken for the given hole. Possible values are any valid integer, as well as "c" and "-" .
Scenarios
Team holes the ball - strokes value will be an integer
Team concedes hole - strokes value will be "c"
Team wins hole but does not hole the ball - strokes value will be "-"
Team loses hole without conceding the hole or holing the ball - strokes value will be "-"
*For more information you can refer to holeScores.holeFinishedBy field (details below.)
HoleScores.playerScores.strokes field is an integer and indicates the number of strokes a player had on a hole during a fourball format match (aka better ball.)
To be clear, the overarching score for the team will be taken from Holescores object, but we suggest drilling down to HoleScores.playerScores object for UI implementations as this information is important to the end user.
Suggested business logic for fourballs (aka better ball):
GIVEN fourballs scorecard
WHEN holeScores.HoleFinishedBy
is "HoleConceded" for a team
THEN display "c" for both players' strokes score on the scorecard for that team
GIVEN fourballs scorecard
WHEN holeScores.HoleFinishedBy
is "LossOfHole" for a team
THEN display "-" for both players' strokes score on the scorecard for that team
GIVEN fourballs scorecard
WHEN holeScores.HoleFinishedBy
is "HoleWon" for a team
THEN display "-" for both players strokes score on the scorecard for that team
GIVEN fourballs scorecard
WHEN holeScores.HoleFinishedBy
is "BallHoled" for a team
THEN display playerScores.strokes
IF "playerScores.isBallHoled" : "true"
AND display "-" IF "playerScores.isBallHoled" : "false"
N.B. currently do not support 'gimmes' i.e. if a player is given a concession stroke from the other player it will go down as a successful stroke or "ballHoled".
For example, player A has 2 inches to make a par putt on a par 3 and player B says to the player to pick up his ball and take a 'gimme' it will go down as 3 strokes and "holeFinishedBy" as "BallHoled".
No Playoffs in Ryder Cup
Two scenarios need to be addressed.
Scenario: A play-off match is required to determine the winner of a pool.
Play-off matches will have same match score packet format as regular matches, along with unique matchNo
. Play-off matches will finish as soon as there is a winner, i.e. if the first hole is tied then a second hole is played etc. until there is a winner.
2. Scenario: There is no winner in a knock out match after 18 holes
In the case of a match not being settled in 18 holes, extra holes will be played until there is a winner. The client can determine when to use play-off logic based on the playOfSequence
field which will be "1" in the case of an extra play-off hole.
This endpoint is a live web socket endpoint that returns a list of every match in a Match Play Tournament and the current live score / result of this match.
This is to be used in place of Leaderboard web socket for match play tournaments.
The authentication token provided will be required to make a connection to this web socket endpoint.
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/matchplayleaderboard
Same as Leaderboard
Same as Leaderboard
Note that the matchplay leaderboard websockets is available via Rest - https://dde-api.data.imgarena.com/media/golf/tournaments/{EventID}/matchplayleaderboard?rest=true
Field Name
Type
Description
Possible Values
tournamentId
integer
Unique overall id of the Tournament
integer
timestamp
time stamp
Timestamp of message creation
time stamp
finished
boolean
checks if tournament status is official
boolean
seqNum
integer
Sequence number of the message
integer
currentRound
integer
Number of the current round. If tournament hasn’t started yet, this value will be 1
integer
tournamentStatus
string
Current status of the tournament
"NotStarted" "InProgress" "PlayComplete" "Official"
"PlaySuspended"
roundStatuses
array
see object docs
NA
matches
array
see object docs
NA
TournamentScores
object
see object docs
NA
YES
Field Name
Type
Description
Possible Values
number
integer
Number of the round
integer
status
string
Enum value for Round Status
"GroupingsOfficial"
"InProgress"
"Maintenance"
"NotStarted"
"Official"
"PlayComplete"
"Suspended"
"Cancelled"
Field Name
Type
Description
Possible Values
Optional
poolNo
integer
Number of the pool for the given match
integer
YES
courseId
Integer
Id of the Course for which the match will be played on
integer
matchNo
integer
The incremental number of the match throughout the Tournament
N.B. each matchNo
is unique per tournament
integer
poolMatchPosition
integer
Match position within the event
integer
YES
teams
array
see object docs below
NA
roundNo
integer
Incremental number of the Round
integer
roundName
string
Name of the round
matchStatus
string
Status of the match
"Not Started" "In Progress" "MatchComplete"
startHole
integer
Hole on which the match started; typically, either 1 or 10
integer
teeTime
time stamp
Match’s starting tee time with UTC offset
time stamp
Field Name
Type
Description
Possible Values
Optional
players
array
see object docs
NA
finaMatchScore
string
The player’s final score in the match
matchLeader
integer
Indicator of whether or not player is leading in the given match
"1" or "0"
seed
integer
Player’s seed at the start of the tournament
integer
YES
matchWinner
boolean
Flag indicating whether or not the player is the match winner
"true" or "false"
totalPoolPoints
decimal
Final sum of points from pool play matches (Number of pool play wins + [0.5 * Number of pool play ties])
decimal
YES
currentMatchScore
string
The player’s current score in the match
totalPoolHalves
integer
Final number of pool play match ties
integer
YES
poolPlayGroupNo
integer
Player’s pool number used in the first 3 rounds (group stage)
integer
YES
totalPoolLosses
integer
Final number of pool play match losses
integer
YES
poolWinner
boolean
Flag indicating whether or not the player won their pool play
"true" or "false"
YES
poolWins
integer
Current number of pool play match wins
integer
YES
teamNo
integer
Unique number of the Team during the Match Play tournament
integer
previousMatch
integer
Number of the player’s previous match
integer ("0" for round 1)
YES
thru
string
Number of holes played in round
integer, "-" or "F" if match is complete
isTied
integer
Flag indicating whether or not the player is tied for their position
"1" or "0"
poolLosses
integer
Current number of pool play match losses
integer
YES
position
integer
Player’s numerical ranking in the tournament
integer
YES
totalPoolWins
integer
Final number of pool play match wins
integer
YES
poolPoints
decimal
Current sum of points from pool play matches (Number of pool play wins + 0.5 * Number of pool play ties)
decimal
YES
poolHalves
integer
Current number of pool play match ties
integer
YES
Field Name
Type
Description
id
integer
Unique id of a Player
country
string
FIFA country code, 3 uppercase letters
lastName
string
Last known name of the Player
firstName
string
First known name of the Player
Field Name
Type
Description
Optional
scoreToWin
Integer
the score a squad needs to reach in order to win tournament
host
boolean
indicates if the squad is hosting the tournament
score
decimal
Total tournament score
squadName
string
name of the squad, either "Europe" or "USA"
SquadNo
integer
indicator of the squad
projectedScore
decimal
projected score
Please find below all possible values and important details for roundName
, currentMatchScore
& finalMatchScore
Field Name
Possible Values
roundName
Round1, Round2, Round3, Round of 16, Quarterfinals, Semifinals, Finals, Round for Playoff #1, Friday Foursomes, Friday Fourballs, Saturday Foursomes, Saturday Fourballs, Sunday Singles
currentMatchScore
T, 1up, 2up, 3up, 4up, 5up, 6up, 7up, 8up, 9up, 10up, 1dn, 2dn, 3dn, 4dn, 5dn, 6dn, 7dn, 8dn, 9dn, 10dn
FinalMatchScore
The possible values and formats for finalMatchScore
vary depending on the scenario:
Round finishes after 18 holes: possible values are equal to those found in the MatchScore section above (e.g. 1up, 2up)
Round finishes after more than 18 holes: the final match score value will read ‘[number of holes played] HOLES’. For example, if 20 holes are required to declare a winner, then the final match score will read “20 HOLES”
Round finishes in less than 18 holes: the final match score value will be of the format “[difference between player wins and losses] & [number of holes not played]”. 2 examples below:
Final Match Score of “3 & 1” means that the players ended the round when one player was up by 3 with 1 hole left.
Player A: won 4 holes, lost 1 hole, tied 12 holes -> 17 holes played total
Player B: won 1 hole, lost 4 holes, tied 12 holes -> 17 holes played total
Final Match Score of “5 & 4” means the players ended the round when one player was up by 5 with 4 holes left.
Player A: won 2 holes, lost 7 holes, tied 5 holes -> 14 holes played total
Player B: won 7 holes, lost 2 holes, tied 5 holes -> 14 holes played total
Can be "C" if player concedes the match before a ball is struck
No Playoffs in Ryder Cup
Two scenarios need to be addressed.
Scenario: A play-off match is required to determine the winner of a pool.
Play-off matches will have same format as regular matches in the match score packet, along with unique matchNo
but will be played in a round with roundNo
: "301". All play-off matches will appear in this same round. Play-off matches will finish as soon as there is a winner, i.e. if the first hole is tied then a second hole is played etc. until there is a winner. It must also be noted that, in the case of a play-off, a new schedule packet will be sent to account for the extra round.
2. Scenario: There is no winner in a knock out match after 18 holes
Implementation will not be affected other than the fact that more than 18 holes will be played and the finalMatchScore
will have a different format as detailed in the Categorical Fields section.
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.
wss://dde-streams.data.imgarena.com/media/golf/tournaments/{tournamentId}/teamholebyhole/{teamID}
The authentication token provided will be required to make a connection to this websocket endpoint.
Sample Endpoint URL for The American Express 2025 for team 1:
wss://dde-streams.data.imgarena.com/media/golf/tournaments/1092/teamholebyhole/1
https://dde-streams.data.imgarena.com/media/golf/golf/tournaments/{tournamentId}/teamholebyhole/{TeamID}?rest=true
Hole by hole object
Players object
roundScores Object
roundScores 1-4 (round) Object
Holes object
1-18 holes object
inScore Object
outScore Object
roundToPar object
roundScore object
roundPar object
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 Sony Open in Hawaii 2025 playoff:
See
The team’s score in the match at the time that the given hole was completed, see
Number of strokes taken for the given hole; if a hole is conceded, the strokes value is set to "c", can also be "-". see
see
see
see
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. Only for playoff rounds
isOfficial
boolean
Have the scores been officialised
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
gender
string
Gender of player
id
integer
Player ID
Field Name
Type
Description
1- 4+ playoff (round)
object
The object in which the round score information is included
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
Field Name
Type
Description
1- 18 (holes)
object
See object docs
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
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
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
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
Field Name
Type
Description
value
integer
Player's score on the current round
displayValue
string
Player's score on the current round
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