Outright League Market
This documentation describes the complete structure of a Market Update message (Type 40) as delivered by TRADE.
{
"Header": {
"Type": 40,
"MsgSeq": 1,
"MsgGuid": "66501c84-108e-448e-971c-a66c729e3db1",
"CreationDate": "2025-07-21T09:18:10.9845636Z",
"ServerTimestamp": 1753089490984
},
"Body": {
"Competition": {
"Id": 67,
"Name": "Premier League",
"Type": 3,
"NextFixtureStartTime": "2025-08-17T14:00:00Z",
"Competitions": [
{
"Id": 2029,
"Name": "2023/2024",
"Type": 4,
"Events": [
{
"FixtureId": 24605645,
"FixtureName": "Premier League 2023/2024 Outright Winner",
"Livescore": null,
"Markets": [
{
"Id": 274,
"Name": "Outright Winner",
"Bets": [
{
"Id": 185757142624605645,
"Name": "Reliable Miss",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "1.44",
"Price": "1.44",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166641Z",
"ParticipantId": 52280038
},
{
"Id": 14141400824605645,
"Name": "El Senor",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "12.1",
"Price": "12.1",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166688Z",
"ParticipantId": 52280039
},
{
"Id": 33333730824605645,
"Name": "Brian Boru",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "8",
"Price": "8",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166704Z",
"ParticipantId": 52280040
},
{
"Id": 36157726424605645,
"Name": "Master Black Jack",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "26",
"Price": "26",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166718Z",
"ParticipantId": 52280041
},
{
"Id": 83613793524605645,
"Name": "Spithill",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "26.1",
"Price": "26.1",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166732Z",
"ParticipantId": 52280294
},
{
"Id": 139908971824605645,
"Name": "Grandiscoccymelums",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "21",
"Price": "21",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166748Z",
"ParticipantId": 52280295
},
{
"Id": 58605226324605645,
"Name": "Twin Spinner",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "8.1",
"Price": "8.1",
"ProviderBetId": "8",
"LastUpdate": "2025-07-21T09:18:10.9166771Z",
"ParticipantId": 52289573
}
],
"ProviderMarkets": [
{
"Id": 8,
"Name": "Bet365",
"LastUpdate": "2025-07-21T09:18:09.482338Z",
"Bets": [
{
"Id": 23362,
"Name": "Reliable Miss",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "1.44",
"Price": "1.44",
"LastUpdate": "2025-07-21T09:18:09.483322Z",
"ParticipantId": 52280038
},
{
"Id": 23363,
"Name": "El Senor",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "12.1",
"Price": "12.1",
"LastUpdate": "2025-07-21T09:18:09.483372Z",
"ParticipantId": 52280039
},
{
"Id": 23364,
"Name": "Brian Boru",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "8",
"Price": "8",
"LastUpdate": "2025-07-21T09:18:09.483372Z",
"ParticipantId": 52280040
},
{
"Id": 23365,
"Name": "Master Black Jack",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "26",
"Price": "26",
"LastUpdate": "2025-07-21T09:18:09.483372Z",
"ParticipantId": 52280041
},
{
"Id": 23366,
"Name": "Spithill",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "26.1",
"Price": "26.1",
"LastUpdate": "2025-07-21T09:18:09.483373Z",
"ParticipantId": 52280294
},
{
"Id": 23367,
"Name": "Grandiscoccymelums",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "21",
"Price": "21",
"LastUpdate": "2025-07-21T09:18:09.483373Z",
"ParticipantId": 52280295
},
{
"Id": 23368,
"Name": "Twin Spinner",
"Status": 1,
"BetStatusId": 1,
"StartPrice": "8.1",
"Price": "8.1",
"LastUpdate": "2025-07-21T09:18:09.483374Z",
"ParticipantId": 52289573
}
]
}
]
}
]
}
]
}
]
}
}
}
}Model
Competition
Id
int
The unique ID of the competition
Name
string
The competition name
Type
enum
Type 3 is League, Type 4 is Season
NextFixtureStartTime
DateTime
OPTIONAL: The scheduled start time of the next fixture in this league. Use this signal to implement suspension logic for outright markets on your side. The last value sent reflects the start time of the final fixture in the league — when that fixture starts, markets suspend for the last time and no further market messages are sent.
Competitions
array
Array of Competitions
Competitions
Id
int
The unique ID of the competition
Name
string
The competition name
Type
enum
Type 3 is League, Type 4 is Season
Events
array
Array of Events
Events
Element
Data Type
Description
FixtureId
int
The unique ID of the fixture.
FixtureName
string
OPTIONAL: The human-readable name of the fixture. Omitted entirely when no value exists — never sent as null or empty.
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
PredictionData
object
OPTIONAL: Kalshi-specific market metadata. Present on Prediction Markets only. See Prediction Markets.
ProviderMarkets
array
An array of ProviderMarket
MarketPredictionData
Field
Data Type
Description
Volume
double
OPTIONAL: Aggregate trading volume for this market
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
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 provider's ID for this selection. When multiple providers are included in the calculation, this value is 0.
LastUpdate
DateTime
Timestamp representing the time the bet was last updated
ParticipantId
int
OPTIONAL: Reference ID to the participant in the fixture
Note: Provided in outright fixtures or in player's markets
Probability
double
OPTIONAL: Probability won't be calculated and will be sent with value= "-1" in the following cases:
One of the market bets is suspended.
one of the market bets is equal to or lower than 1.00 (similar to suspended).
The market is a special market and TRADE cannot calculate fair odds or probability.
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)
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.
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.
BetPredictionData
Field
Data Type
Description
Volume
double
OPTIONAL: Total contracts traded for this bet
Liquidity
double
OPTIONAL: Available liquidity for this bet. Provided by Polymarket; null for Kalshi
StartDate
DateTime
The date from which this bet is open for trading
EndDate
DateTime
The date after which this bet closes
ProviderMarkets
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.
How NextFixtureStartTime Is Calculated
NextFixtureStartTime always reflects the earliest start time of the next upcoming match in the league.
TRADE looks at all standard fixtures linked to the outright league, excludes any that have already reached final status, and sets NextFixtureStartTime to the earliest start time among the remaining fixtures.
The value updates automatically when:
A new fixture is added to the league
A fixture's start time changes
A fixture reaches final status — the next earliest upcoming start time takes over
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.
Last updated
Was this helpful?