> 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/pfl-media/stream-endpoints-websocket/fight-actions.md).

# Fight Actions

This web socket endpoint returns the detailed action data per fight. You will need to make a connection for each fight once. This endpoint is in conjunction with the Live Events REST endpoint – when a fight starts it will be included in the response to the /liveevents endpoint, and at that point you should commence connecting to the web socket for that fight’s action feed

## **Endpoint URL**

| Legacy - wss\://dde-streams.data.imgarena.com/media/mma/fight-actions/feed/{id} (Decommissioning on 30th Sept 2026) |
| ------------------------------------------------------------------------------------------------------------------- |
| **NEW** - wss\://dde-streams.data.srarena.io/media/mma/fight-actions/feed/{id}                                      |

## **Process for connecting to the web socket endpoints**

* Connect to the SSL websocket address
* Send JSON packet containing API token
* Receive response indicating that connection is authorised (or a response indicating why the connection cannot be made)
* Receive heartbeat packets every 10 seconds to verify the connection is live
* Receive data packets

Once you have sent the API token, any further data that you send over the connection will be ignored.

## Request Parameters

| **Parameter** | **Type** | **Purpose**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| startPosition | integer  | <p>The position in the stream that you want to start from.<br>Each packet in the stream has a sequence number ('seqNum'), where 1 is the first packet in the stream. By default the stream will start from the beginning.</p><p>This is useful if you get disconnected from a stream and need to reconnect. When reconnecting, if you specify the seqNum of the last packet you received + 1, then you can pick up where you left off without need to reprocess all the events already received.</p> |

## Response Model

Each action packet sent over the websocket has the following format:

| **Field Name**   | **Type** | **Description**                                                                                                                                                                                                     |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fighters         | object   | Name and fighter ID for the red and blue fighters respectively. If not field is not returned then postion is for both fighters                                                                                      |
| timestamp        | string   | ISO 8601 timestamp representing when this action occurred                                                                                                                                                           |
| roundTime        | string   | Time left on the clock when this action occurred                                                                                                                                                                    |
| result           | string   | Optional. Indicates whether or not the attempted action was successful. Possible values are **`successful`** or **`unsuccessful`**                                                                                  |
| eventElementType | string   | The type of event we’re reporting, such as a strike, takedown attempt, or submission attempt. See the **`eventElementType`** table for the possible event types.                                                    |
| id               | integer  | A unique ID associated with the action                                                                                                                                                                              |
| seqNum           | integer  | The sequence number of the packet in the feed                                                                                                                                                                       |
| fighters         | string   | Optional. Which fighter performed the action, if relevant. Possible values are **`Red`** and **`Blue`**.                                                                                                            |
| details          | object   | Optional. Provides detailed information about the nature of the action. See the **`details`** table.                                                                                                                |
| sendType         | string   | <p>Identifies if the packet is either a - "new", "deleted" or "correction".<br></p><p>new = new actionId</p><p>correction = existing actionId which has been amended<br>deleted = actionId has been deleted<br></p> |
| position         | string   | This conveys the position the fighters were in when this action occurred. Possible values include **`backControl, clinch, distance, guard, halfGuard, miscGround, mount, sideControl.`**                            |
| round            | number   | Which round this action occurred in                                                                                                                                                                                 |

## Fighter Object

| **Field Name** | **Type** | **Description**                                          |
| -------------- | -------- | -------------------------------------------------------- |
| red            | object   | colour for fighter (new field, unsure about description) |
| blue           | object   | colour for fighter (new field, unsure about description) |

## Red Object

| **Field Name** | **Type** | **Description** |
| -------------- | -------- | --------------- |
| name           | string   | name of fighter |
| fighterId      | integer  | ID of fighter   |
| ufcFighterId   | string   | will be null    |
| pflFighterId   | string   | PFL fighter ID  |

## Blue Object

| **Field Name** | **Type** | **Description** |
| -------------- | -------- | --------------- |
| name           | string   | name of fighter |
| fighterId      | integer  | ID of fighter   |
| ufcFighterId   | string   | will be null    |
| pflFighterId   | string   | PFL fighter ID  |

## Details format:

| **Field Name** | **Type** | **Description**                                                                                                                                                                                                                      |
| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| target         | string   | The body part at which the strike was aimed, such as **`head, body, leg`** etc. In the case of submissions or takedowns, this is usually provided as **`submission`** or **`takedown`** respectively.                                |
| strength       | string   | The strength behind the action; possible values are **`Sig`**, representing a significant blow, and **`Other`**, representing a less significant jab, a feint, or something else.                                                    |
| strikeType     | string   | Whether this action involved the arms or legs; possible values are **`arm`** and **`leg`**. This may mean a punch or a kick, but may also refer to an elbow/knee strike, a strangle, or something else depending on the action type. |

## **eventElementType** values:

