# Market

This documentation describes the complete structure of a Market Update message (Type 3) as delivered by TRADE.

{% tabs %}
{% tab title="1x2 - JSON" %}

```json
{
    "Header": {
      "Type": 3,
      "MsgSeq": 1,
      "MsgGuid": "fe7b57c4-3d14-4b07-93a2-aa9ad03dda5e",
      "CreationDate": "2025-07-21T09:53:23.0550313Z",
      "ServerTimestamp": 1753091603055
    },
    "Body": {
      "Events": [
        {
          "FixtureId": 24605698,
          "Livescore": null,
          "Markets": [
            {
              "Id": 1,
              "Name": "1X2",
              "Bets": [
                {
                  "Probability": 0.42869,
                  "Id": 30713932524605698,
                  "Name": "1",
                  "Status": 1,
                  "StartPrice": "2.1",
                  "Price": "2.1",
                  "ProviderBetId": "8",
                  "LastUpdate": "2025-07-21T09:53:22.97925Z",
                  "PriceIN": "1.1",
                  "PriceUS": "110",
                  "PriceUK": "11/10",
                  "PriceMA": "-0.9090909090909091",
                  "PriceHK": "1.1",
                  "Order": 1
                },
                {
                  "Probability": 0.22506,
                  "Id": 92291723224605698,
                  "Name": "X",
                  "Status": 1,
                  "StartPrice": "4",
                  "Price": "4",
                  "ProviderBetId": "8",
                  "LastUpdate": "2025-07-21T09:53:22.9792516Z",
                  "PriceIN": "3",
                  "PriceUS": "300",
                  "PriceUK": "3/1",
                  "PriceMA": "-0.3333333333333333",
                  "PriceHK": "3",
                  "Order": 2
                },
                {
                  "Probability": 0.34625,
                  "Id": 9614520224605698,
                  "Name": "2",
                  "Status": 1,
                  "StartPrice": "2.6",
                  "Price": "2.6",
                  "ProviderBetId": "8",
                  "LastUpdate": "2025-07-21T09:53:22.9792539Z",
                  "PriceIN": "1.6",
                  "PriceUS": "160",
                  "PriceUK": "8/5",
                  "PriceMA": "-0.625",
                  "PriceHK": "1.6",
                  "Order": 3
                }
              ],
              "ProviderMarkets": [
                {
                  "Id": 8,
                  "Name": "Bet365",
                  "LastUpdate": "2025-07-21T09:53:22.080305Z",
                  "Bets": [
                    {
                      "Id": 39686,
                      "Name": "1",
                      "Status": 1,
                      "StartPrice": "2.1",
                      "Price": "2.1",
                      "LastUpdate": "2025-07-21T09:53:22.081105Z",
                      "Order": 1
                    },
                    {
                      "Id": 39687,
                      "Name": "X",
                      "Status": 1,
                      "StartPrice": "4",
                      "Price": "4",
                      "LastUpdate": "2025-07-21T09:53:22.081152Z",
                      "Order": 2
                    },
                    {
                      "Id": 39688,
                      "Name": "2",
                      "Status": 1,
                      "StartPrice": "2.6",
                      "Price": "2.6",
                      "LastUpdate": "2025-07-21T09:53:22.081153Z",
                      "Order": 3
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
```

{% endtab %}

{% tab title="U/O - JSON" %}

```json
{
    "Header": {
      "Type": 3,
      "MsgSeq": 3,
      "MsgGuid": "d99e7292-fcf7-4089-acea-31230409e6c9",
      "CreationDate": "2025-07-21T10:31:43.9719135Z",
      "ServerTimestamp": 1753093903971
    },
    "Body": {
      "Events": [
        {
          "FixtureId": 24605720,
          "Livescore": null,
          "Markets": [
            {
              "Id": 2,
              "Name": "Under/Over",
              "MainLine": "0.5",
              "Bets": [
                {
                  "Probability": 0.31818,
                  "Id": 115615308324605720,
                  "Name": "Under",
                  "Line": "1.5",
                  "BaseLine": "1.5",
                  "Status": 1,
                  "StartPrice": "3.1",
                  "Price": "3",
                  "ProviderBetId": "0",
                  "LastUpdate": "2025-07-21T10:31:43.9043109Z",
                  "PriceIN": "2",
                  "PriceUS": "200",
                  "PriceUK": "2/1",
                  "PriceMA": "-0.5",
                  "PriceHK": "2",
                  "Order": 1
                },
                {
                  "Probability": 0.68182,
                  "Id": 92513435324605720,
                  "Name": "Over",
                  "Line": "1.5",
                  "BaseLine": "1.5",
                  "Status": 1,
                  "StartPrice": "1.3",
                  "Price": "1.4",
                  "ProviderBetId": "0",
                  "LastUpdate": "2025-07-21T10:31:43.9043141Z",
                  "PriceIN": "-2.5000000000000004",
                  "PriceUS": "-250",
                  "PriceUK": "2/5",
                  "PriceMA": "0.3999999999999999",
                  "PriceHK": "0.3999999999999999",
                  "Order": 2
                }
              ],
              "ProviderMarkets": [
                {
                  "Id": 74,
                  "Name": "MarathonBet",
                  "LastUpdate": "2025-07-21T10:31:33.322839Z",
                  "Bets": [
                    {
                      "Id": 439,
                      "Name": "Under",
                      "Line": "0.5",
                      "BaseLine": "0.5",
                      "Status": 1,
                      "StartPrice": "1.5",
                      "Price": "1.5",
                      "LastUpdate": "2025-07-21T10:31:33.322839Z",
                      "Order": 1
                    },
                    {
                      "Id": 440,
                      "Name": "Over",
                      "Line": "0.5",
                      "BaseLine": "0.5",
                      "Status": 1,
                      "StartPrice": "2.4",
                      "Price": "2.4",
                      "LastUpdate": "2025-07-21T10:31:33.32284Z",
                      "Order": 2
                    },
                    {
                      "Id": 878,
                      "Name": "Under",
                      "Line": "1.5",
                      "BaseLine": "1.5",
                      "Status": 1,
                      "StartPrice": "2.9",
                      "Price": "2.9",
                      "LastUpdate": "2025-07-21T10:31:33.32284Z",
                      "Order": 1
                    },
                    {
                      "Id": 879,
                      "Name": "Over",
                      "Line": "1.5",
                      "BaseLine": "1.5",
                      "Status": 1,
                      "StartPrice": "1.5",
                      "Price": "1.5",
                      "LastUpdate": "2025-07-21T10:31:33.32284Z",
                      "Order": 2
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
```

