> 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
