Response Model

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

Match Status Update

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

TeamAPlayer Details

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

TeamBPlayer Details

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

Match State

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.

Server

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

Point Scored Packet

Field Name

Type

Description

seqNum

int

Sequence number of the packet

timestamp

timestamp

Timestamp of this packet

eventElementType

string

The event element type values: PointScored, PointFault, PointStarted, PointReplayed, PointLet, CodePenalty, TimePenalty, GamePenalty, Undo, Overrule, CodeViolation, TimeViolation, PhysioCalled, PhysioCancelled, SwapServer, SwapReceiver, OnCourtCoaching, TimeAnnouncement, MoveUmpiresChair,

MatchStatusUpdate, MatchFinished,

Alarm

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.

Score

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

Current Game Score

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

Current Set Score

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

Previous Set Score

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

Tie Break Score

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

Point Score Details

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

Overall Set Score Details

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

Point Started Packet

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 (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 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 (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

{
	"server": {
		"team": "TeamA"
	},
	"timestamp": "2022-03-01T20:46:36.575Z",
	"nextServer": {
		"team": "TeamA"
	},
	"eventElementType": "PointStarted",
	"matchTime": "00:34:49",
	"seqNum": 170
}

Can be used to close markets on the next available point in this game/match.

Point Fault Packet

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 (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 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 (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

Point Replayed Packet

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 (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 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 (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

Point Let Packet

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 (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 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 (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

Code Penalty Packet

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

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 ATP 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

Time Penalty Packet

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

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 ATP 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

Game Penalty Packet

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

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 ATP 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

Undo Packet

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

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

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

Overrule Packet

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

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

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

Code Violation Packet

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

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

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

Time Violation Packet

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

Physio Called Packet

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

Physio Cancelled Packet

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

Swap Server Packet (Doubles Only)

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

Swap Receiver Packet (Doubles Only)

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

Receiver Server Packet (Doubles Only)

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

On Court Coaching Packet

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

Time Announcement Packet

Field Name

Type

Description

seqNum

int

The ATP 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 ATP 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

Move Umpires Chair Packet

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

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

delayStatus

string

Optional field, if present this packet should be considered delayed. Can take one of two values: DELAYED or RECONSTRUCTED

Match Finished Packet

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

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 ATP 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

Alarm Packet

Field Name

Type

Description

seqNum

int

The ATP 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 ATP 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

Correction Mode

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.

Last updated