Livescore
This documentation describes the complete structure of a Livescore Update message (Type 2) as delivered by TRADE. The livescore message holds all scores and statistics:
{
"Header": {
"Type": 2,
"MsgSeq": 472,
"MsgGuid": "c4da9967-68e0-4861-9a46-393e0dc51f56",
"CreationDate": "2024-04-01T18:12:47.6711892Z",
"ServerTimestamp": 1711995167671
},
"Body": {
"Events": [
{
"FixtureId": 12607769,
"Fixture": {
"Subscription": null,
"Sport": {
"Id": 35709,
"Name": "Handball"
},
"Location": null,
"League": null,
"LastUpdate": "2024-04-01T18:12:47.6711892Z",
"Participants": [
{
"Id": 52324435,
"Name": "Partizan Tivat",
"Position": "1"
},
{
"Id": 52324437,
"Name": "Budvanska",
"Position": "2"
}
]
},
"Livescore": {
"Scoreboard": {
"Status": 3,
"CurrentPeriod": 100,
"Time": "5401",
"Results": [
{
"Position": "1",
"Value": "1"
},
{
"Position": "2",
"Value": "3"
}
],
"Clock": {
"Status": 0,
"Seconds": 0
}
},
"PlayerStatistics": [
{
"PlayerId": 12345,
"Statistics": [
{
"Id": 1,
"Name": "Goals",
"Value": "2"
},
{
"Id": 2,
"Name": "Assists",
"Value": "1"
}
],
"PlayerName": "Lionel Messi",
"TeamId": 780,
"HasPlayed": true
},
{
"PlayerId": 67890,
"Statistics": [
{
"Id": 1,
"Name": "Goals",
"Value": "1"
},
{
"Id": 3,
"Name": "Shots",
"Value": "5"
}
],
"PlayerName": "Cristiano Ronaldo",
"TeamId": 786,
"HasPlayed": true
}
],
"Periods": [
{
"Type": 100,
"IsFinished": true,
"IsConfirmed": false,
"Results": [
{
"Position": "1",
"Value": "1"
},
{
"Position": "2",
"Value": "3"
}
],
"SequenceNumber": 1
},
{
"Type": 10,
"IsFinished": true,
"IsConfirmed": false,
"Results": [
{
"Position": "1",
"Value": "0"
},
{
"Position": "2",
"Value": "1"
}
],
"Incidents": [
{
"Period": 10,
"IncidentType": 27,
"Seconds": 1740,
"ParticipantPosition": "2",
"PlayerId": "315951",
"PlayerName": "Yussuf Poulsen ",
"Results": [
{
"Position": "1",
"Value": "0"
},
{
"Position": "2",
"Value": "1"
}
]
}
],
"SequenceNumber": 2
},
{
"Type": 20,
"IsFinished": true,
"IsConfirmed": false,
"Results": [
{
"Position": "1",
"Value": "1"
},
{
"Position": "2",
"Value": "2"
}
],
"Incidents": [
{
"Period": 20,
"IncidentType": 27,
"Seconds": 1800,
"ParticipantPosition": "2",
"PlayerId": "315951",
"PlayerName": "Yussuf Poulsen ",
"Results": [
{
"Position": "1",
"Value": "0"
},
{
"Position": "2",
"Value": "2"
}
]
},
{
"Period": 20,
"IncidentType": 27,
"Seconds": 1860,
"ParticipantPosition": "2",
"PlayerId": "315951",
"PlayerName": "Yussuf Poulsen ",
"Results": [
{
"Position": "1",
"Value": "0"
},
{
"Position": "2",
"Value": "3"
}
]
},
{
"Period": 20,
"IncidentType": 27,
"Seconds": 1920,
"ParticipantPosition": "1",
"PlayerId": "299559",
"PlayerName": "Joachim Low",
"Results": [
{
"Position": "1",
"Value": "1"
},
{
"Position": "2",
"Value": "3"
}
]
}
],
"SequenceNumber": 3
}
],
"Statistics": {
"Statistic": [
{
"Value": [
"5",
"6"
],
"Incidents": {
"Incident": [
{
"Score": [
"0",
"1"
]
},
{
"Score": [
"0",
"2"
]
},
{
"Score": [
"1",
"2"
]
},
{
"Score": [
"1",
"3"
]
},
{
"Score": [
"1",
"4"
]
},
{
"Score": [
"2",
"4"
]
},
{
"Score": [
"3",
"4"
]
},
{
"Score": [
"3",
"5"
]
},
{
"Score": [
"3",
"6"
]
},
{
"Score": [
"4",
"6"
]
},
{
"Score": [
"5",
"6"
]
}
]
}
},
{
"Value": [
"106",
"91"
]
},
{
"Value": [
"79",
"78"
]
},
{
"Value": [
"2",
"1"
],
"Incidents": {
"Incident": [
{
"Score": [
"0",
"1"
]
},
{
"Score": [
"1",
"1"
]
},
{
"Score": [
"2",
"1"
]
}
]
}
},
{
"Value": [
"0",
"0"
]
},
{
"Value": [
"0",
"0"
]
},
{
"Value": [
"9",
"7"
]
},
{
"Value": [
"0",
"0"
]
},
{
"Value": [
"0",
"0"
]
},
{
"Value": [
"2",
"2"
],
"Incidents": {
"Incident": [
{
"Score": [
"0",
"1"
]
},
{
"Score": [
"1",
"1"
]
},
{
"Score": [
"1",
"2"
]
},
{
"Score": [
"2",
"2"
]
}
]
}
},
{
"Value": [
"4",
"4"
]
},
{
"Value": [
"6",
"6"
]
}
]
},
"LivescoreExtraData": "",
"CurrentIncident": {
"Id": "5",
"Name": "DangerousAttacks",
"LastUpdate": "2025-02-03T15:54:38.6207474"
},
"DangerTriggers": {
"DangerTrigger": [
{
"Type": "1",
"Status": "1",
"LastUpdate": "2025-02-03T15:31:15.1049535"
},
{
"Type": "2",
"Status": "1",
"LastUpdate": "2025-02-03T15:31:15.104986"
},
{
"Type": "3",
"Status": "1",
"LastUpdate": "2025-02-03T15:31:15.1050175"
}
]
}
},
"Markets": null
}
]
}
}
Model
Events
Fixture
Element
Data Type
Description
LastUpdate
string
ISO timestamp of the last update to the provider odds
Participant
Element
Data Type
Description
Id
int
The unique ID of the participant
Name
string
The unique ID of the participant
Position
string
In 2-participant events the positions will be 1 (home) or 2 (away)
Livescore
Element
Data Type
Description
Scoreboard
Element
Data Type
Description
CurrentPeriod
int
The current period or stage of the match.
Time
string
The time elapsed in the current period or stage of the match. Represented in seconds. *Will be depricated
Results
Element
Data Type
Description
Position
string
The position or team identifier associated with the result. In 2-participant events, the positions will be 1 (home) or 2 (away) For outright events, the positions will represent the initial position of the participant
Value
string
The value or score associated with the respective position or team.
Clock
Element
Data Type
Description
Status
int
0 = Stopped
, 1 = Running
Seconds
int
The time elapsed in the current period or stage of the match.
Represented in seconds. Available based on LSports’ coverage
PlayerStatistics
Element
Data Type
Description
PlayerId
int
Unique identifier for the player.
PlayerName
string
Name of the player.
TeamId
int
Identifier for the team to which the player belongs.
HasPlayed
boolean
Indicates whether the player participated in the event.
Statistics
Element
Data Type
Description
Name
String
Name of the statistic
Value
int
The value of the statistic
Periods
Element
Data Type
Description
enum
The type of the period. Describe the nature of the period within the context of the sport (e.g., first half, second half).
IsFinished
bool
Indicates whether the period is finished or not
IsConfirmed
bool
Indicates whether the period and its scores are confirmed
SubPeriods
Array
Relevant for tennis only, subperiod is the game inside a set.
SequenceNumber
int
A sequence number assigned to the period for ordering purposes.
Note: Delivering the IsFinished as true and the IsConfirmed as false means we couldn't validate the final result of the specific period
Results
Element
Data Type
Description
Position
string
The position or team identifier associated with the result. In 2-participant events, the positions will be 1 (home) or 2 (away) For outright events, the positions will represent the initial position of the participant
Value
string
The value or score associated with the respective position or team.
Incidents
Every period element may contain a list of incidents (e.g. goals that were scored). Incidents will appear as long as we have the information.
Note: Incidents may be sent after a final status had been received.
Element
Data Type
Description
Period
enum
The type of period, in which the incident had occurred
Seconds
bool
Time of incident occurrence
ParticipantPosition
int
In 2-participant events, the positions will be 1 (home) or 2 (away) For outright events, the positions will represent the initial position of the participant
PlayerId
Int
The unique identifier of the player responsible for the incident
PlayerName
string
The name of the player responsible for the incident
Incident.Results
Array
An array containing results specific to the incident
For Cricket Only - SubPeriods represent the number of Runs made within the last Over in addition the number of Overs played so far will be shown under SequenceNumber - as can be seen in the following example Here Note: SequanceNumber is only relevant for Cricket at the moment.
Statistics
Element
Data Type
Description
Statistic
array
An array of statistic
Statistic
Element
Data Type
Description
Value
array
The value or score associated with the respective position or team.
Incidents
object
An object of incidents related to this statistic
Current Incident
The Current Incident provides context on what triggered the Danger Indicator to include the ID and the name of the incident that triggered it.
Element
Data Type
Description
Name
enum
Description of the incident (e.g., Yellow Card).
LastUpdate
Timestamp
The time when the incident occurred.
Danger Trigger
The Danger Trigger Model provides real-time safety status updates for specific market types, ensuring proactive risk management.
For full coverage and functionality, please refer to the detailed documentation.
Element
Data Type
Description
Type
enum
Market type: General (1), Cards (2), Corners (3).
Status
enum
Current market status: Safe (1), Dangerous (2).
LastUpdate
Timestamp
The latest update time for market safety indicators.
Note: To enable DangerTrigger please reach out to support or your CSM.
LivescoreExtraData
Element
Data Type
Description
Value
string
Representing the extra data value
Name
string
The name of extra data field
Livescore important notes
PreMatch package subscribers will only receive the final Livescore after the fixture has ended. Real-time LiveScore updates during an event are exclusive to InPlay package subscribers.
Periods, scores, statistics, and time MAY be reverted due to mistakes made by the data providers.
The current total score of the event can be found under the Scoreboard element. The score for every individual period can be found within the Period elements.
Note: Every period contains the score relevant to that period alone
As a part of our data quality improvement, new periods and statistical types may be added all the time. Make sure your system is dynamic enough to cope with unidentified types.
A loss of coverage will occur if we are not able to provide data for an event due to technical difficulties or faulty data.
Note: Should a loss of coverage occur – all bets will be suspended.
There are several events where we offer live up to 30 minutes before the event’s actual start time. Those events will be sent with the status “9”, which indicates that the event is about to start. The status is the attribute of the Scoreboard element.
The period type “80” stands for “BreakTime”. This period applies to ANY break during the live event. The type of the break will be in the Description attribute of the Scoreboard element, as seen below:
<Scoreboard Status="2" CurrentPeriod="80" Description=”1” Time="2700">
<Score Position="1">2</Score>
<Score Position="2">1</Score>
</Scoreboard>
Football
Time
Time direction will be ascending until the end of the half.
During halftime, the time will always be 2700 seconds.
During overtime halftime, the time will always be 6300 seconds.
When the event is finished (without overtime), the time will always be 5400 seconds.
When the event is finished (after overtime), the time will always be 7200 seconds.
During penalties, there will be no time available.
Basketball
Time
Time direction will always be descending.
At the end of every period, the time will be set to 0.
Periods
During NCAA events (College male basketball), the periods will show as halves (10 – 1st Half, 20 – 2nd Half) instead of quarters as usual.
Tennis
Periods
When the Tennis match is finished, the period “60” (Game period) will be removed as it is no longer relevant.
The serving player will appear under the ExtraData element, within the “Turn” key. The possible values are 1 or 2 (according to the participant's position).
Last updated
Was this helpful?