Pre-Match

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

{
  "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

{
  "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

{
  "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

{
  "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

{
  "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.

  • Point Started JSON

{
  "server": {
    "team": "TeamB"
  },
  "timestamp": "2022-08-16T08:10:25.182Z",
  "nextServer": {
    "team": "TeamB"
  },
  "eventElementType": "PointStarted",
  "matchTime": "00:00:04",
  "seqNum": 5
}

Last updated