Overview
This section will describe the packets that are received upon the start of the match. At the start of every tennis match, the same packets should be received in the same order.
MATCH STATUS UPDATE - Not Started
If you connect to any match that has not started, you will receive the following packet. This packet is always a response to any match that has not started and it will always be the packet with sequence number 0 when connecting to any websocket event.
The packet is as follows:
MATCH STATUS UPDATE - Not Started JSON
Copy {
"timestamp": "1970-01-01T00:00:00.000Z",
"eventElementType": "MatchStatusUpdate",
"matchTime": "00:00:00",
"seqNum": 0,
"matchStatus": {
"umpireCountry": "Unknown",
"umpire": "Unknown",
"teamAPlayer1": "Unknown",
"tossChooser": "Unknown",
"matchState": {
"state": "NotStarted"
},
"teamBPlayer1": "Unknown",
"numSets": -1,
"scoringType": "UnknownScoringType",
"firstServer": "UnknownTeam",
"tossWinner": "UnknownTeam",
"courtNum": -1,
"teamAPlayersDetails": {
"player1Id": "Unknown",
"player1Country": "Unknown"
},
"teamBPlayersDetails": {
"player1Id": "Unknown",
"player1Country": "Unknown"
},
"umpireCode": "Unknown",
"tieBreakType": "Unknown"
}
}
MATCH STATUS UPDATE - Umpire On Court
The first packet with information on each match, with "seqNum" : 1
will always be the Umpire On Court Packet.
This will include information on the Umpire and the players, the scoring type and set length of the match. Receiving this packet means that the match is going to start shortly.
The packet is as follows:
MATCH STATUS UPDATE - Umpire On Court JSON
Copy {
"timestamp": "2022-08-16T07:47:54.985Z",
"eventElementType": "MatchStatusUpdate",
"matchTime": "00:00:00",
"seqNum": 1,
"matchStatus": {
"umpireCountry": "SRB",
"umpire": "M. PETROVIC",
"teamAPlayer1": "H. SQUIRE",
"tossChooser": "UnknownTossChooser",
"matchState": {
"state": "UmpireOnCourt",
"locationTimestamp": "2022-08-16T09:47:54"
},
"teamBPlayer1": "J. RODIONOV",
"numSets": 3,
"scoringType": "Standard",
"firstServer": "UnknownTeam",
"tossWinner": "UnknownTeam",
"courtNum": 1,
"teamAPlayersDetails": {
"player1Id": "S0AK ",
"player1Country": "GER"
},
"teamBPlayersDetails": {
"player1Id": "R09X ",
"player1Country": "AUT"
},
"umpireCode": "PETRMA",
"tieBreakType": "TieBreakInFinalSet"
}
}
MATCH STATUS UPDATE - Players Arrive On Court
The second packet that is received is the 'Players Arrive on Court' packet. This indicates that both players are on the court and are preparing for the match.
The packet is as follows:
MATCH STATUS UPDATE - Players Arrive On Court JSON
Copy {
"timestamp": "2022-08-16T08:01:48.211Z",
"eventElementType": "MatchStatusUpdate",
"matchTime": "00:00:00",
"seqNum": 2,
"matchStatus": {
"umpireCountry": "SRB",
"umpire": "M. PETROVIC",
"teamAPlayer1": "H. SQUIRE",
"tossChooser": "UnknownTossChooser",
"matchState": {
"state": "PlayersArriveOnCourt",
"locationTimestamp": "2022-08-16T10:01:47"
},
"teamBPlayer1": "J. RODIONOV",
"numSets": 3,
"scoringType": "Standard",
"firstServer": "UnknownTeam",
"tossWinner": "UnknownTeam",
"courtNum": 1,
"teamAPlayersDetails": {
"player1Id": "S0AK ",
"player1Country": "GER"
},
"teamBPlayersDetails": {
"player1Id": "R09X ",
"player1Country": "AUT"
},
"umpireCode": "PETRMA",
"tieBreakType": "TieBreakInFinalSet"
}
}
MATCH STATUS UPDATE - Warmup (Inc. Coin Toss Info)
The next packet will indicate that the state of the match is in 'Warmup' and that the players are warming up.
This packet will also contain information on which player won the coin toss, and whether they chose to serve, receive or chose a particular side.
The packet is as follows:
MATCH STATUS UPDATE - Warmup JSON
Copy {
"timestamp": "2022-08-16T08:04:23.606Z",
"eventElementType": "MatchStatusUpdate",
"matchTime": "00:00:00",
"seqNum": 3,
"matchStatus": {
"umpireCountry": "SRB",
"umpire": "M. PETROVIC",
"teamAPlayer1": "H. SQUIRE",
"tossChooser": "Serve",
"matchState": {
"state": "Warmup",
"locationTimestamp": "2022-08-16T10:04:22"
},
"teamBPlayer1": "J. RODIONOV",
"numSets": 3,
"scoringType": "Standard",
"firstServer": "TeamB",
"tossWinner": "TeamA",
"courtNum": 1,
"teamAPlayersDetails": {
"player1Id": "S0AK ",
"player1Country": "GER"
},
"teamBPlayersDetails": {
"player1Id": "R09X ",
"player1Country": "AUT"
},
"umpireCode": "PETRMA",
"tieBreakType": "TieBreakInFinalSet"
}
}
MATCH STATUS UPDATE - In Progress
The next packet, 'In Progress', will indicate that the match has started.
The packet is as follows:
MATCH STATUS UPDATE - In Progress JSON
Copy {
"timestamp": "2022-08-16T08:10:20.959Z",
"eventElementType": "MatchStatusUpdate",
"matchTime": "00:00:00",
"seqNum": 4,
"matchStatus": {
"umpireCountry": "SRB",
"umpire": "M. PETROVIC",
"teamAPlayer1": "H. SQUIRE",
"tossChooser": "Serve",
"matchState": {
"state": "InProgress",
"locationTimestamp": "2022-08-16T10:10:20"
},
"teamBPlayer1": "J. RODIONOV",
"numSets": 3,
"scoringType": "Standard",
"firstServer": "TeamB",
"tossWinner": "TeamA",
"courtNum": 1,
"teamAPlayersDetails": {
"player1Id": "S0AK ",
"player1Country": "GER"
},
"teamBPlayersDetails": {
"player1Id": "R09X ",
"player1Country": "AUT"
},
"umpireCode": "PETRMA",
"tieBreakType": "TieBreakInFinalSet"
}
}
Point Started
Following the above, when the first point in the match is under way, the umpire will issue a 'Point Started' packet.
This packet is issued at the start of every point in any match.
Best Practice
Use 'Point Started' packets to automatically close markets and to suspend betting.
Copy {
"server": {
"team": "TeamB"
},
"timestamp": "2022-08-16T08:10:25.182Z",
"nextServer": {
"team": "TeamB"
},
"eventElementType": "PointStarted",
"matchTime": "00:00:04",
"seqNum": 5
}