Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This section contains information on the different round & match details scenarios that can occur. You can find more details on the dedicated page for each scenario on the menu to the left.
We send a heartbeat packet every 20 seconds to indicate that connection to the websocket is healthy. If you do not receive a heartbeat, your connection may not be healthy and we would recommend re-connecting.
Heartbeat Object
Field Name
Type
Description
timestamp
time
The time of the heartbeat
eventelementType
string
The type of event, in this case always “heartbeat”
message
string
The heartbeat message
Sample Response
Indicates a team has started to play a particular hole.
Hole Started Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupId
integer
[Optional] The group ID of the player who did the event
groupNo
integer
The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event
state
object
The type of status update, in this case always Hole Started.
roundNo
integer
The round number
Sample Event Packet:
Indicates a team has finished playing a particular hole.
Hole Finished Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupId
integer
[Optional] The group ID of the player who did the event
groupNo
integer
The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event
state
string
The type of status update, in this case always Hole Finished
finishReason
string
“finishReason” is a string value that explains why a Hole was finished, can be BallHoled, Disqualified, Withdrawn.
roundNo
integer
Round number
score
array
See object below
scorePending
boolean
if score is pending
timestampReceived
date
TThe server time of the moment that this packet has been processed
Score Object
Field Name
Type
Description
currentHolePar
integer
Current hole score
currentHoleStrokes
integer
current strokes on hole
currentRoundScoreToPar
string
Current round to par score
overallScoreToPar
string
overall score
Sample Event Packet:
This packet will be sent whenever it is apparent that the score for a particular hole is incorrect, after scoring for that hole has finished. This can happen because of manual error by the scorer or for many other reasons.
This packet will indicate which hole has the issue, and what the score should have been for that hole.
Correction Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case HoleScoreUpdate
corrections
object
contains all the parts of the packet that have been changed, and their new values, i.e the new score values in this instance
groupId
integer
the group ID of the player who did the event
roundNo
integer
The current round numer
eventCorrectedIdentifier
object
See object below
timestampReceived
date
The server time of the moment that this packet has been processed
eventCorrectedIdentifier Object
This contains information unique to the event that is being corrected – use this information to reference the previous packet so you know what packet and what data to update.
Field Name
Type
Description
hole
integer
The hole in which the event took place that is being corrected
playerId
integer
The player ID of the player who did the event that is being corrected
Sample Event Packet
In this example an Approximate Lie packet has been corrected – The distance to pin and shot distance are the details which have been updated.
This event will be sent following when a player hits a provisional ball – it will indicate which of the provisional balls was chosen and how the player will continue their round.
Will be the event that follows any stroke events that have the provisionalIndex NOT set to 0.
ProvisionalBallSelected Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupNo
integer
[Optional] The group number of the player who did the event
groupId
integer
The group ID of the player who did the event
teamNo
integer
The team ID of the player who did the event
player
array
See object below
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case ProvisionalBallSelected
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
penaltyStrokes
integer
The number of penalty strokes attributed to that particular provisional ball that was selected
ballLie
array
See object below
provisionalResult
int
the number of strokes assigned to that provisional ball selected
Ball Lie Object
Field Name
Type
Description
coordinates
object
See object below
shotDistance
integer
How far the shot went for that stroke. Data returned in meters.
distanceToPin
decimal
How far the ball is from the pin. Data returned in meters
surfaceType
string
Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.
See Surface Types table below.
surfaceTypeCode
string
3 letter enum code which describes the lie of the ball.
See Surface Types table below.
obstructions
boolean
true if the team has an obstruction next to the ball that makes the ball hard to hit
blindshot
boolean
true if the team cannot see the pin from where they are taking the shot
coordinates object:
Field
Type
Description
x
decimal
X co-ordinate of the ball
y
decimal
Y co-ordinate of the ball
z
decimal
Z co-ordinate of the ball
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
gender
string
The gender of player
isAmateur
string
Is that player an amateur or not (true/false)
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Sample Event Packet
There are three connection statuses for the golf live data:
Connected: Connection is healthy, all scoring devices currently scoring that team for that round are fully connected and operational
Partially Disconnected: There is an issue with connection on some devices or networks, we cannot be entirely sure that data will come through in a timely manner.
Disconnected: All scoring devices are disconnected and we should not expect data for that
This packet will be sent to indicate that we are totally disconnected to all devices scoring for a team playing a round. You will only receive this packet once – Assume that the state of the round is disconnected until you receive either a Partially Disconnected or a Connected packet.
Disconnected Object
Sample Event Packet
2. Partial Disconnection
This packet will be sent to indicate that there is an issue with connection on some devices or networks and that we cannot be entirely sure that data will come through in a timely manner. You will only receive this packet once – Assume that the state of the round is partially disconnected until you receive either an Disconnected or Connected packet.
Partially Disconnected Object
This packet will be sent to indicate that we are now connected to all scoring devices via all networks for a team playing a round. It will be issued after a Disconnected packet to indicate connection is now back, or at any time after you have received a Partially Disconnected packet.
Connected Object
Sample Event Packet
Field Name
Type
Description
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case always “ConnectionStateChanged
state
string
The type of state, in this case “Disconnected”
Field Name
Type
Description
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case always “ConnectionStateChanged
state
string
The type of state, in this case “Connected”
This event will be sent when a player is about to hit the ball, i.e, they are standing over the ball literally about to take their stroke.
Addressing Ball Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupId
integer
The group ID of the player who did the event
groupNo
integer
[Optional] The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
playerId
integer
The player ID of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case AddressingBall
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
player
object
See obejct below
clubTypeCode
string
This is the type of Club a player used for the shot. NB. this is only populated for Drives.
roundNo
integer
Round number
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
gender
string
The gender of player
isAmateur
string
Is that player an amateur or not (true/false)
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Club Types
clubTypeCode
Description
CDR
Driver
CFW
Fairway Wood
CIR
Iron
CUK
Unknown
Sample Event Packet:
This event will be sent as soon as the player has hit the ball.
Hit Ball Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupID
integer
The group ID of the player who did the event
groupNo
integer
[Optional] The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
playerId
integer
The player ID of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case HitBall
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
player
object
See object below
roundNo
integer
round number of the event
score
object
See object below
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
isAmateur
string
Is that player an amateur or not (true/false)
gender
string
the gender of the player
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Score Object
Field Name
Type
Description
currentHoleStrokes
integer
The number of strokes that the team is on for that hole; Can be greater than ‘stroke’ above in the instance that the team has been awarded a penalty
currentHolePar
integer
The par score for the current hole
currentRoundScoreToPar
object
The team’s current ‘To Par’ score for the current round
overallScoreToPar
object
The team’s current ‘To Par’ score for the tournament
Sample Event Packet:
This will be sent as soon as we have any information on the lie of the ball. It is approximate because it assumes the data collector has not been able to get to where the ball has landed on the course, and will be estimating it’s lie based on a map.
Approximate Ball Lie Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
strokesAssessed
integer
Default as 1.
groupID
integer
The group ID of the player who did the event
groupNo
integer
[Optional] The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
playerId
integer
The player ID of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case ApproximateLie
ballLie
object
See object below
player
object
See object below
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
Ball Lie Object
Field Name
Type
Description
coordinates
object
See object below
shotDistance
integer
How far the shot went for that stroke. Data returned in meters.
distanceToPin
integer
How far the ball is from the pin. Data returned in meters
surfaceType
string
Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.
See Surface Types table below.
surfaceTypeCode
string
3 letter enum code which describes the lie of the ball.
See Surface Types table below.
obstructions
boolean
true if the team has an obstruction next to the ball that makes the ball hard to hit
blindshot
boolean
true if the team cannot see the pin from where they are taking the shot
distanceToPinProb
isPredictionUnconfident
isWaterProbable
strokesToPinProb
coordinates object:
Field
Type
Description
x
decimal
X co-ordinate of the ball
y
decimal
Y co-ordinate of the ball
z
decimal
Z co-ordinate of the ball
Surface Types:
surfaceTypeCode
surfaceType
OFW
Fairway
OGR
Green
OIR
IntermediateRough
ORO
Rough or PrimaryRough
OST
FairwayBunker
OGS
Greenside Bunker
OCO
Fringe
ONA
NativeArea
OTO
Trees or TreeOutline
OBU
Bushes
ODS
Desert
OWA
Water
OTH
Other
OCA
CartPath
ODO
Dirt or DirtOutline
OTF
OtherFairway
OOB
OutOfBounds
OWB
WasteBunker
OUK
Unknown
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
gender
string
The gender of the player
isAmateur
string
Is that player an amateur or not (true/false)
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Sample Event Packet:
This will be sent as soon as we have more detailed information on the lie of the ball – I.e the data collector has been able to walk over to the lie of the ball and give the exact GPS location of the ball.
Detailed Ball Lie Object
Field Name
Type
Description
ballLie
object
See object below
seqNum
integer
The sequence number of the packet.
strokesAssessed
integer
Default as 1.
groupNo
integer
[Optional] The group number of the player who did the event
groupId
integer
the group Id of the player who did the event
teamNo
integer
The team number of the player who did the event
playerId
integer
The player ID of the player who did the event
player
object
See object below
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case ApproximateLie
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
roundNo
integer
round number of the event
Ball Lie Object
Field Name
Type
Description
coordinates
decimal
Z co-ordinate of the ball
shotDistance
integer
How far the shot went for that stroke. Data returned in meters
distanceToPin
integer
How far the ball is from the pin. Data returned in meters
surfaceType
string
Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.
See Surface Types table above.
surfaceTypeCode
string
3 letter enum code which describes the lie of the ball.
See Surface Types table above.
obstructions
boolean
true if the team has an obstruction next to the ball that makes the ball hard to hit
blindshot
boolean
true if the team cannot see the pin from where they are taking the shot
coordinates object:
Field
Type
Description
x
decimal
X co-ordinate of the ball
y
decimal
Y co-ordinate of the ball
z
decimal
Z co-ordinate of the ball
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
isAmateur
string
Is that player an amateur or not (true/false)
gender
string
The gender of the player
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Sample Event Packet:
Will be sent when the ball has been holed.
Ball Holed Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
strokesAssessed
integer
Default as 1.
groupId
integer
The group Id of the player who did the event
groupNo
integer
[Optional] The group number of the player who did the event
teamNo
integer
The team number of the player who did the event
playerId
integer
The player ID of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case BallHoled
score
object
See object below
roundNo
integer
round number in the event
player
object
see object below
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
Player Object
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
isAmateur
string
Is that player an amateur or not (true/false)
gender
string
The gender of the player
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player unique Id
Score Object
Field Name
Type
Description
currentHoleStrokes
integer
The number of strokes that the team is on for that hole; Can be greater than ‘stroke’ above in the instance that the team has been awarded a penalty
currentHolePar
integer
The par score for the current hole
currentRoundScore
object
The team’s current ‘To Par’ score for the current round
overallScore
object
The team’s current ‘To Par’ score for the tournament
Sample Event Packet
In order for players' score to remain accurate, there is a need for scorers to be able to correct inputs that have already been submitted into the tablets and submitted to the DDE.
Hole correction mode has been developed to support this need. It allows the wholesale correction of both completed and ongoing holes.
Hole correction mode is started and finished with a ModeChange packet.
ModeChange packet
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case ModeChange
teamNo
integer
The team Id in the case of a team event
mode
string
The type of mode change. Hole correction mode is started by BeginHoleCorrection and ended by EndHoleCorrection
Following a ModeChange of BeginHoleCorrection, individual holes are then resent as a standard series of stroke events and RoundStatusUpdates. These are always sent from the beginning of a hole, with the seqNum continuing from previous packets. These packets continue up until the point that the correction was initiated - this can be either the entirety of a hole, up to holing or up to the present moment (if the correction has been requested when a hole is ongoing).
Only one hole at a time can be corrected within the mode.
Hole correction mode is ended by a ModeChange of EndHoleCorrection.
See below for an example of a hole being corrected in it's entirety:
This packet will be sent whenever a previous packet needs correcting. The original event still happened, at the time that it happened, BUT some of the details within that packet are being updated. Corrections can happen to the last event that happened, or to an event that happened X events ago (I.e it can happen in and out of sequence).
Current List of Events that can be Corrected:
Approximate Lie
Detailed Lie
Penalty
Ball Drop
Note – this list will change over time as we add new packets that can be corrected.
Correction Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case Correction
timestampReceived
date
The server time of the moment that this packet has been processed
corrections
object
contains all information on the packet that is being corrected, even if certain information within the packet has not been corrected
courseId
string
The ID of the course where the event took place
eventCorrectedIdentifier
object
See object below
groupId
integer
The group ID of the player who did the event
roundNo
integer
The current round number
Corrections Object
Field Name
Type
Description
ballLie
object
See object below
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
strokeNo
integer
The stroke associated with the event that is being corrected
strokesAssessed
integer
The stroke assessed with the event that is being corrected
Ball Lie Object
Field Name
Type
Description
coordinates
object
See object below
shotDistance
integer
How far the shot went for that stroke. Data returned in meters.
distanceToPin
decimal
How far the ball is from the pin. Data returned in meters
surfaceType
string
Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.
See Surface Types table below.
surfaceTypeCode
string
3 letter enum code which describes the lie of the ball.
See Surface Types table below.
obstructions
boolean
true if the team has an obstruction next to the ball that makes the ball hard to hit
blindshot
boolean
true if the team cannot see the pin from where they are taking the shot
coordinates object:
Field
Type
Description
x
decimal
X co-ordinate of the ball
y
decimal
Y co-ordinate of the ball
z
decimal
Z co-ordinate of the ball
eventCorrectedIdentifier Object
This contains information unique to the event that is being corrected – use this information to reference the previous packet so you know what packet and what data to update.
Field Name
Type
Description
holeNo
integer
The hole in which the event took place that is being corrected
eventElementType
string
The type of event that is being corrected
strokeNo
integer
The stroke associated with the event that is being corrected
playerId
integer
The player ID of the player who did the event that is being corrected
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
teamNo
integer
The team number of the player who did the event
ODO
Dirt
For both PGA and DPWT
OFW
Fairway
For both PGA and DPWT
OST
Fairway Bunker
For both PGA and DPWT
OCO
Fringe
For both PGA and DPWT
OGR
Green
For both PGA and DPWT
OGS
Greenside Bunker
For both PGA and DPWT
OIR
Intermediate Rough
For both PGA and DPWT
ONA
Native Area
For both PGA and DPWT
OTH
Other
For both PGA and DPWT
ORO
Rough
For both PGA and DPWT
OTB
Tee Box
For both PGA and DPWT
OTO
Trees
For both PGA and DPWT
OUK
Unsure/Undefined
For both PGA and DPWT
OWA
WaterHazard/LateralWaterHazard
For both PGA and DPWT
OWB
Waste Bunker
For both PGA and DPWT
OBU
Bushes
DPWT only
ODS
Desert
DPWT only
OTF
OtherFairway
DPWT only
OOB
OutOfBounds
DPWT only
OCA
Cart Path
PGA only
OGR
Green
PGA only
OPT
Path
PGA only
ORK
Rock Outline
PGA only
OTB
Tee Box
For both PGA and DPWT
OWL
Wall
PGA only
Sample Event Packet
In this example an Detailed Lie packet has been corrected:
Playoff scores are returned by an endpoint that acts as a subset of teamholebyhole. A new websocket will be opened when the playoff begins (with a seqNo of 1). All of the attributes that are available in the above round details scenarios remain available during a playoff.
The major difference comes in the holeOrder and holeNos. Golf playoffs normally involve the repeated re-playing of the 18th hole, and as such playoffs can be distinguished from regulation play based on a combination of these things.
holeOrder will begin at 1 and holeNo at 18. See below for the beginning of a series of round details packets for a playoff:
Indicates a team has started to play a the particular round.
Round Started Object
Players Object
Sample Event Packet:
Indicates a team has finished playing that particular round. NOT the last packet in the Round Details feed, see RoundOfficial below.
Round Finished Object
Sample Event Packet:
Indicates a team has finished playing that particular round and that the score for that round is now official and will not change – Upon receiving this packet you should disconnect from the web socket for this team’s round – no more data will be sent through after this packet.
Round Finished Object
Sample Event Packet:
Field Name
Type
Description
matchType
string
The type of match in which the event is being played; Strokeplay is the standard response currently
eventElementType
string
The type of event
state
object
The type of status update, in this case always Round Started.
seqNum
integer
The sequence number of the packet. Always starts at 1, increments in 1
groupId
integer
[optional] The group ID of the player who did the event
groupNo
integer
The group number of the player who did the event
teamNo
integer
The team Number of the player who did the event
players
array
See object docs
holeNo
integer
The hole No which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
roundNo
integer
The round number
Field Name
Type
Description
displayName
string
The display name of the player
country
string
3-character ICO country code of the player*
isAmateur
boolean
true if the player is an amateur
lastName
string
the last name of the player
firstName
string
the first name of the player
gender
string
gender of the player
playerId
integer
The unique player ID of that player
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupID
integer
[Optional] The group ID of the player who did the event
groupNo
integer
The group No of the player who did the event
teamNon
integer
The team number of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event
state
object
The type of status update, in this case always Round Finished.
roundNo
integer
The round number
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupID
integer
[Optional] The group ID of the player who did the event
groupNo
integer
The group No of the player who did the event
teamNon
integer
The team number of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event
state
object
The type of status update, in this case always Round Official.
A penalty stroke is an additional stroke (or strokes) added to a player's score for an infraction of the rules (e.g. hitting the ball out of bounds). A penalty can either be followed by a drop, or hit without the player taking a drop, depending on whether or not the ball is playable.
A drop is the act of a player dropping a ball back on the course, after the previous shot lands in a place that is unplayable. A drop can either follow an infraction of the rules. and is therefore preceded by a penalty stroke, or following a situation in which the player's ball is deemed unplayable, but with no previous infraction of the rules (i.e. behind a man made object).
Ball Drop Object
Field Name
Type
Description
seqNum
integer
The sequence number of the packet.
groupNo
integer
The group number of the player who did the event
groupId
integer
[Optional] The group ID of the player who did the event
teamNo
integer
The team ID of the player who did the event
playerId
integer
The player ID of the player who did the event
holeNo
integer
The hole in which the event took place
holeOrder
integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
integer
The ID of the course where the event took place
strokeNo
integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
timestampReceived
date
The server time of the moment that this packet has been processed
eventElementType
string
The type of event, in this case BallDrop
dropType
string
Info on the type of drop. Possible values;
DropBehind, StrokeAndDistance, DropTwoClubLength, DropOppositeSide, FreeDrop, Other
strokesAssessed
integer
Current stroke assessed starting with 0.
roundNo
integer
Current round number
ballLie
object
See object below
player
object
See object below
provisionalIndex
integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
Ball Lie Object
Field Name
Type
Description
coordinates
object
See object below
distanceToPin
decimal
How far the ball is from the pin. Data returned in meters
surfaceType
string
Text string which describes the lie of the ball, can be inconsistent across different data collection systems / Tours. We recommend using the 3 letter codes.
See Surface Types table below.
surfaceTypeCode
string
3 letter enum code which describes the lie of the ball.
See Surface Types table below.
coordinates object:
Field
Type
Description
x
decimal
X co-ordinate of the ball
y
decimal
Y co-ordinate of the ball
z
decimal
Z co-ordinate of the ball
zoneProbabilities Objects:
distanceToPinYards
float
Distance to Pin of the prediction
probabilityPercent
integer
Percentage of the where the ball is
zoneCode
string
zone code
zoneType
string
zone description
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
isAmateur
string
Is that player an amateur or not (true/false)
gender
string
the gender of the player
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player's unique Id
Penalty Object
Field Name
Type
Description
score
object
See object below
seqNum
Integer
The sequence number of the packet.
groupNo
Integer
[Optional] The group ID of the player who did the event
groupId
Integer
The group number of the player who did the event
teamNo
Integer
The team ID of the player who did the event
playerId
Integer
The player ID of the player who did the event
holeNo
Integer
The hole in which the event took place
holeOrder
Integer
The hole order of the hole in which the event took place (e.g. if a player starts a round on hole 10, this will be 1) – always starts at 1 and ends on 18
courseId
Integer
The ID of the course where the event took place
strokeNo
Integer
The stroke associated with the event
timestamp
date
The timestamp of the event, in UTC
eventElementType
string
The type of event, in this case Penalty
penaltyStrokes
Integer
The number of strokes added to the player’s score for this penalty.
This will not be used in the future.
PLEASE NOTE: This is only available on the European Tour and will be deprecated.
penaltyType
string
The type of penalty. Possible values; Strokes, Disqualification.
PLEASE NOTE: This is only available on the European Tour and will be deprecated.
penaltyReason
string
describes reason of incurring the penalty by specific team. Possible values; OutOfBounds, ProvisionalBall, WaterHazard, Grounding.
PLEASE NOTE: This is only available on the European Tour and will be deprecated.
strokesAssessed
Integer
The stroke assessed, starts with 0.
roundNo
Integer
The current round number
player
object
See object below
provisionalIndex
Integer
indicates if the event is part of a provisional ball. 0 if not, 1 if first provisional ball, 2 if second provisional ball for that stroke, e.t.c…
Field Name
Type
Description
currentHoleStrokes
Integer
The number of strokes that the team is on for that hole; Can be greater than ‘stroke’ above in the instance that the team has been awarded a penalty
currentHolePar
Integer
The par score for the current hole
currentRoundScore
string
The team’s current ‘To Par’ score for the current round
overallScore
string
The team’s current ‘To Par’ score for the tournament
displayName
string
The full name or display name of that player
country
string
The affiliated country (typically birthplace)
isAmateur
string
Is that player an amateur or not (true/false)
gender
string
The gender of the player
lastName
string
The surname of the player
firstName
string
The forename of that player
id
Integer
The Player's unique Id
There are broadly 5 combinations of drops and penalties that can occur on the golf course:
Penalty without drop
Penalty with drop
2 stroke penalty without drop
2 stroke penalty with drop
Free drop (i.e. drop without penalty)
Below are 5 examples of holes outlines each of these combinations
zoneProbabilities sample