Tennis
- Martin Mand
- Martin Kuks
- Helen Allas (Deactivated)
The rules of tennis can be found here:
- International Tennis Federation: https://www.itftennis.com/officiating/rulebooks/rules-of-tennis.aspx
Note: rules can vary between competitions.
This document describes the V3 tennis match state contract.
Match Summary Message
The summary message summarises the major match events into a single, easily digested message.
{ "Source":Betgenius, "BetgeniusFixtureId":3415011, "SourceFixtureId":null, "BookmakerId":6002, "CompetitorA":{}, "CompetitorB":{}, "IsReliable":true, "IsScoreConfirmed":True, "StateOfPlay":"BetweenPoints", "Server":"CompetitorA", "Match":{}, "StartedAt":"2015-10-01T15:15:40.951Z", "FinishedAt":null, "MessageTimestampUtc":"2015-10-01T15:15:44.955Z" }
Element | Type | Description |
---|---|---|
Source | String | The source of the data, typically the name of the company analysing the match |
BetgeniusFixtureId | Integer | An immutable identifier for the fixture |
SourceFixtureId | String | The fixture ID used by the data source if data source is not Betgenius |
BookmakerId | Integer | An immutable identifier for the customer |
CompetitorA | CompetitorDetails | An object that describes Competitor A |
CompetitorB | CompetitorDetails | An object that describes Competitor B |
IsReliable | Boolean | True if the data values are reliable, False otherwise |
IsScoreConfirmed | Boolean | True if this score has been confirmed, False otherwise |
StateOfPlay | MatchStatus | An enum describing the current state of play. Values: |
Server | CompetitorIdentifier | An object that indicates which competitor is serving |
Match | Match | An object that describes the match score |
StartedAt | DateTime, optional | The UTC time that the fixture started, if complete; null otherwise |
FinishedAt | DateTime, optional | The UTC time that the fixture ended, if complete; null otherwise |
MessageTimestampUtc | DateTime | The UTC time that the message is sent |
CompetitorDetails
Describes a player in a tennis match.
{ "Id":"6546872", "Name":"Andy Murray" }
Element | Type | Description |
---|---|---|
Id | String | An immutable ID for the player |
Name | String | The name of the player |
Match
Describes the current score in a tennis match.
{ "MatchScore":{}, "IsMatchComplete":false, "IsDataComplete":true, "Sets":[], "Statistics":{} }
Element | Type | Description |
---|---|---|
MatchScore | Score | An object that describes the score in sets, games and points |
IsMatchComplete | Boolean | True if the match is complete, false otherwise |
IsDataComplete | Boolean | True if the data is complete, false otherwise |
Sets | Set | An array of set objects |
Statistics | CompetitorStatistics | An object holding statistics for each competitor |
Set
Describes the score in a set of a tennis match.
{ "SetNumber":1, "SetScore":{}, "IsSetComplete":true, "IsDataComplete":true, "SetType":Advantage, "Games":[], "Statistics":{}, "TieBreakStartsAt":1 }
Element | Type | Description |
---|---|---|
SetNumber | Short | The number of the set within the match |
SetScore | Score | The set score in games |
IsSetComplete | Boolean | True if the set is complete, false otherwise |
IsDataComplete | Boolean | True if the data is complete, false otherwise |
SetType | SetType | An enum indicating the rules that will determine how the set winner will be decided if the score reaches 6-6. Values: |
Games | Game | An array of game objects detailing the outcome of individual games |
Statistics | CompetitorStatistics | An object holding statistics for each competitor |
TieBreakStartsAt | Integer | Null or an integer, defines the number of tied games (6-6,10-10,12-12) required for the tiebreak to start in this specific set. Example, if the tie break starts at 6-6 the value is 6 If tie break is not used, the value is set to null |
CompetitorStatistics
Contains statistics about a players performance within the set or match.
{ "Competitor":{}, "FirstServeAces":2, "FirstServePointsWonByServer":4, "FirstServePointsWonByReceiver":4, "SecondServeAces":0, "SecondServeFaults":0, "SecondServePointsWonByServer":0, "SecondServePointsWonByReceiver":0, "BreakPointsFaced":0, "BreakPointsLost":0 }
Element | Type | Description |
---|---|---|
Competitor | CompetitorIdentifier | An array describing the competitor to whom these statistics apply |
FirstServeAces | Short | The number of aces awarded to the player from their first serve |
FirstServePointsWonByServer | Short | The number of points won by the server on their first serve |
FirstServerPointsWonByReceiver | Short | The number of points won by the receiver from the server's first serve |
SecondServeAces | Score | The number of aces awarded to the player from their second serves |
SecondServeFaults | Short | The number of double faults committed by the player |
SecondServePointsWonByServer | Short | The number of points won by the server on their second server |
SecondServePointsWonByReceiver | Short | The number of points won by the receiver on the server's second server |
BreakPointsFaced | Short | The number of break points faced by the competitor |
BreakPointsLost | Short | The number of break points lost by the competitor |
Game
Describes the score in a game of a tennis match.
{ "GameNumber":1, "GameScore":{}, "IsGameComplete":true, "IsDataComplete":true, "GameType":Standard, "Points":[] }
Element | Type | Description |
---|---|---|
GameNumber | Short | The number of the game within the set |
GameScore | Score | The game score in points and in standard tennis format |
IsGameComplete | Boolean | True if the game is complete, false otherwise |
IsDataComplete | Boolean | True if the data is complete, false otherwise |
GameType | GameType | An enum indicating how the winner of the game will be decided if the score reaches 40-40. Values: |
Points | Point | An array of point objects detailing the outcome of individual points |
GameScore
Describes the score in a game of a tennis match.
{ "DisplayCompetitorOneScore":"30", "DisplayCompetitorTwoScore":"40", "CompetitorOneScore":2, "CompetitorTwoScore":3, }
Element | Type | Description |
---|---|---|
DisplayCompetitorOneScore | String | Competitor One's score in standard tennis nomenclature. Values for normal game: |
DisplayCompetitorTwoScore | String | Competitor Two's score in standard tennis nomenclature. Values for normal game: |
CompetitorOneScore | Short | A count of points scored by Competitor One |
CompetitorTwoScre | Short | A count of points scored by Competitor Two |
Match Details Message
Tennis match details messages provide the same kind of data as summaries do, however a full timeline of the event is kept available within any given message.
{ "Source":Betgenius, "BetgeniusFixtureId":3415011, "SourceFixtureId":null, "BookmakerId":6002, "CompetitorA":{}, "CompetitorB":{}, "IsReliable":true, "IsScoreConfirmed":True, "StateOfPlay":"BetweenPoints", "Server":"CompetitorA", "Match":{}, "MessageTimestampUtc":"2015-10-01T15:15:44.955Z" }
Element | Type | Description |
---|---|---|
Source | String | The source of the data, typically the name of the company analysing the match |
BetgeniusFixtureId | Integer | An immutable identifier for the fixture |
SourceFixtureId | String | The fixture ID used by the data source if data source is not Betgenius |
BookmakerId | Integer | An immutable identifier for the customer |
CompetitorA | CompetitorDetails | An object that describes Competitor A |
CompetitorB | CompetitorDetails | An object that describes Competitor B |
IsReliable | Boolean | True if the data values are reliable, False otherwise |
IsScoreConfirmed | Boolean | True if this score has been confirmed, False otherwise |
StateOfPlay | MatchStatus | An enum describing the current state of play. Values: |
Server | CompetitorIdentifier | An object that indicates which competitor is serving |
Match | Match | An object that describes the match score |
MessageTimestampUtc | DateTime | The UTC time that the message is sent |
Points
Describes a point in a game of a tennis match.
{ "PointNumber":1, "Server":{}, "IsInSequence":true, "IsDataComplete":true, "Actions":[] }
Element | Type | Description |
---|---|---|
PointNumber | Short | The number of the point within the game |
Server | CompetitorIdentifer | An object that indicates which competitor is serving |
IsInSequence | Boolean | True if Point is in sequence, false otherwise |
IsDataComplete | Boolean | True if the data is complete, false otherwise |
Actions | PointAction | A collection of point actions describing the history of the point |
PointAction
Describes a point in a game of a tennis match.
{ "ActionType":PointStarted, "TimestampUtc":"2015-10-01T15:15:44.9551641Z" }
Element | Type | Description |
---|---|---|
ActionType | PointActionType | The type of point action. Values |
TimestampUtc | Datetime | The time in UTC at which the action was recorded by the Umpire |