| **Value**               | **Meaning**                                                                                                                                                                                                                                                                                                  |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| position                | Simply indicates the position the fighters are in; a round will open with this event. The **`details, results`**&#x61;nd **`fighter`** fields will not be provided.                                                                                                                                          |
| strike                  | Indicates that the specified fighter attempted to strike their opponent. The **`details`** and **`results`** fields will indicate where the blow was aimed, whether it landed, how much force was behind it, and whether it was a punch / elbow strike or a kick / knee strike. See the **`details`** table. |
| takedown                | Indicates that the specified fighter attempted to take down their opponent.                                                                                                                                                                                                                                  |
| submission              | Indicates that the specified fighter attempted to force a submission from their opponent.                                                                                                                                                                                                                    |
| knockdown               | Indicates that the specified fighter attempted to knock down their opponent.                                                                                                                                                                                                                                 |
| standup                 | Indicates that a fighter attempted to stand up.                                                                                                                                                                                                                                                              |
| reversal                | Indicates that a fighter attempted to execute a reversal.                                                                                                                                                                                                                                                    |
| stop                    | Indicates that the round ended. The **`details, results`** and **`fighter`** fields will not be provided.                                                                                                                                                                                                    |
| pause                   | Indicates that the round was paused. The **`details, results`** and **`fighter`** fields will not be provided.                                                                                                                                                                                               |
| foul\_warning           | Indicates that a fighter was given a warning                                                                                                                                                                                                                                                                 |
| foul\_1point\_deduction | Indicates that a fighter has been deducted 1 point                                                                                                                                                                                                                                                           |
| foul\_2point\_deduction | Indicates that a fighter has been deducted 1 point                                                                                                                                                                                                                                                           |

## Sample Response:

Here’s a sample of the output we have for fight, Murad Ramazanov vs. Josh Silveira; this packet represents a successful, significant strike to the head, where Murad Ramazanov is the attacker. It also indicates that the fighters were standing apart from one another when the blow was dealt.

```
{
  "details": {
    "strength": "Sig",
    "target": "head"
  },
  "eventElementType": "strike",
  "fighter": "Red",
  "fighters": {
    "blue": {
      "fighterId": 6140,
      "name": "Murad Ramazanov",
      "ufcFighterId": null,
      "pflFighterId":"715"
    },
    "red": {
      "fighterId": 6135,
      "name": "Josh Silveira",
      "ufcFighterId": null,
      "pflFighterId":"323"
    }
  },
  "id": 267,
  "position": "distance",
  "result": "successful",
  "round": 3,
  "roundTime": "00:00:06",
  "sendType": "new",
  "seqNum": 273,
  "timestamp": "2025-08-21T22:47:06.0349759Z"
}
```

#### **Fouls**

If a player commits a foul, the infraction may result in one of the following outcomes:

* **Warning** – No point deduction; serves as a caution.
* **1-Point Deduction** – Applied for repeated or moderate fouls.
* **2-Point Deduction** – Applied for severe or intentional fouls.

Foul information is included in the **`/action`** feed and indicates the type of penalty applied.

Foul - warning:

```
{
  "eventElementType": "foul_warning",
  "fighter": "Red",
  "fighters": {
    "blue": {
      "fighterId": 4833,
      "name": "Xavier Alaoui",
      "pflFighterId": "759",
      "ufcFighterId": null
    },
    "red": {
      "fighterId": 4834,
      "name": "Islam Youssef",
      "pflFighterId": "1033",
      "ufcFighterId": null
    }
  },
  "id": 24,
  "position": "mount",
  "round": 1,
  "roundTime": "03:44",
  "sendType": "new",
  "seqNum": 24,
  "timestamp": "2025-11-19T10:25:29.9432159Z"
}
```

Foul - 1 point deduction:

```
{
  "eventElementType": "foul_1point_deduction",
  "fighter": "Blue",
  "fighters": {
    "blue": {
      "fighterId": 4833,
      "name": "Xavier Alaoui",
      "pflFighterId": "759",
      "ufcFighterId": null
    },
    "red": {
      "fighterId": 4834,
      "name": "Islam Youssef",
      "pflFighterId": "1033",
      "ufcFighterId": null
    }
  },
  "id": 36,
  "position": "distance",
  "round": 1,
  "roundTime": "03:06",
  "sendType": "new",
  "seqNum": 36,
  "timestamp": "2025-11-19T10:26:03.3909369Z"
}
```

Foul - 2 point deduction:

```
{
  "eventElementType": "foul_2point_deduction",
  "fighter": "Blue",
  "fighters": {
    "blue": {
      "fighterId": 4833,
      "name": "Xavier Alaoui",
      "pflFighterId": "759",
      "ufcFighterId": null
    },
    "red": {
      "fighterId": 4834,
      "name": "Islam Youssef",
      "pflFighterId": "1033",
      "ufcFighterId": null
    }
  },
  "id": 40,
  "position": "distance",
  "round": 1,
  "roundTime": "02:00",
  "sendType": "new",
  "seqNum": 40,
  "timestamp": "2025-11-19T10:27:10.0927718Z"
}
```


---

# 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/pfl-media/stream-endpoints-websocket/fight-actions.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.
