eCSL Cricket League
Learn about the exciting matches, and latest updates in the eCSL Cricket League.
- Betgate Cluster Integration
- Domain
-
Markets description
AmericanFootball AnyOther AustralianFootball Badminton Bandy Baseball Basketball Bowls BeachFootball BeachVolleyball Biathlon Boxing Chess Cricket Curling Darts Entertainment ESport FieldHockey Floorball Football Futsal Golf Handball IceHockey Kabaddi MMA MotorSport Olympics Politics Rugby Snooker Squash TableTennis Tennis UFC Volleyball Waterpolo
Table of Contents
General integration flow
GT data feed: RabbitMQ Data Access
Overview
The BGC platform’s API provides data streams on sports events, markets, scores, and other related information via RabbitMQ exchanges. Clients can connect to RabbitMQ and subscribe to specific exchanges to receive updates tailored to their needs. Each queue is created with a specific routing key, allowing clients to filter information based on sport, category, tournament, and event.
RabbitMQ Exchanges
The following exchanges are available for data consumption:
- heartbeats - Platform and feed vitality heartbeats.
- gt.sports – Provides updates on sports data.
- gt.categories – Provides information on the sports categories.
- gt.tournaments – Contains information on tournaments.
- gt.events – Delivers details on current and upcoming events.
- gt.markets – Shares updates on available markets.
- gt.market-results – Supplies results for markets as they become available.
- gt.scores – Broadcasts live scores and score updates.
Routing Key Structure
Each message is posted with a routing key in the following format:
SportId + "." + CategoryId + "." + TournamentId + "." + EventId
This format enables clients to route specific data according to sport, category, tournament, and event.
Example Routing Key:
For an event with SportId = TableTennis, CategoryId = 61e33123dcda439d835fffde5a66f00d, TournamentId = d4adcf858240492bb99a4e542f4c1369, and EventId = 12193727:
TableTennis.61e33123dcda439d835fffde5a66f00d.d4adcf858240492bb99a4e542f4c1369.12193727
The default configuration for new customers implies binding queues one-to-one per exchange. Every integration has a fully isolated environment with administrator access to RabbitMQ Management UI, which allows custom queues and bindings to be created based on provided routing keys.
Message Structure
Each exchange will have a unique message structure based on the data type. To parse the messages correctly, refer to the specific API documentation for each exchange’s schema.
Error Handling and Reconnection
Implement error handling to manage connection interruptions and consider implementing automatic reconnection logic to maintain a continuous connection to RabbitMQ.
Additionally, the platform sends the vitality heartbeats that should be properly treated closing any active reception for the following cases:
- No heartbeats within time range of 30 seconds.
- General status is not UP.
- GT feed status is not UP.
{
"status": "UP",
"feeds": {
"GT": "UP"
},
"timestamp": "2024-10-27T20:45:27.9227208+00:00"
}
eCSL data structures
This document describes the data structures for events, markets, market results, and scores in the “eCSL Cricket League” context. Being a subset of GT feed data structures, this page omits static data fields that are not sensible for eCSL content.
Use the links below to download data transfer object definitions:
- C# - download
Event Structure
Events represent the individual games or matches within the eCSL Cricket League. Each event holds basic information necessary for identification and scheduling.
Event data object
{
"id": string, // Event string id
"tournamentId": string, // Tournament string id
"tournamentName": {
string: string, // name of tournament - "key: value" map where left side is key is string language id
},
"name": {
string: string, // name of event - "key: value" map where left side is key is string language id
},
"tradingStatus": string, // shows trading status of event on GT Feed - open, supended
"status": string, // shows current of event - Created, Started, Paused, Finished, Retired, Abandoned, Interrupted, Cancelled, Postponed
"startTime": DateTime, // date and time when event starting,
"competitors": [
{
"id": string, // Event string id
"name": {
string: string, // name of competitor - "key: value" map where left side is key is string language id
},
"slug": string, // short name of category for SEO links
}],
"timestamp": DateTime // date time with time zone of last update
"dataVersion": int, // version of event with if any operation are applied
"isActive": bool, // is active event - if it ready for trading now or in future
"isOpenForTrading": bool // event is open for trading on GT Feed
"isFrozen": bool // trading of event is suspended
}
Sample event message
{
"liveBookingInfo": {
"isBooked": true,
"bookingType": 1,
"wasBooked": false,
"autoBookingSchemaId": ""
},
"prematchBookingInfo": {
"isBooked": true,
"bookingType": 1,
"wasBooked": false,
"autoBookingSchemaId": ""
},
"isFrozen": false,
"sourceDataVersion": 14,
"modifiedBy": "Feed",
"id": "12193198",
"tournamentId": "a676345bb9f548cbb278412b35327791",
"tournamentName": {
"ja": "eCSL. IPL (10 overs)",
"pt": "eCSL. IPL (10 overs)",
"ko": "eCSL. IPL (10 overs)",
"fr": "eCSL. IPL (10 overs)",
"zh": "eCSL. IPL (10 overs)",
"ru": "eCSL. IPL (10 overs)",
"de": "eCSL. IPL (10 overs)",
"uk": "eCSL. IPL (10 overs)",
"tr": "eCSL. IPL (10 overs)",
"es": "eCSL. IPL (10 overs)",
"en": "eCSL. IPL (10 overs)"
},
"categoryId": "640398fb2488443f8b14e80fa2aa5f10",
"categoryName": {
"sw": "E-Cricket",
"uz": "E-Kriket",
"ja": "Eクリケット",
"fr": "E-Cricket",
"ru": "Киберкрикет",
"tr": "E-Kriket",
"ro": "E-Cricket",
"es": "E-Críquet",
"hu": "E-Krikett",
"vi": "Cricket điện tử",
"ms": "Kriket Siber",
"en": "ECricket",
"de": "ECricket",
"pl": "E-Krykiet",
"pt": "E-Cricket",
"uk": "Кіберкрикет",
"ko": "사이버 크리켓",
"zh": "E-Cricket",
"kk": "Киберкрикет",
"zn": "Cybercricket"
},
"name": {
"ru": "Мумбаи Индианс (e) - Роял Челленджерс Бангалор (e)",
"uk": "Мумбаї Індіанс (e) - Роял Челленджерс Бангалор (e)",
"en": "Mumbai Indians (e) - Royal Challengers Bengaluru (e)"
},
"tradingStatus": "Open",
"stage": "Live",
"status": "Finished",
"type": "Match",
"eventType": 0,
"startTime": "2024-10-27T12:00:00Z",
"competitors": [
{
"id": "1484768",
"name": {
"pt": "Mumbai Indians (e)",
"ru": "Мумбаи Индианс (e)",
"uk": "Мумбаї Індіанс (e)",
"es": "Mumbai Indians (e)",
"en": "Mumbai Indians (e)"
},
"nameMobile": {
},
"slug": "mumbai-indians-e"
},
{
"id": "1360639",
"name": {
"ru": "Роял Челленджерс Бангалор (e)",
"uk": "Роял Челленджерс Бангалор (e)",
"en": "Royal Challengers Bengaluru (e)"
},
"nameMobile": {
},
"slug": "royal-challengers-bengaluru-e"
}
],
"timestamp": "2024-10-27T12:29:45.9296848Z",
"sourceTimestamp": "2024-10-27T12:29:45.7729304Z",
"removedTimestamp": null,
"dataVersion": 14,
"plannedForPrematch": false,
"plannedForLive": true,
"sport": "Cricket",
"sportName": {
"sw": "Cricket",
"uz": "Kriket",
"ja": "クリケット",
"fr": "Cricket",
"ru": "Крикет",
"tr": "Kriket",
"bd": "ক্রিকেট",
"bn": "ক্রিকেট",
"ro": "Cricket",
"es": "Críquet",
"hu": "Krikett",
"vi": "Cricket",
"ms": "Kriket",
"zh_j": "板球",
"en": "Cricket",
"de": "Cricket",
"pl": "Krykiet",
"fa": "کریکت",
"pt": "Críquete",
"th": "คริกเก็ต",
"uk": "Крикет",
"ko": "크리켓",
"zh": "板球",
"kk": "Крикет",
"my": "Kriket",
"zn": "板球"
},
"slug": "mumbai-indians-e-royal-challengers-bengaluru-e",
"isCybersport": true,
"isActive": false,
"isOpenForTrading": false,
"competitorType": "Team"
}
Markets Structure
Markets represent different betting opportunities within each event. A market could be related to match results, player statistics, or specific game conditions.
Markets snaphot message
Every market message represents a current snapshot of markets available for betting. If previously active market is missing in new snapshot, it should be immediately closed for reception.
The same logic applies for tombstone messages where markets is an empty array, which means that all reception should be closed for the event.
eCSL market types
Being a subset of GT feed Cricket markets, eCSL trading uses the following market types for live betting:
Market type | Market definition | Outcomes |
---|---|---|
1 | Winner2Ways | 0 - Win1 3 - Win2 |
7 | TeamTotal | 37 - OverTeam 38 - UnderTeam |
510 | TeamXFirstNOversTotal | 37 - OverTeam 38 - UnderTeam |
Market key
Each market has a condition of uniqueness based on market type, period, sub period, layout to hold the team number, and optionally values array. If provided, values reference team number and market runs value.
A market selection structure is defined as follows:
[1,[2,3],[4,5],6,7,[8,9]]
- 1 - a marketType or marketId, which is described for every sport kind
- 2, 3 - a market values
- 4, 5 - a market periods
- 6 - resultKind
- 7 - outcomeId
- 8, 9 - outcome Parameters
Market key translations API
Aside for manually mapping market types to target operator platform, GT feed also exposes translations API to obtain ready to use market names.
Please see GT data feed: Selections translations for details.
Market data object
{
"eventId": string, // Event string id
"markets": [
{
"key": {
"eventId": string, // Event string id
"tradingType": int, // Type of trading
"marketType": int, // Type of market
"period": int, // Period of match
"subPeriod": nullable int, // Subperiod for match - depends on sport
"layout": nullable string, // use for market splitting on site by teams
},
"marketItems": [ //markey item is trading position like as Total, Fora, etc.
{
"values": [array of string], //market item values
"isOpen": bool, //shows that market is open for trading
"outcomes": [ //array of outcomes
{
"outcomeType": int, //id type of outcome
"outcomeValues": [array of string], //parameters of outcome
"price": double, //price or coefficient for outcome
"status": string, //status of outcome - opened, suspended, removed
"selectionKey": string, //outcome identificator for bet acceptance
"dataVersion": int //version of data entity
},
],
"oddsMultipliers": {
"default": double // odds multiplier that should be multiplied to coefficient if not empty
},
"isRemoved": bool // shows if market item was removed in current update
}
],
"status": string, // market status - opened, suspended
"dataVersion": int, //version of data entity
}
],
"dataVersion": int, //version of data entity
"timestamp": DateTime // date time with time zone of last update
"isFrozen": bool, //shows that markets are suspended for trading
}
Market sample message
{
"eventId": "12193198",
"stage": "Live",
"markets": [
{
"key": {
"eventId": "12193198",
"resultKind": 1,
"marketType": 7,
"period": 1,
"subPeriod": null,
"layout": "2",
"dataVersion": 49
},
"marketItems": [
{
"values": [
"2",
"80.5"
],
"isOpen": true,
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [],
"price": 1.84,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,80.5],[1],1,37,[]]",
"dataVersion": 3
},
{
"outcomeType": 38,
"outcomeValues": [],
"price": 1.82,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,80.5],[1],1,38,[]]",
"dataVersion": 3
}
],
"isRemoved": false,
"oddsMultipliers": {}
},
{
"values": [
"2",
"81.5"
],
"isOpen": true,
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [],
"price": 1.98,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,81.5],[1],1,37,[]]",
"dataVersion": 3
},
{
"outcomeType": 38,
"outcomeValues": [],
"price": 1.65,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,81.5],[1],1,38,[]]",
"dataVersion": 3
}
],
"isRemoved": false,
"oddsMultipliers": {}
},
{
"values": [
"2",
"82.5"
],
"isOpen": false,
"outcomes": [],
"isRemoved": true,
"oddsMultipliers": {}
},
{
"values": [
"2",
"79.5"
],
"isOpen": true,
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [],
"price": 1.65,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,79.5],[1],1,37,[]]",
"dataVersion": 2
},
{
"outcomeType": 38,
"outcomeValues": [],
"price": 1.98,
"status": 1,
"lineItemId": "9aa863da36da4aa6aba62e0c3b065491",
"selectionKey": "[7,[2,79.5],[1],1,38,[]]",
"dataVersion": 2
}
],
"isRemoved": false,
"oddsMultipliers": {}
}
],
"status": 1,
"stage": 2,
"parlaySize": 0,
"dataVersion": 49,
"sourceDataVersion": 51,
"timestamp": "2024-10-27T12:12:27.4777945Z",
"sourceTimestamp": "2024-10-27T12:12:26.9433073Z",
"sport": "Cricket",
"metadataSport": 0,
"isFrozen": false,
"visibility": {
"default": true
}
],
"isBookedForLive": true,
"isBookedForPrematch": true,
"isFrozen": false,
"dataVersion": 18,
"sourceDataVersion": 19,
"timestamp": "2023-10-31T14:21:04.5282677Z",
"sourceTimestamp": "2023-10-31T14:21:04.462752Z"
}
Market Results Structure
Market results represent the outcome of each selection within a market. These results indicate whether a specific outcome was a win, lose, or was marked for return (voided).
Market Results data object
{
"eventId": string, // Event string id
"results": [
{
"key": {
"eventId": string, // Event string id
"tradingType": int, // Type of trading
"marketType": int, // Type of market
"period": int, // Period of match
"subPeriod": nullable int, // Subperiod for match
},
"resultItems": [
{
"values": [],
"outcomes": [
{
"outcomeType": int, //id type of outcome
"outcomeValues": [array of string], //parameters of outcome
"selectionKey": string, //outcome identificator for bet acceptance,
"result": string, // type of result
"deadHeat": nullable double, // distribution of places on the basis of fairness
"isRemoved": bool // shows if result item was removed in current update
}
],
"isRemoved": bool // shows if outcome item was removed in current update
}
],
"isRemoved": bool // shows if result item was removed in current update
}
],
"dataVersion": int, //version of data entity
"timestamp": DateTime // date time with time zone of last update
}
Market Results sample message
{
"eventId": "12193198",
"results": [
{
"key": {
"eventId": "12193198",
"tradingType": 1,
"marketType": 7,
"period": 1,
"subPeriod": null,
"layout": "2"
},
"resultItems": [
{
"values": [
"2",
"70.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,70.5],[1],1,37,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,70.5],[1],1,38,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"71.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,71.5],[1],1,37,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,71.5],[1],1,38,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"72.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,72.5],[1],1,37,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,72.5],[1],1,38,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"73.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,73.5],[1],1,37,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,73.5],[1],1,38,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"74.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,74.5],[1],1,37,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,74.5],[1],1,38,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"75.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,75.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,75.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"76.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,76.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,76.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"77.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,77.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,77.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"78.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,78.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,78.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"79.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,79.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,79.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"80.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,80.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,80.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"81.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,81.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,81.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"82.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,82.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,82.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"83.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,83.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,83.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"84.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,84.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,84.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"85.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,85.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,85.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"86.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,86.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,86.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"87.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,87.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,87.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"88.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,88.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,88.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"89.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,89.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,89.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
},
{
"values": [
"2",
"90.5"
],
"outcomes": [
{
"outcomeType": 37,
"outcomeValues": [
],
"selectionKey": "[7,[2,90.5],[1],1,37,[]]",
"result": "Lose",
"deadHeat": null,
"isRemoved": false
},
{
"outcomeType": 38,
"outcomeValues": [
],
"selectionKey": "[7,[2,90.5],[1],1,38,[]]",
"result": "Win",
"deadHeat": null,
"isRemoved": false
}
],
"isRemoved": false
}
],
"lineItemId": null,
"sport": null,
"isRemoved": false
}
],
"resultExplanation": 0,
"dataVersion": 0,
"minorDataVersion": 0,
"timestamp": "2024-10-27T12:29:51.1167976Z"
}
Scores Structure
Scores represent the progress or final results of an event in terms of scores, runs, overs, or other relevant metrics for the eCSL Cricket League.
eCSL scores events defines the following chronological elements:
Stage:
- 2 - Finish
- 3 - Start
- 4 - Innings1
- 5 - Innings2
- 6,7 - Break
SubStage:
- Over number
Server:
- 1,2 - batting team number
PeriodScore types:
- Runs
- Wickets
Periods:
- 1 - Match
- 5 - Innings1
- 6 - Innings2
Scores data object
{
"eventId": string, // Event string id
"timestamp": DateTime // date time with time zone of last update
"dataVersion": int, //version of data entity
"eventStatus": string, // shows current of event - Created, Started, Paused, Finished, Retired, Abandoned, Interrupted, Cancelled, Postponed
"currentGameStage": int, // stage,
"currentGameSubStage": nullable int, // substage,
"server": "string, string, //team1/team2 for teams sports
"periodScores": [
{
"type": string, // description of period score type
"typePlatformId": int, // value of period score type Document with scoreboard description
"period": int, // period of score
"subPeriod": nullable int, // subperiod of score ,
"score": string, // score direction - "0-0" for example,
}
]
}
Scores sample message
{
"message": {
"id": {
"eventId": "12193198",
"dataVersion": 86
},
"timestamp": "2024-10-27T12:26:03.1738102Z",
"sourceTimestamp": "2024-10-27T12:26:03.0616158Z",
"removedTimestamp": null,
"eventStatus": 1,
"currentGameStage": 4,
"currentGameSubStage": 3,
"serverNumber": 2,
"timer": {
"changeTime": "2024-10-27T12:26:02.5072645Z",
"currentTime": "00:00:00",
"gameStageMaxTime": null,
"isTimerOn": false,
"timerDirection": 0,
"isGameStageTimer": false
},
"server": 2,
"periodScores": [
{
"type": "Runs",
"typePlatformId": 1002,
"period": 1,
"subPeriod": null,
"score": "45-75"
},
{
"type": "Runs",
"typePlatformId": 1002,
"period": 5,
"subPeriod": null,
"score": "45-75"
},
{
"type": "Wickets",
"typePlatformId": 1003,
"period": 1,
"subPeriod": null,
"score": "1-7"
},
{
"type": "Wickets",
"typePlatformId": 1003,
"period": 5,
"subPeriod": null,
"score": "1-7"
}
],
"pointInfos": [],
"competitorInfos": [],
"isLineForEvent": true,
"hiddenResPage": false,
"sport": "Cricket",
"metadataSport": 0
}
}