> For the complete documentation index, see [llms.txt](https://docs.lsports.eu/u/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lsports.eu/u/engage/hyper-livescore/incidents-message-structure.md).

# Incidents Message Structure

## Common Header

| Field       | Type          | Notes                             |
| ----------- | ------------- | --------------------------------- |
| MessageId   | string (GUID) | Unique per message; GUID/UUID v4  |
| Timestamp   | ISO-8601      | UTC                               |
| MessageType | int (enum)    | 1 = Fixture, 2 = LiveScore        |
| Fixtureid   | String        | Unique identifier for the fixture |
| Leagueid    | String        | Unique identifier for the League  |
| Sportid     | String        | Unique identifier for the sport   |

***

## LiveScore (Incidents)

**Example**

```json
{
  "header": {
    "MessageId": "0a5aa9bc-4c5c-4d0a-8f75-0b8f6f12c9a1",
    "Timestamp": "2025-11-04T19:55:25Z",
    "MessageType": 2
  },
  "body": {
    "status": null,
    "id": 777001,
    "fixtureId": 123456,
    "name": "Goal",
    "kind": "ScoreChange",
    "values": [
      { "position": 1, "value": "1" },
      { "position": 2, "value": "0" }
    ],
    "scoreType": 1,
    "initiatorPosition": 1,
    "seconds": 625,
    "playerList": [
      { "id": 501, "teamId": 9001, "name": "Bukayo Saka" }
    ],
    "period": { "id": 10, "name": "1st Half" },
    "confidence": 0.94,
    "IncidentKey": "c837649cce43f2729138e72cc3152070",
    "Sent": true,
    "DeliveryError": null
  }
}
```

***

## Fields

| Field             | Type                   | Required | Notes                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------- | ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fixtureId         | int                    | Yes      | Join to fixtures                                                                                                                                                                                                                                                                                                                                                                                   |
| status            | string \| null         | No       | Score/Statistics → `'Empty'` / `'Cancelled'`; Period → `'Started'` / `'Finished'`; else `null`. `'Cancelled'` — status in the Hyper feed which means not a terminal state. It signals that the previous value is overturned, and the system automatically re-emits the corrected incident value right after.                                                                                       |
| id                | int                    | Yes      | Incident identifier                                                                                                                                                                                                                                                                                                                                                                                |
| name              | string                 | Yes      | Incident label (e.g., Goal)                                                                                                                                                                                                                                                                                                                                                                        |
| kind              | string                 | Yes      | Incident category                                                                                                                                                                                                                                                                                                                                                                                  |
| values            | array\<Value> \| null  | No       | Keyed values (e.g., score per side)                                                                                                                                                                                                                                                                                                                                                                |
| scoreType         | int \| null            | No       | Score semantics (if applicable)                                                                                                                                                                                                                                                                                                                                                                    |
| initiatorPosition | int (enum) \| null     | No       | 1 = home, 2 = away                                                                                                                                                                                                                                                                                                                                                                                 |
| seconds           | int \| null            | No       | Elapsed time from kickoff                                                                                                                                                                                                                                                                                                                                                                          |
| period            | object                 | No       | period.id: int, period.name: string, period.subPeriod: SubPeriod \| null (see below)                                                                                                                                                                                                                                                                                                               |
| playerList        | array\<Player> \| null | No       | Optional list of players associated with the incident                                                                                                                                                                                                                                                                                                                                              |
| confidence        | double (0.0–1.0)       | Yes      | Confidence grade (always present)                                                                                                                                                                                                                                                                                                                                                                  |
| IncidentKey       | string \| null         | No       | Identifies a single incident. Every message reporting the same incident carries the same key, so you can group them together. A change in value is a separate incident with its own key — e.g. all messages for a `0:1` score share one key; when the score becomes `1:1`, that is a different incident with a different key. Present when available; omitted when the source incident has no key. |
| Sent              | bool \| null           | No       | Whether this incident message was delivered to you. `true` = delivered, `false` = delivery failed. `null` when no delivery record exists — for example, when the fixture is not part of your subscription                                                                                                                                                                                          |
| DeliveryError     | string \| null         | No       | Reason delivery failed. Populated when `Sent` is `false`; `null` otherwise                                                                                                                                                                                                                                                                                                                         |

***

## Value (object)

| Field    | Type       | Required | Notes                        |
| -------- | ---------- | -------- | ---------------------------- |
| position | int (enum) | No       | 1 = home, 2 = away           |
| value    | string     | No       | Value for the given position |

## SubPeriod (object)

Structured game context nested under `period` for incidents that carry it (e.g. tennis `GamePoint`). `period.name` stays the raw period label (e.g. `"1st Set"`); consumers compose a combined display (e.g. `"1st Set - Game 2"`) from `period.name` and `subPeriod.name` as needed. Omitted when not applicable.

| Field          | Type           | Required | Notes                                         |
| -------------- | -------------- | -------- | --------------------------------------------- |
| isTiebreak     | bool \| null   | No       | Whether the current game is a tiebreak        |
| pointNumber    | int \| null    | No       | Point number within the game                  |
| sequenceNumber | int \| null    | No       | Sequence number of the sub-period (e.g. game) |
| name           | string \| null | No       | Sub-period label (e.g. `"Game 2"`)            |

## Player (object)

| Field  | Type        | Required | Notes       |
| ------ | ----------- | -------- | ----------- |
| id     | int         | No       | Player id   |
| teamId | int \| null | No       | Team id     |
| name   | string      | No       | Player name |


---

# 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.lsports.eu/u/engage/hyper-livescore/incidents-message-structure.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.
