> For the complete documentation index, see [llms.txt](https://docs.sportradar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sportradar.com/tennis/live-data-scenarios-1/challenge.md).

# Challenge

## Overview

On certain courts at certain tournaments, when the technology is available, players/teams can choose to challenge the call of the umpire or line judge if they think that they have made a mistake.

Teams have 3 unsuccessful challenges per set, with one more added if the set goes to a tiebreak. If they are successful in a challenge then they keep that challenge (e.g. if they are on 2 challenges and they win the challenge, they still have 2 challenges remaining)

There are a number of scenarios, e.g:ScenarioExample

A

Player A hits the ball OUT, the ball is called IN. Player B challenges, and WINS the challenge.

B

Player A hits the ball IN, the ball is called OUT. Player A challenges, and WINS the challenge.

C

Player A hits the ball OUT, the Ball is called OUT. Player A challenges. and LOSES the challenge.

D

Player A hits the ball IN, the ball is called IN. Player B challenges, and LOSES the challenge.

## Packets

The 'Challenge' packets will come after 'Point Started' packets and before 'Point' packets.

Here is a standard challenge scenario (Score is 0-0 in the game):

* 'Point Started' packet received
* Player B hits the ball long, ball is called long. Player B challenges. 'Challenge' Packet received, e.g:
* Challenge JSON

```
{
  "timestamp": "2022-06-28T20:00:52.148Z",
  "eventElementType": "MatchStatusUpdate",
  "matchTime": "01:45:22",
  "seqNum": 518,
  "matchStatus": {
    "umpireCountry": "SRB",
    "umpire": "M. VELJOVIC",
    "teamAPlayer1": "R. PETERSON",
    "tossChooser": "Serve",
    "matchState": {
      "team": "TeamB",
      "state": "ChallengeInProgress",
      "locationTimestamp": "2022-06-28T21:00:51"
    },
    "teamBPlayer1": "A. SCHMIEDLOVA",
    "numSets": 3,
    "scoringType": "LastSetTiebreak12",
    "firstServer": "TeamA",
    "tossWinner": "TeamA",
    "courtNum": 6,
    "teamAPlayersDetails": {
      "player1Id": "317771",
      "player1Country": "SWE"
    },
    "teamBPlayersDetails": {
      "player1Id": "318203",
      "player1Country": "SVK"
    },
    "umpireCode": "M\\YAAA",
    "tieBreakType": "TieBreakInFinalSet"
  }
}
```

Next, after the challenge has been reviewed, the Challenge will either have won or lost, and you will receive a packet like the following.

The packet contains the information that Team A won the challenge:

* Challenge Lost (Player B) JSON

```
{
  "timestamp": "2022-06-28T20:00:53.907Z",
  "eventElementType": "MatchStatusUpdate",
  "matchTime": "01:45:22",
  "seqNum": 519,
  "matchStatus": {
    "umpireCountry": "SRB",
    "umpire": "M. VELJOVIC",
    "teamAPlayer1": "R. PETERSON",
    "tossChooser": "Serve",
    "matchState": {
      "challengeEnded": "2022-06-28T21:00:52",
      "state": "ChallengeInProgress",
      "team": "TeamB",
      "locationTimestamp": "2022-06-28T21:00:51",
      "won": "TeamA"
    },
    "teamBPlayer1": "A. SCHMIEDLOVA",
    "numSets": 3,
    "scoringType": "LastSetTiebreak12",
    "firstServer": "TeamA",
    "tossWinner": "TeamA",
    "courtNum": 6,
    "teamAPlayersDetails": {
      "player1Id": "317771",
      "player1Country": "SWE"
    },
    "teamBPlayersDetails": {
      "player1Id": "318203",
      "player1Country": "SVK"
    },
    "umpireCode": "M\\YAAA",
    "tieBreakType": "TieBreakInFinalSet"
  }
}
```

* The next packet will be the 'In Progress' packet, indicating that the match is out of 'Challenge' Mode
* After this the 'Point' packet will be sent with the correct score (In this case 15-0, as Player A won the point)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sportradar.com/tennis/live-data-scenarios-1/challenge.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