{% endtab %}

{% tab title="U/O Player - JSON" %}

```json
{
  "Header": {
    "Type": 3,
    "MsgSeq": 1,
    "MsgGuid": "22043c90-b170-474a-8f61-c41d8289ed6c",
    "CreationDate": "2026-03-11T13:45:00.4354748Z",
    "ServerTimestamp": 1773236700435
  },
  "Body": {
    "Events": [
      {
        "FixtureId": 26235480,
        "Livescore": null,
        "Markets": [
          {
            "Id": 1069,
            "Name": "Under/Over Player Points",
            "Bets": [
              {
                "Probability": 0.41491,
                "Id": 31039237226235480,
                "Name": "Under",
                "Line": "6.5",
                "BaseLine": "Stockport County#6.5",
                "Status": 1,
                "StartPrice": "1.98",
                "Price": "1.98",
                "ProviderBetId": "8",
                "LastUpdate": "2026-03-11T15:45:00.416+02:00",
                "SerializedLastUpdate": "2026-03-11T15:45:00.416Z",
                "ParticipantId": 993,
                "PlayerName": "Stockport County",
                "PlayerId": "993"
              },
              {
                "Probability": 0.58509,
                "Id": 187227859226235480,
                "Name": "Over",
                "Line": "6.5",
                "BaseLine": "Stockport County#6.5",
                "Status": 1,
                "StartPrice": "1.4",
                "Price": "1.4",
                "ProviderBetId": "8",
                "LastUpdate": "2026-03-11T15:45:00.416+02:00",
                "SerializedLastUpdate": "2026-03-11T15:45:00.416Z",
                "ParticipantId": 993,
                "PlayerName": "Stockport County",
                "PlayerId": "993"
              }
            ]
          }
        ]
      }
    ]
  }
}
```

{% endtab %}

{% tab title="U/O - XML" %}
{% code fullWidth="true" %}

```xml
<Markets>
    <Market Id="2" Name="Under/Over" MainLine="3.5">
      <Bets>
        <Bet Id="14576566594209218" Name="Over" Line="3.5" BaseLine="3.5" Status="1" StartPrice="1.0" Price="1.844" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="-118" PriceHK="0.844" "Order"=2/>
        <Bet Id="17752677724209218" Name="Over" Line="4.5" BaseLine="4.5" Status="1" StartPrice="1.0" Price="3.563" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="256" PriceHK="2.563" "Order"=2/>
        <Bet Id="16341052714209218" Name="Over" Line="5.5" BaseLine="5.5" Status="1" StartPrice="1.0" Price="7.482" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="648" PriceHK="6.482" "Order"=2/>
        <Bet Id="20966252704209218" Name="Under" Line="2.5" BaseLine="2.5" Status="1" StartPrice="1.0" Price="4.585" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="359" PriceHK="3.585" "Order"=1/>
        <Bet Id="2494839224209218" Name="Over" Line="3.75" BaseLine="3.75" Status="1" StartPrice="1.0" Price="2.138" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="114" PriceHK="1.138" "Order"=2/>
        <Bet Id="20966252374209218" Name="Under" Line="3.5" BaseLine="3.5" Status="1" StartPrice="1.0" Price="1.918" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="-109" PriceHK="0.918" "Order"=1/>
        <Bet Id="20575927744209218" Name="Over" Line="6.5" BaseLine="6.5" Status="1" StartPrice="1.0" Price="13.0" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="1200" PriceHK="12" "Order"=2/>
        <Bet Id="3306500694209218" Name="Under" Line="3.25" BaseLine="3.25" Status="1" StartPrice="1.0" Price="2.269" ProviderBetId="0" LastUpdate="2018-12-23T12:26:49.537Z" PriceUS="127" PriceHK="1.269" "Order"=1/>
      </Bets>
    </Market>
  </Markets>
```

