# Message Structure

This section documents the complete structure of all message types delivered through the TRADE RabbitMQ feed.

## Overview

TRADE sends data in structured messages, each with a specific type identifier. Messages are delivered in either JSON or XML format based on your package configuration.

## Message Categories

### Standard Messages

| Message Type                                                                           | Type ID | Description                   |
| -------------------------------------------------------------------------------------- | ------- | ----------------------------- |
| [Fixture](https://docs.lsports.eu/u/trade/integration/message-structure/fixture)       | 1       | Fixture metadata updates      |
| [Livescore](https://docs.lsports.eu/u/trade/integration/message-structure/livescore)   | 2       | Live score and period updates |
| [Market](https://docs.lsports.eu/u/trade/integration/message-structure/market)         | 3       | Odds and market updates       |
| [Settlement](https://docs.lsports.eu/u/trade/integration/message-structure/settlement) | 35      | Bet settlement information    |
| [Heartbeat](https://docs.lsports.eu/u/trade/integration/message-structure/heartbeat)   | 32      | Connection health indicator   |
| [Keep Alive](https://docs.lsports.eu/u/trade/integration/message-structure/keep-alive) | 31      | Active fixtures list          |

### Outright Messages

| Message Type                                                                                             | Type ID | Description             |
| -------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| [Outright Fixture](https://docs.lsports.eu/u/trade/integration/message-structure/outright-fixture)       | 37      | Outright event metadata |
| [Outright Livescore](https://docs.lsports.eu/u/trade/integration/message-structure/outright-livescore)   | 39      | Outright live updates   |
| [Outright Market](https://docs.lsports.eu/u/trade/integration/message-structure/outright-market)         | 41      | Outright odds updates   |
| [Outright Settlement](https://docs.lsports.eu/u/trade/integration/message-structure/outright-settlement) | 42      | Outright settlements    |

### Outright League Messages

| Message Type                                                                                                           | Type ID | Description                 |
| ---------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------- |
| [Outright League Fixture](https://docs.lsports.eu/u/trade/integration/message-structure/outright-league-fixture)       | 38      | League outright metadata    |
| [Outright League Market](https://docs.lsports.eu/u/trade/integration/message-structure/outright-league-market)         | 40      | League outright odds        |
| [Outright League Settlement](https://docs.lsports.eu/u/trade/integration/message-structure/outright-league-settlement) | 43      | League outright settlements |

## Message Headers

All messages contain headers with routing and metadata information:

* [RabbitMQ Header](https://docs.lsports.eu/u/trade/integration/message-structure/rabbitmq-header) - Transport-level headers
* [TRADE Message Header](https://docs.lsports.eu/u/trade/integration/message-structure/trade-message-header) - Application-level headers

{% hint style="info" %}
**New:** RabbitMQ headers now include `SportId`, allowing you to route or filter messages by sport without deserializing the message body. Available on all message types except Keep Alive and Heartbeat.
{% endhint %}

## Message Format

Messages follow a consistent structure:

```json
{
  "Header": {
    "Type": 3,
    "MsgSeq": 12345,
    "MsgGuid": "uuid-here",
    "ServerTimestamp": 1234567890
  },
  "Body": {
    // Message-specific content
  }
}
```
