> 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/table-tennis/live-data-scenarios/during-a-match/sanctions/game-penalties.md).

# Penalties

## Overview

For further information about the type of penalties, please see [Sanctions](/table-tennis/live-data-scenarios/during-a-match/sanctions.md#sanctions-overview).\
If a sanction involves any point decrement due to a penalty, then the action has two parts. The first part is always a `Sanction` packet that describes the reason of a sanction (yellow and red card for the 1st time, or for the 2nd time, etc), followed by a [`PenaltyPoint`](#1-penalty-point-s) packet that contains the actual scores of the match, indicating a 1 point or 2 points decrements.

1. **Player** - Yellow Card 🟨
2. ~~**Coach** - Yellow Card~~ 🟨 (Currently not supported)
3. **Player** - Yellow and Red Card (1st) 🟨 🟥
4. **Player** - Yellow and Red Card (2nd) 🟨 🟥

## 1. Player - Yellow Card (Warning) 🟨

Showing a yellow card by the umpire is a warning to the player. If the player repeats the action or do something else wrong they can get a red card and then lose a point (See [Penalty Points](#penalty-points)). A `Sanction` packet, along with the `sanction type` will be emitted. (no penalty points).

```
{
    "eventElementType": "Sanction",
    "id": 0,
    "seqNum": 51,
    "sanctionType": "PlayerYellowCard",
    "team": "TeamA",
    "game": 2,
    "timestamp": "1970-01-01T00:00:00.000Z"
}
```

## 1. ~~Coach - Yellow Card~~ 🟨 (Currently not supported)

Showing a yellow card by the umpire is a warning to the coach. A `Sanction` packet, along with the `sanction type` will be emitted. (no penalty points).

```
{
    "eventElementType": "Sanction",
    "id": 0,
    "seqNum": 51,
    "sanctionType": "CoachYellowCard",
    "team": "TeamA",
    "game": 2,
    "timestamp": "1970-01-01T00:00:00.000Z"
}
```

## 1. Player - Yellow & Red Card (1st) 🟨 🟥

Showing a yellow and red card together for the 1st time means the player repeated any wrongdoing or did something else wrong and now losing a point (See [Penalty Points](#penalty-points)). After the `Sanction` packet, a [`PenaltyPoint`](#1-penalty-point-s) packet is emitted showing the current state of scores - 1 point decrement is expected.

```
{
    "eventElementType": "Sanction",
    "id": 0,
    "seqNum": 51,
    "sanctionType": "PlayerYellowRedOne",
    "team": "TeamA",
    "game": 2,
    "timestamp": "1970-01-01T00:00:00.000Z"
}
```

## 1. Player - Yellow & Red Card (2st) 🟨 🟥

Showing a yellow and red card together for the 2nd time means the player repeated any wrongdoing or did something else wrong and now losing a point (See [Penalty Points](#penalty-points)). After the `Sanction` packet, a [`PenaltyPoint`](#1-penalty-point-s) packet is emitted showing the current state of scores - 2 points decrement is expected.

```
{
    "eventElementType": "Sanction",
    "id": 0,
    "seqNum": 51,
    "sanctionType": "PlayerYellowRedTwo",
    "team": "TeamA",
    "game": 2,
    "timestamp": "1970-01-01T00:00:00.000Z"
}
```

## 1. Penalty Point(s)

Showing a yellow and red card together means the player repeated any wrongdoing or did something else wrong, and one or two points are awarded to the opponent for the offence(s). Before a `PenaltyPoint` packet, a `Sanction` is expected to be received (See [Player Yellow and Red 1 Card](#1-player-yellow-and-red-card-1-st) or [Player Yellow and Red 2 Card](#1-player-yellow-and-red-card-2-st)), and the current state of scores is being sent as part of the `PenaltyPoint` packet.

```
{
    "eventElementType": "PenaltyPoint",
    "id": 0,
    "seqNum": 26,
    "team": "TeamA",
    "matchScore": {
        "pointsA": 0,
        "pointsB": 0
    },
    "scores": [
        {
            "pointsA": 0,
            "pointsB": 11
        },
        {
            "pointsA": 5,
            "pointsB": 5
        },
        {
            "pointsA": 0,
            "pointsB": 0
        },
        {
            "pointsA": 0,
            "pointsB": 0
        },
        {
            "pointsA": 0,
            "pointsB": 0
        }
    ],
    "game": 2,
    "timestamp": "1970-01-01T00:00:00.000Z"
}
```


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.sportradar.com/table-tennis/live-data-scenarios/during-a-match/sanctions/game-penalties.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