{% endcode %}
{% endtab %}
{% endtabs %}

## **Models**

### **Event**

| **Element** | **Data Type** | **Description**                                                                      |
| ----------- | ------------- | ------------------------------------------------------------------------------------ |
| FixtureId   | int           | The unique ID of the fixture.                                                        |
| Livescore   | int           | [Livescore](https://docs.lsports.eu/u/trade/integration/message-structure/livescore) |
| Markets     | int           | Markets                                                                              |

### Markets

| **Element**     | **Data Type** | **Description**                                                                                       |
| --------------- | ------------- | ----------------------------------------------------------------------------------------------------- |
| Id              | int           | The unique ID of the market                                                                           |
| Name            | string        | The name of the market                                                                                |
| MainLine        | string        | **OPTIONAL**: Indicates the main line for relevant markets. Sends `suspended` if no open lines exist. |
| Bets            | array         | An array of Bets                                                                                      |
| ProviderMarkets | array         | An array of ProviderMarket                                                                            |

#### Bets

| **Element**      | **Data Type** | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ---------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Id               | int           | The uniqueness of the bet id is for a specific market under a specific fixture                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Name             | string        | The name of the bet                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Line             | string        | **OPTIONAL**: The line of the bet                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| BaseLine         | string        | **OPTIONAL**: The baseline helps you group all bets that belong together. In the example above – all bets with the same baseline (0:2) belong together                                                                                                                                                                                                                                                                                                                                                           |
| Status           | enum          | The status of the bet                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| StartPrice       | string        | The initial price of the bet, when it was first introduced                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Price            | string        | The price (odd) of the bet                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ProviderBetId    | string        | **OPTIONAL**: The bet ID, as shown by the provider                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| LastUpdate       | DateTime      | Timestamp representing the time the bet was last updated                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ParticipantId    | int           | <p><strong>OPTIONAL</strong>: Reference ID to the participant in the fixture<br><code>Note: Provided in outright fixtures or in player's markets</code></p>                                                                                                                                                                                                                                                                                                                                                      |
| Probability      | double        | <p><strong>OPTIONAL</strong>: Probability won't be calculated and will be sent with value= "-1" in the following cases:<br>1. one of the market bets is suspended.<br>2. one of the market bets is equal to or lower than 1.00 (similar to suspended).<br>3. The market is a special market and TRADE cannot calculate fair odds or probability.<br><br>If the probability ="-1", customers should not calculate the cash-out amount for the bets under this market (or line in case of a market with lines)</p> |
| PlayerName       | string        | **OPTIONAL**: Appears only in player props markets, which are markets where the player's names are the bets.                                                                                                                                                                                                                                                                                                                                                                                                     |
| PlayerId         | string        | **OPTIONAL**: The unique identifier of the player. Appears only in player props markets.                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SuspensionReason | int           | The reason the bet was suspended                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| PriceIN          | string        | **OPTIONAL**: The PriceIN field is configurable per customer request. The price (odd) of the bet in Indonesian odds format                                                                                                                                                                                                                                                                                                                                                                                       |
| PriceUS          | string        | **OPTIONAL**: The PriceUS field is configurable per customer request. The price (odd) of the bet in American odds format                                                                                                                                                                                                                                                                                                                                                                                         |
| PriceUK          | string        | **OPTIONAL**: The PriceUK field is configurable per customer request. The price (odd) of the bet in Fractional odds format                                                                                                                                                                                                                                                                                                                                                                                       |
| PriceMA          | string        | **OPTIONAL**: The PriceMA field is configurable per customer request. The price (odd) of the bet in Malaysian odds format                                                                                                                                                                                                                                                                                                                                                                                        |
| PriceHK          | string        | **OPTIONAL**: The PriceHK field is configurable per customer request. The price (odd) of the bet in Hong Kong odds format                                                                                                                                                                                                                                                                                                                                                                                        |
| Order            | int           | **OPTIONAL**: Defines the display and logical sequence of bets within the market.                                                                                                                                                                                                                                                                                                                                                                                                                                |

#### ProviderMarkets

{% hint style="info" %}
**Note:** Available for ProviderOdds+ packages only. Contact your CSM to enable ProviderOdds+ access.
{% endhint %}

| **Element** | **Data Type** | **Description**                                            |
| ----------- | ------------- | ---------------------------------------------------------- |
| Id          | int           | Unique identifier for the provider (e.g., 8 for Bet365).   |
| Name        | string        | Name of the provider offering the odds (e.g., "Bet365").   |
| LastUpdate  | DateTime      | Timestamp of the last update to the provider odds.         |
| Bets        | array         | Contains an array of bet objects specific to the provider. |

## When Are Delta Messages Sent?

A market update message is sent only when one of the following changes occurs on a bet:

* **Price** (odds value)
* **Probability**
* **Status** (e.g., open/suspended)

Other field changes — such as a change in Suspension Reason alone — do not trigger a new message.
