Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This stream summarises the scoring events from a tennis match. E.g. number of aces served, 1st serve percentage, break points, e.t.c... If you connect to the stream when the match has already started, you will receive only the latest statistics. Unlike the events stream, there is no facility to replay the statistics from the start.
This endpoint takes no parameters.
New URL: wss://dde-streams.data.imgarena.com/tennis/events/{event-id}/statistics
Old URL: wss://dde-streams.imggaming.com/tennis/events/{event-id}/statistics
N.B. – Please use event ID “2022-0784-QS010” to return you the sample data. 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
Format to send API token:
{"authToken": "authentication token"}
Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
Receive data packets
Once you have the API token, any further data that you send over the connection will be ignored.
This section contains details on the following websockets endpoints:
This stream contains the events happening within the tennis match and generally corresponds to data being entered by the umpire on the court.
Please note that if the match for the requested stream has not yet started then a 204 response code will be returned and the Websocket will not be accessible. As soon as the event starts the Websocket will become available.
The first event is always a dummy placeholder event (i.e. not produced by the upstream provider) with a match status of NotStarted:
Not Started - JSON Example
This response takes the following parameters:
ParameterTypePurpose
startPosition
int
The position in the stream that you want to start from. Each packet in the stream has an integer id, where 1 is the first packet in the stream. By default, the stream will start from the beginning. This is useful if you get disconnected from a stream and need to reconnect. When reconnecting, if you specify the id of the last packet you received + 1, then you can pick up where you left off without the need to reprocess all the events already received.
New URL: wss://dde-streams.data.imgarena.com/tennis/events/{event-id}/stream
Legacy URL: wss://dde-streams.imggaming.com/tennis/events/{event-id}/stream
N.B. – Please use event ID “2022-2789-MS027” to return the sample data. The authentication token provided will be required to make a connection to this WebSocket endpoint.
Connect to SSL WebSocket address
Send JSON packet containing the API token
Format to send API token:
{"authToken": "authentication token"}
Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
Receive data packets
Once you have the API token, any further data that you send over the connection will be ignored.
Please find a breakdown of the full schema for /statistics endpoint
We provide four test streams; these streams allow the end user to connect and consume data in one environment. We have a unique test flow for Singles and Doubles.
Singles: In this stream, you will consume a singles match, the event starts with a and then comes online in an expected sequence. The remaining match data can be found is explained .
https://dde.imggaming.com/#/tennis/tournaments/179/event/2015-999-XX999?day=2015-10-01
Doubles: In this stream, you will consume a doubles match; the event starts off with an expected sequence. Which is followed by a variety of , the suspensions are prior to a range of different packets , , , , , and .
https://dde.imggaming.com/#/tennis/tournaments/179/event/2015-999-XX998?day=2015-10-01
The Stream API provides a stream of live match data as JSON over a WebSocket connection. Please see the below for how to connect to the stream endpoint.
The process for connecting to the stream endpoints and receiving data is always the same:
● Connect to the SSL websocket address ● Send JSON packet containing API token
Format to send API token:
{"authToken": "authentication token"}
● Receive response indicating that the connection is authorised (or else a response indicating why the connection cannot be made) ● Receive heartbeat packets every 10 seconds to verify that the connection is live ● Receive data packets
Once you have sent the API token, any further data that you send over the connection will be ignored.
Security protocol: Please note that we currently we do not support SSL. We only support the use of TLS Version 1.2+.
The code below shows how to make the connection using Java. It uses the following dependencies but you can use any libraries you wish:
Then use the following code:
Java
In Java, to send a Web request via a SSL-based protocol (i.e. HTTPS or WSS) one has to add the signed certificate to the keystroke ‘ jssecacerts’ for the specific domain as alias. For that the utility Java program ‘ InstallCert.java’ is used:
To compile and run:
When it asks for the input, press ‘ 1 ’. After this step, the informed domain will be added as a trusted keystore, and a file called “ jssecacerts“ will be generated.
Finally,this“ jssecacerts”fileneedstobecopiedtoyour“$ JAVA_HOME/jre/lib/security” folder.
The code below shows how to make the connection using Javascript. It assumes you already have a variable named token holding your API token:
We can provide code samples in other languages on request.
A Test Server for event streams is also available for testing purpose. To be able to consume events coming from the Test Server one can connect via WebSocket following the steps above and point to the endpoint containing the matchId as “2 015-999-XX999”:
The test feed will play a real historical match (with the names of the players modified). The match events are sent in an interval of 5 secs with heartbeats messages every 10 secs.
"startPosition" parameter
Note that you can pass the "startPosition=*" parameter in the websocket, where "*" refers to the sequence number the connection should start from. i,e: wss://dde-streams.data.imgarena.com/tennis/events/2024-XXXX-MSXXX/stream?startPosition=100 The websocket feed will start the at sequence number 100 instead of 0.
After the WebSockets connection has been made and the connection authorised, you will first receive the initial packet:Field NameTypeDescription
Field Name
Type
Description
teamAPlayer1
string
The name of the first player in the team
teamAPlayer2
string
(Doubles only) The name of the second player in the team . referred to as team A.
teamBPlayer1
string
The name of the first player in the team referred to as team B.
teamBPlayer2
string
(Doubles only) The name of the second player in the team . . . referred to as team B.
Every subsequent packet will be a Combined Statistics object with the following format:
Field Name
Type
Description
match
object
The overall statistics for the match
set1
object
The statistics for set 1
set2
object
The statistics for set 2 (if set has started)
set3
object
The statistics for set 3 (if set has started)
set4
object
The statistics for set 4 (if set has started)
set5
object
The statistics for set 5 (if set has started)
Only Grand Slam matches go up to five sets for men and three for women. Usually, the first player to win six games wins a set. Click here for more specific tournament scenarios.
Field Name
Type
Description
teamA
object
The team statistics for team A serving
teamB
object
The team statistics for team B serving
Field Name
Type
Description
aces
int
The number of aces served by the player
totalServes
int
The total number of serves by the player
1stServe
int
The total number of successful (non-fault) 1st serves
1stServe%
double
The percentage of successful 1st serves
1stServePointsWon
int
The number of points won on a 1st serve
1stServePointsWon%
double
The percentage of points won on a 1st serve
2ndServes
int
The total number of successful (non-fault) 2nd serves
2ndServePointsWon
int
The number of points won on a 2nd serve
2ndServePointsWon%
double
The percentage of points won on a 2nd serve
breakPointsPlayed
int
The number of break points against the player’s serve
breakPointsSaved
int
The number of break points saved
faults
int
The number of faults served by the player
doubleFaults
int
The number of double faults served by the player
After the websockets connection has been made and the connection authorised, you will receive the packets (assuming you haven’t specified a start position).
Note that packets are checked for timeliness and in the event that data from the supplier is delayed, an extra field: delayStatus will be added to the packets below. If the field is present then the packets should be considered as not live.
The delayStatus field will typically take one of two values:
● DELAYED - click here for more information on delayed packets
● RECONSTRUCTED - click here for more information about Alarms and Reconstructions
Field Name
Type
Description
matchState
object
The match state object
teamAPlayer1
string
The name of the first player in team A
teamBPlayer1
string
The name of the first player in team B
teamAPlayer2
string
(Doubles only) The name of the second player in team A
teamBPlayer2
string
(Doubles only) The name of the second player in team B
teamAPlayersDetails
object
The players details (e.g. ID and IOC country code) for team A
teamBPlayersDetails
object
The players details (e.g. ID and IOC country code) for team B
umpire
string
The name of the umpire
umpireCode
string
The code for the umpire
umpireCountry
string
The country of the umpire
scoringType
string
The scoring type being used for the match: Standard, StandardWithNoAdv, ShortSets, ProSet, MatchTieBreak, SuddenDeath, ModernSetShort, ModernSetLong, ModernSetWithNoAdv, Unknown, LastSetTiebreak12,ATPShortSetNoAdv
numSets
int
How many sets the match may involve
firstServer
string
The team who is serving first in the match
courtNum
string
The court the match is being played on
tieBreakType
string
The type of tie breaks being used in the match - possible values are “TieBreakInFinalSet” and “NoTieBreakInFinalSet”
tossWinner
string
Player who won the toss
tossChooser
string
What the player who won the toss elected to do - possible values are “Serve”, “Ends”, “GaveChoiceToOpponent”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
matchTime
string
The match time of this packet
Field Name
Type
Description
player1Id
string
The player Id of the first player in team A
player2Id
string
(Doubles only) The player Id of the second player in team A
player1Country
string
The country code of the first player in team A
player2Country
string
(Doubles only) The country code of the second player in team A
Field Name
Type
Description
player1Id
string
The player Id of the first player in team A
player2Id
string
(Doubles only) The player Id of the second player in team A
player1Country
string
The country code of the first player in team A
player2Country
string
(Doubles only) The country code of the second player in team A
Field Name
Type
Description
state
string
The state of the match can be one of: NotStarted, UmpireOnCourt, PlayersArriveOnCourt, Warmup, InProgress, Suspended, Unsuspended, Complete, ToiletBreak, MedicalTimeout, MedicalTreatment, ChallengeInProgress, BallMarkInspection, CorrectionMode, PostSuspensionWarmup, PostSuspensionMatchRestart, Default, Retire
locationTimestamp*
string
(*) This is an optional field for all match state changes
suspensionType*
string
(*) This is an optional field for a Suspended/Unsuspended match state only: Rain, Heat, Darkness, Pause, TenMinuteHeatBreak, Other, Unknown
suspensionEnded*
timestamp
(*) This is an optional field for a Suspended/Unsuspended match state only
team*
string
(*) This is an optional field for a ChallengeInProgress, ToiletBreak, MedicalTreatment or Default/Retire match states only, meaning who called the challenge or who has decided to retire from the match.
playerId*
int
(*) This is an optional field for MedicalTreatment match state only indicating which player is being treated
won*
string
(*) This is an optional field for a ChallengeInProgress match state only, meaning who won the challenge.
challengeEnded*
timestamp
(*) This is an optional field for a ChallengeInProgress match state only, meaning when the challenge has ended.
reason*
string
(*) This is an optional field for a Default/Retire match states only, meaning the retirement reason: Illness, Injury, Walkover, Other, Unknown, Unspecified, UnreasonableDelay ,AudibleObscenity, VisibleObscenity, BallAbuse, RacquetAbuse, VerbalAbuse, PhysicalAbuse,Coaching, UnsportsmanlikeConduct
evaluationStarted*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio started evaluating the player
treatmentStarted*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio started treating the player
treatmentLocation*
string
(*) This is an optional field for a MedicalTreatment match state only indicating where the physio is treating the player. Either “OnCourt”, “OffCourt” or “Unknown”
treatmentEnded*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio stopped treating the player
toletBreakEnded**
timestamp
(**) This will be within the second toiletBreak packet.
When there is a declined TenMinuteHeatbreak, we will return a Unsuspended packet (without a proceeding Suspended packet) with the suspensionType set as TenMinuteHeatBreak and suspensionEnded.
ToiletBreak consists of two consecutive packets - the first is the start, the second is the end of the break. The game will recommence properly with the InProgress packet that will follow shortly afterwards.
Field Name
Type
Description
state
string
The state of the match can be one of: NotStarted, UmpireOnCourt, PlayersArriveOnCourt, Warmup, InProgress, Suspended, Unsuspended, Complete, ToiletBreak, MedicalTimeout, MedicalTreatment, ChallengeInProgress, BallMarkInspection, CorrectionMode, PostSuspensionWarmup, PostSuspensionMatchRestart, Default, Retire
locationTimestamp*
string
(*) This is an optional field for all match state changes
suspensionType*
string
(*) This is an optional field for a Suspended/Unsuspended match state only: Rain, Heat, Darkness, Pause, TenMinuteHeatBreak, Other, Unknown
suspensionEnded*
timestamp
(*) This is an optional field for a Suspended/Unsuspended match state only
team*
string
(*) This is an optional field for a ChallengeInProgress, ToiletBreak, MedicalTreatment or Default/Retire match states only, meaning who called the challenge or who has decided to retire from the match.
playerId*
int
(*) This is an optional field for MedicalTreatment match state only indicating which player is being treated
won*
string
(*) This is an optional field for a ChallengeInProgress match state only, meaning who won the challenge.
challengeEnded*
timestamp
(*) This is an optional field for a ChallengeInProgress match state only, meaning when the challenge has ended.
reason*
string
(*) This is an optional field for a Default/Retire match states only, meaning the retirement reason: Illness, Injury, Walkover, Other, Unknown, Unspecified, UnreasonableDelay ,AudibleObscenity, VisibleObscenity, BallAbuse, RacquetAbuse, VerbalAbuse, PhysicalAbuse,Coaching, UnsportsmanlikeConduct
evaluationStarted*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio started evaluating the player
treatmentStarted*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio started treating the player
treatmentLocation*
string
(*) This is an optional field for a MedicalTreatment match state only indicating where the physio is treating the player. Either “OnCourt”, “OffCourt” or “Unknown”
treatmentEnded*
timestamp
(*) This is an optional field for a MedicalTreatment match state only indicating when the physio stopped treating the player
tolietBreakEnded**
timestamp
(**) This will be within the second toiletBreak packet.
Field Name
Type
Description
team
string
Which team is serving: TeamA or TeamB
member
int
Which member of the team is serving
Field Name
Type
Description
team
string
Which team is serving: TeamA or TeamB
member
int
Which member of the team is serving
Field Name
Type
Description
seqNum
int
Sequence number of the packet
timestamp
timestamp
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The match time of this packet
server
object
The server of this point
nextServer
object
The next team to serve
score
object
The match score
details
object
Additional details about the how the point was scored: Ace, Double Fault
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of three values: DELAYED, RECONSTRUCTED or RECONSTRUCTED_INACCURATE
Field Name
Type
Description
seqNum
int
Sequence number of the packet
timestamp
timestamp
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The match time of this packet
server
object
The server of this point
nextServer
object
The next team to serve
score
object
The match score
details
object
Additional details about the how the point was scored: Ace, Double Fault
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of three values: DELAYED, RECONSTRUCTED or RECONSTRUCTED_INACCURATE RECONSTRUCTED_INACCURATE is very rare and is used in the extreme edge case where the reconstructed scoring packets add up to a score that does not equal the current match score sent in the latest upstream packet. This would be applied to all reconstructed packets that are sent in the catch-up stream.
Field Name
Type
Description
currentGameScore
object
Current game score
currentSetScore
object
Current Set score
previousSetsScore
object
Array of previous Set scores
overallSetScore
object
The overall set score in the match
Field Name
Type
Description
currentGameScore
object
Current game score
currentSetScore
object
Current Set score
previousSetsScore
object
Array of previous Set scores
overallSetScore
object
The overall set score in the match
Field Name
Type
Description
gameType
string
The type of the game (e.g. “TieBreaker” or “StandardGame”)
pointsA
string
Points scored by TeamA
pointsB
string
Points scored by TeamB
Field Name
Type
Description
gameType
string
The type of the game (e.g. “TieBreaker” or “StandardGame”)
pointsA
string
Points scored by TeamA
pointsB
string
Points scored by TeamB
Field Name
Type
Description
gamesA
int
Number of games won by TeamA
gamesB
int
Number of games won by TeamB
Field Name
Type
Description
gamesA
int
Number of games won by TeamA
gamesB
int
Number of games won by TeamB
Field Name
Type
Description
gamesA
int
Number of games won by TeamA
gamesB
int
Number of games won by TeamB
tieBreakScore
object
Tie-break score for the Set
Type
Description
gamesA
int
Number of games won by TeamA
gamesB
int
Number of games won by TeamB
tieBreakScore
object
Tie-break score for the Set
Field Name
Type
Description
pointsA
int
Points scored by TeamA
pointsB
int
Points scored by TeamB
Field Name
Type
Description
pointsA
int
Points scored by TeamA
pointsB
int
Points scored by TeamB
Field Name
Type
Description
scoredBy
string
The team who has scored the point
pointType
string
The type of the point: Standard, DoubleFault, Ace, Unknown
Field Name
Type
Description
scoredBy
string
The team who has scored the point
pointType
string
The type of the point: Standard, DoubleFault, Ace, Unknown
Field Name
Type
Description
setsA
int
Number of sets for Team A
setsB
int
Number of sets for Team b
Field Name
Type
Description
setsA
int
Number of sets for Team A
setsB
int
Number of sets for Team b
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
The PointStarted packet is used to signify the start of a point. Point Started can be used to close markets for the next available point e.g.
Point Started JSON
Can be used to close markets on the next available point in this game/match.
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
faultType
string
The type of the fault:“Fault”, “FootFault”
matchId
string
The match id
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
faultType
string
The type of the fault:“Fault”, “FootFault”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
The point must be replayed. The umpire indicates this type of let by announcing "Let. First serve," or "Let. Second serve." Lets typically occur when an otherwise-valid serve makes contact with the net before hitting the ground. Theoretically, a player could serve an infinite number of otherwise-valid let serves, but a serve that touches the net and then lands out of bounds counts as one of the two allowed serves (fault). A let can also be called during play when there is some distraction to either player not caused by the players themselves, such as a ball boy moving behind a receiver, debris flying across the court in windy conditions, or a ball accidentally falling out of a player's pocket or entering from a neighbouring court. The call is made by the chair umpire when one is assigned to the match
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised (e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised (e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised(e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised(e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised(e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
N.B - The game penalty packets will be delivered sequentially until a full game has been awarded to the opposing team (e.g. if a game penalty is triggered at 15-0 by the receiver, you will receive three packets sequentially to complete the game)
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
server
object
The server for this point
nextServer
object
The next player/team to server
team
string
The name of the team penalised(e.g. “TeamA” or “TeamB”)
score
object
The match score after the penalty has been applied
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
score
object
The current score of the match
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
N.B - that the undo packet only occurs when the match state has been changed to correction mode. A number of undo packets may be received which indicates that the umpire is correcting information that has previously been entered.
Once the umpire comes out of correction mode (match state would typically move back to inProgress) they will reissue the correct score as a point scored packet, as the definitive confirmation of the current match score.
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
score
object
The current score of the match
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
score
object
The current score of the match
numOverrules
int
Total number of overrules in the match
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
score
object
The current score of the match
numOverrules
int
Total number of overrules in the match
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The name of the team (e.g. “TeamA” or “TeamB”)
playerId
int
The identifier of the player on the team: 0 (= whole team if doubles), 1 or 2
reason
string
The reason of the code violation:
Unspecified
UnreasonableDelay
AudibleObscenity
VisibleObscenity
BallAbuse
RacquetAbuse
VerbalAbuse
PhysicalAbuse
Coaching
UnsportsmanlikeConduct
Unknown
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The name of the team (e.g. “TeamA” or “TeamB”)
playerId
int
The identifier of the player on the team: 0 (= whole team if doubles), 1 or 2
reason
string
The reason of the code violation:Unspecified, UnreasonableDelay, AudibleObscenity, VisibleObscenity, BallAbuse, RacquetAbuse, VerbalAbuse, PhysicalAbuse, Coaching, UnsportsmanlikeConduct, Unknown
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The ATP packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The name of the team (e.g. “TeamA” or “TeamB”)
playerId
int
The identifier of the player on the team: 0 (= whole team if doubles), 1 or 2
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The ATP packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The name of the team (e.g. “TeamA” or “TeamB”)
playerId
int
The identifier of the player on the team: 0 (= whole team if doubles), 1 or 2
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team which asked for the physio to be called
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team which asked for the physio to be called
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team which asked for the physio to be called
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The ATP packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team which asked for the physio to be called
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The ATP packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next player/team to server
server
object
The server of this point
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next team serving
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
nextServer
object
The next team serving
server
object
The server of this point (same as nextServer for this packet)
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team name (“TeamA” or “TeamB”)
status
string
The status of coaching on court: “Started”, “Finished”, “Unknown”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
team
string
The team name (“TeamA” or “TeamB”)
status
string
The status of coaching on court: “Started”, “Finished”, “Unknown”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
time
string
The local time of the match
matchTime
string
The match time of this packet
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
time
string
The local time of the match
matchTime
string
The match time of this packet
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
won
string
The team name who has won the match
reason
string
The reason of winning - one of: - “Normally”, “Retirement”, “SuddenDeath”, “Default", “Unknown”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
N.B - If you are looking for a programmatic way of closing event websocket connections at the end of a match we would recommend using the MatchFinished packet as the trigger.
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type
matchTime
string
The current match time
won
string
The team name who has won the match
reason
string
The reason of winning - one of: - “Normally”
“Retirement”
“SuddenDeath”
“Default"
“Unknown”
delayStatus
string
Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type - Alarm
lastReceivedTimestamp
string
The timestamp of the last received upstream event packet
The Alarm Packet is sent when we suspect we have been disconnected from an onsite event. We will resend this packet every 25 seconds until the issue has been resolved, at which point we will send the next returned packet.
Field Name
Type
Description
seqNum
int
The packet sequence number
timestamp
string
Timestamp of this packet
eventElementType
string
The event element type - Alarm
lastReceivedTimestamp
string
The timestamp of the last received upstream event packet
If the umpire makes a mistake when entering data on the scoring tablet they will correct it. This changes the match state to CorrectionMode.
Within correction mode a sequence of packets will be received. These will either be:
● Undo packets which will reverse previous events. The score may be altered (e.g. going from 30-0 to 15-0) and the indicator for next server may change.
● Other packets effectively replacing the ones that were undone. These could be any other standard packets.
When all corrections have been made the next packet will change the match state from CorrectionMode to whatever the correct value is. The umpire will then reissue the correct score as a point scored packet, as the definitive confirmation of the current match score. From this point all packets are standard live packets as described previously.
Please find a breakdown of the full schema for /events endpoint