Integration Service

The V3 Integration Service supports a number of message types that are selectively activated to deliver precisely the set of information required to support the contracted products; you will receive only the messages you need. The integration service and the overall integration is separated into three distinct layers: Foundation, Complete and Data-only


Foundation-level integration is the minimum necessary level of feed integration that an integrator must reach to be able to provide services from Genius Sports through their sportsbook for the following products:

  • Prematch Manager
  • Inplay Manager without Match State
  • Betbuilder

Fixture: describes the fixture and includes the information (name, date, sport, competition, competitors etc.) required to allow you to create the fixture in your trading platform.

MarketSet: a collection of one or more Market elements containing market information (name, type, selections, prices, trading status etc.) to allow you to create markets in your trading platform and associate them with a particular event.

ResultSet: when the outcome of a market is known, for example because the event has finished, a separate Result updategram will be sent for each market. This message will contain all the information you need to result the market and settle bets on your side.

Coverage: once a fixture has met the requirements necessary to be created, the Coverage command will be sent to update changes in the availability of match state feeds or the trading state feed or to confirm that the booking state has changed.

The aforementioned four message types allow a sportsbook to receive the information required to create fixtures and markets, update those fixtures and markets and then to result them once the outcomes become known for both the Prematch and Inplay products.


Complete integration includes the Foundation-level integration as well as the additional Match State for sportsbook platform.

For each InPlay modelled sport, a comprehensive match state collection provides two message types, Summary and Details. These messages describe the current state of a fixture by providing the trading platform with scores, phase information, match clock and so forth. For Inplay sports with more limited data available, a generic MultiSport message is available. Details of the match state collections are found by navigating to Understanding Match State page.

The aforementioned Match State message types allow a sportsbook to receive current event state information and drive match state reliant products within sportsbook platform. Without Match State, Inplay only delivers fixture information, market updates and results.


Data only integration is intended to deliver only match state or event feed data to a sportsbook platform. Customer will continue to receive Fixture and Coverage information, however trading-related data content (markets, OST, results) is not delivered. Details of the match state collections are found by navigating to Understanding Match State page. Alternative feed delivery option (Event based feed) is described in the /wiki/spaces/~439309987/pages/65699929 section.

Service and Message Types

The table below shows the messages that are delivered for each product offered.

Foundation

Product

Fixture

MarketSet

ResultSet

Coverage

Match State

PreMatch Manager

Yes

Yes

Yes

Yes

No

InPlay Manager

Yes

Yes

Yes

Yes

No

Complete

Product

FixtureMarketSetResultSetCoverageMatch State
PreMatch ManagerYesYesYesYesNo
InPlay ManagerYesYesYesYesYes
Data-only

Product

FixtureMarketSetResultSetCoverageMatch State
InPlay ManagerYesNoNoYesYes

Receiving Update Messages

We will push update messages to your endpoint. The messages will typically be XML (JSON supported as well) delivered over the public internet by HTTPS. Other protocols, for example HTTP or FTP (not recommended), or other message technologies can be supported if necessary.
Message delivery requires:

  1. Customer will deploy a Data Receiver that exposes the methods (ProcessMessage and Heartbeat) as described above,
  2. Customer will provide a URL of the data receiver,
  3. We will deploy an Integration Service to push messages in the agreed format to your specified URL,
  4. Customer will receive and process messages.

All our traffic originates from within the following IP addresses:

  • 54.72.77.116

  • 34.242.67.155

  • 34.242.6.161

  • 34.241.220.64
  • 52.19.163.53
  • 52.213.172.249
  • 52.214.86.245

  • 99.80.74.200

  • 54.76.226.75

  • 34.240.244.24

  • 34.252.158.247

  • 54.77.177.22

Message Sizes

The first Updategram sent for an event could include, depending on user's configuration of the system, Market elements for over 100 markets. This can result in large messages and your client application should be able to handle messages of at least 2MB in size in real time.

Handling the Commands

Updategram messages will be pushed to your Data Receiver as required to support the contracted services. Each of these messages should be processed by the Data Receiver and appropriate updates should be passed to the Trading Platform. All messages must be processed and acted upon.


Once a message has been received by your Data Receiver you should respond with a successful delivery acknowledgement message. This can be as simple as a HTTP 200 response. The response should be sent as quickly as possible after the message is received.

Entity ID's

Most of the entities we use – fixture, team, competitor, competition, season, market type etc. – will have an identifying number as well as a descriptive string. The descriptions and names are not guaranteed to be unique or to remain unchanged and must not be used for mapping.

You should always use the ID value for mapping or matching purposes

Updategram Header

Every Updategram will be sent with a header element that contains additional information that is not related to an individual fixture but to the message itself.

<Header>
<MessageGuid>c64c3a47-4f34-427c-ba67-3bc031208849</MessageGuid>
<TimeStampUtc>2015-10-22T09:27:19.2654001Z</TimeStampUtc>
<Retry>0</Retry>
<CustomerId>6012</CustomerId>
<MessageFixtureOrder>215</MessageFixtureOrder>
</Header>

Element

Type

Description

MessageGuid

GUID

A unique identifier for the message to allow discovery of the message within log files or services

TimeStampUtc

DateTime

The time that the message was generated for despatch

Retry

Integer

The number of times that delivery of this message has been attempted. This field will increment with each attempt; the TimeStampUtc field will not be updated for retries.

CustomerId

Integer, optional

A unique identifier for the customer. Can be used to differentiate between service instances in a multi-channel system. Off by default; activated on request.

MessageFixtureOrder

Integer, optional

A counter indicating the message order.
Present only in InPlay MarketSet messages.


Fixture

Purpose: Fixture is used to pass information about a sporting event to the Data Receiver. This data allows a new fixture to be inserted into the Trading Platform or an existing fixture to be updated (for example because the start time has changed). Fixture will always be the first command sent for a particular match. Each Fixture message will describe precisely one fixture.
Processing: when Fixture message is received you should either:

  1. Insert a new fixture into the Trading Platform using the details provided, or
  2. Update a fixture that already exists in Trading Platform.

Any messages relating to a particular fixture will include the ID number held in the Fixture.Id element.

Fixture

An object that describes a fixture. The following message a football match between Olympique Marseille and RB Leipzig in UEFA Europa League, detailing each player under each team (player information is provided only when available).

Expand Source to see the full message!
<?xml version="1.0" encoding="utf-8"?>
<Updategram xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.sportsdataservices.com/integrationService/v3">
	<Header>
		<MessageGuid>6a39609c-5d82-45b4-8ff0-d409286b90c1</MessageGuid>
		<TimeStampUtc>2018-04-12T19:06:57.344251Z</TimeStampUtc>
		<Retry>0</Retry>
		<ChannelId>7026</ChannelId>
	</Header>
	<Fixture>
		<Id>5235368</Id>
		<Name>Olympique Marseille v RB Leipzig</Name>
		<FixtureType>Match</FixtureType>
		<Status>Scheduled</Status>
		<StartTimeUtc>2018-04-12T19:05:00Z</StartTimeUtc>
		<Sport>
			<Id>10</Id>
			<Name>Football</Name>
		</Sport>
		<Competition>
			<Id>2072</Id>
			<Name>UEFA Europa League</Name>
			<Region>
				<Id>6</Id>
				<Name>Europe</Name>
			</Region>
		</Competition>
		<Season>
			<Id>64680</Id>
			<Name>UEFA Europa League 2017 2018</Name>
		</Season>
		<Round>
			<Id>398950</Id>
			<Name>Olympique Marseille v RB Leipzig</Name>
		</Round>
		<Competitors>
			<Competitor>
				<Id>10134</Id>
				<Name>Olympique Marseille</Name>
				<HomeAway>Home</HomeAway>
				<Competitors>
					<Competitor>
						<Id>753412</Id>
						<Name>Sanson, M</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Morgan</FirstName>
						<LastName>Sanson</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>446294</Id>
						<Name>Sertic, G</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Gregory</FirstName>
						<LastName>Sertic</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>134222</Id>
						<Name>Payet, D</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Dimitri</FirstName>
						<LastName>Payet</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>715427</Id>
						<Name>Thauvin, F</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Florian</FirstName>
						<LastName>Thauvin</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>792458</Id>
						<Name>Lopez, Maxime</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Maxime</FirstName>
						<LastName>Lopez</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>792620</Id>
						<Name>Sarr, B</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Bouna</FirstName>
						<LastName>Sarr</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>140495</Id>
						<Name>Pele, Y</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Yohann</FirstName>
						<LastName>Pele</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>809709</Id>
						<Name>Zambo Anguissa, AF</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Andre-Franck</FirstName>
						<LastName>Zambo Anguissa</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>826979</Id>
						<Name>Escales, F</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Florian</FirstName>
						<LastName>Escales</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>142530</Id>
						<Name>Rolando</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Roland Jorge</FirstName>
						<LastName>Pires da Fonseca</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>726870</Id>
						<Name>N'Jie, C</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Clinton</FirstName>
						<LastName>N'Jie</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>454167</Id>
						<Name>Sakai, H</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Hiroki</FirstName>
						<LastName>Sakai</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>179008</Id>
						<Name>Bedimo, H</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Henri</FirstName>
						<LastName>Bedimo</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>993291</Id>
						<Name>Boubacar Kamara</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Boubacar</FirstName>
						<LastName>Kamara</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>717082</Id>
						<Name>Andonian, G</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Gaël</FirstName>
						<LastName>Andonian</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>152060</Id>
						<Name>Luiz Gustavo</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Luiz Gustavo</FirstName>
						<LastName>Dias</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>128679</Id>
						<Name>Mandanda, S</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Steve</FirstName>
						<LastName>Mandanda</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>130340</Id>
						<Name>Rami, A</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Adil</FirstName>
						<LastName>Rami</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>752734</Id>
						<Name>Ocampos, L</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Lucas</FirstName>
						<LastName>Ocampos</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>548202</Id>
						<Name>Germain, V</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Valere</FirstName>
						<LastName>Germain</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>755156</Id>
						<Name>Amavi, J</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Jordan</FirstName>
						<LastName>Amavi</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>1004782</Id>
						<Name>Sari, Y</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Yusuf</FirstName>
						<LastName>Sari</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>518432</Id>
						<Name>Abdennour, A</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Aymen</FirstName>
						<LastName>Abdennour</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>129884</Id>
						<Name>Mitroglou, K</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Kostas</FirstName>
						<LastName>Mitroglou</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>1034234</Id>
						<Name>Rocchia, C</Name>
						<HomeAway>Home</HomeAway>
						<Competitors />
						<FirstName>Christopher</FirstName>
						<LastName>Rocchia</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
				</Competitors>
				<CompetitorType>Team</CompetitorType>
			</Competitor>
			<Competitor>
				<Id>500564</Id>
				<Name>RB Leipzig</Name>
				<HomeAway>Away</HomeAway>
				<Competitors>
					<Competitor>
						<Id>821353</Id>
						<Name>Upamecano, D</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Dayot</FirstName>
						<LastName>Upamecano</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>1610</Id>
						<Name>Coltorti, F</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Fabio</FirstName>
						<LastName>Coltorti</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>549643</Id>
						<Name>Demme, D</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Diego</FirstName>
						<LastName>Demme</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>540638</Id>
						<Name>Kaiser, D</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Dominik</FirstName>
						<LastName>Kaiser</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>583133</Id>
						<Name>Poulsen, YY</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Yussuf Yurary</FirstName>
						<LastName>Poulsen</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>794422</Id>
						<Name>Klostermann, L</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Lukas</FirstName>
						<LastName>Klostermann</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>567335</Id>
						<Name>Sabitzer, M</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Marcel</FirstName>
						<LastName>Sabitzer</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>499789</Id>
						<Name>Forsberg, E</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Emil</FirstName>
						<LastName>Forsberg</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>446085</Id>
						<Name>Gulácsi, P</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Péter</FirstName>
						<LastName>Gulácsi</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>569505</Id>
						<Name>Orban, W</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Willi</FirstName>
						<LastName>Orban</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>443074</Id>
						<Name>Ilsanker, S</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Stefan</FirstName>
						<LastName>Ilsanker</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>789545</Id>
						<Name>Keïta, Naby</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Naby</FirstName>
						<LastName>Keïta</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>752959</Id>
						<Name>Werner, Timo</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Timo</FirstName>
						<LastName>Werner</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>729174</Id>
						<Name>Halstenberg, Marcel</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Marcel</FirstName>
						<LastName>Halstenberg</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>754019</Id>
						<Name>Schmitz, B</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Benno</FirstName>
						<LastName>Schmitz</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>877235</Id>
						<Name>Bernardo</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Bernardo</FirstName>
						<LastName>Fernandes da Silva Junior</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>791112</Id>
						<Name>Laimer, K</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Konrad</FirstName>
						<LastName>Laimer</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>711416</Id>
						<Name>Bruma</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Armindo</FirstName>
						<LastName>Tué Na Bangna</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>564869</Id>
						<Name>Mvogo, Y</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Yvon Landry</FirstName>
						<LastName>Mvogo Nganoma</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>994894</Id>
						<Name>Köhn, P</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Philipp</FirstName>
						<LastName>Köhn</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>965512</Id>
						<Name>Konate, I</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Ibrahima</FirstName>
						<LastName>Konate</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>994897</Id>
						<Name>Abouchabaka, E</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Elias</FirstName>
						<LastName>Abouchabaka</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>799871</Id>
						<Name>Augustin, J</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Jean-Kevin</FirstName>
						<LastName>Augustin</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>805512</Id>
						<Name>Martinovic, Dominik</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Dominik</FirstName>
						<LastName>Martinovic</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>997885</Id>
						<Name>Kühn, N</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Nicolas-Gerrit</FirstName>
						<LastName>Kühn</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>998194</Id>
						<Name>Ludewig, K</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Kilian</FirstName>
						<LastName>Ludewig</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>998195</Id>
						<Name>Majetschak, E</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Erik</FirstName>
						<LastName>Majetschak</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>506031</Id>
						<Name>Kampl, K</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Kevin</FirstName>
						<LastName>Kampl</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>860265</Id>
						<Name>Lookman, A</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Ademola</FirstName>
						<LastName>Lookman</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
					<Competitor>
						<Id>1042602</Id>
						<Name>Stierlin, N</Name>
						<HomeAway>Away</HomeAway>
						<Competitors />
						<FirstName>Niclas</FirstName>
						<LastName>Stierlin</LastName>
						<CompetitorType>Person</CompetitorType>
					</Competitor>
				</Competitors>
				<CompetitorType>Team</CompetitorType>
			</Competitor>
		</Competitors>
		<AggregateEventInfo/>
		<ExternalId>1659322</ExternalId>
		<FootballProperties>
			<ExtraTimeProperties>
				<IsExtraTime>true</IsExtraTime>
				<IsSecondLeg>true</IsSecondLeg>
				<FirstLegId>5235367</FirstLegId>
				<AwayGoalsAfterNormalTime>true</AwayGoalsAfterNormalTime>
				<AwayGoalsAfterExtraTime>true</AwayGoalsAfterExtraTime>
			</ExtraTimeProperties>
			<MatchDuration>PT1H30M</MatchDuration>
			<ExtraTimeDuration>PT30M</ExtraTimeDuration>
		</FootballProperties>
	</Fixture>
</Updategram>


The following message describes a tennis match from Tunis Open Challenger between Domingues, J and Bellalouna, M

Expand Source to see the full message!
<?xml version="1.0" encoding="utf-8"?>
<Updategram xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.sportsdataservices.com/integrationService/v3">
	<Header>
		<MessageGuid>93612679-5c76-485c-bbb3-495b14611e91</MessageGuid>
		<TimeStampUtc>2018-04-16T11:11:02.1426972Z</TimeStampUtc>
		<Retry>0</Retry>
		<ChannelId>7026</ChannelId>
	</Header>
	<Fixture>
		<Id>5293414</Id>
		<Name>Domingues, J v Bellalouna, M</Name>
		<FixtureType>Match</FixtureType>
		<Status>Scheduled</Status>
		<StartTimeUtc>2018-04-16T11:18:00Z</StartTimeUtc>
		<Sport>
			<Id>24</Id>
			<Name>Tennis</Name>
		</Sport>
		<Competition>
			<Id>4002</Id>
			<Name>Tunis Open Challenger</Name>
			<Region>
				<Id>64</Id>
				<Name>Tunisia</Name>
			</Region>
		</Competition>
		<Season>
			<Id>73422</Id>
			<Name>2018 Tunis Open Challenger</Name>
		</Season>
		<Round>
			<Id>406150</Id>
			<Name>Round 1</Name>
		</Round>
		<Competitors>
			<Competitor>
				<Id>740138</Id>
				<Name>Domingues, J</Name>
				<HomeAway>Home</HomeAway>
				<Competitors />
				<FirstName>Joao</FirstName>
				<LastName>Domingues</LastName>
				<CompetitorType>Person</CompetitorType>
			</Competitor>
			<Competitor>
				<Id>1050824</Id>
				<Name>Bellalouna, M</Name>
				<HomeAway>Away</HomeAway>
				<Competitors />
				<FirstName>Mohamed Ali</FirstName>
				<LastName>Bellalouna</LastName>
				<CompetitorType>Person</CompetitorType>
			</Competitor>
		</Competitors>
		<ExternalId>1686744</ExternalId>
		<TennisProperties>
			<NumberOfSets>3</NumberOfSets>
			<FinalSet>TieBreak</FinalSet>
			<ScoringSystemForServiceGames>StandardAdvantage</ScoringSystemForServiceGames>
			<CourtSurface>Clay</CourtSurface>
		</TennisProperties>
	</Fixture>
</Updategram>

Element

Type

Description

Id

Integer

An immutable identifier for the fixture

Name

String

The name of the fixture

FixtureType

FixtureType

An Enum describing the type of fixture. Possible values:
Match
Outright
Aggregate
Virtual

Status

FixtureStatus

An Enum describing the status of the fixture. Possible values:

Scheduled

Deleted

Unknown

StartTimeUtc

DateTime

The start time of the fixture in UTC

Sport

Sport

An object describing the sport within which the fixture is played

Competition

Competition

An object describing the competition within which the fixture is played

Season

Season

An object describing a season within a competition

TourSeason

Season, optional

An object describing the tour within which the fixture is played, if applicable. This element has been deprecated and is no longer in use.

Round

Round, optional

An object describing a round within a season

Venue

Venue, optional

An object describing the venue at which the fixture is played

Competitors

Competitor

A collection of objects describing the competitors

AggregateEventInfo

AggregateEventInfo, optional

An object that holds additional information about an aggregate event

ExternalIds

Array of ExternalId

An object that holds Client fixture/competitor information in an array

BasketballProperties,

FootballProperties,

TennisProperties

SportProperties, optional

An object containing information specific to a basketball, football or a tennis match; not populated for other sports 

AssociationFixtureId

String, optional

Where appropriate, the fixture ID used to build a link to a fixture's streaming feed

IsOff

Boolean, optional

Used only for horse races. False until the race has started, then True.


ExternalIds

We can supply a fixture matching service, for which we will need to integrate your External Fixtures feed. More information about how External Fixture feeds can be integrated can be found on the following Confluence page.

This can help if, for example, you wish to consume our in-play services and match our fixtures or competitors to those that might already exist within your trading platform. When the fixture matching service is active, the ExternalIds element will be populated with an array of your ExternalId objects (Source, Id).

<ExternalIds>
<ExternalId>
<Source>5153</Source>
<Id>548412135485</Id>
</ExternalId>
<ExternalId>
<Source>8411</Source>
<Id>1254-2244</Id>
</ExternalId>
</ExternalIds>

ExternalId

An object that holds Client fixture/competitor information.

<ExternalId>
<Source>5153</Source>
<Id>548412135485</Id>
</ExternalId>
ElementTypeDescription
IdStringCustomer's fixture/competitor ID, if available and required
SourceStringCustomer's fixture/competitor Source ID, if available and required


Sport

An object that describes a sport.

<Sport>
<Id>10</Id>
<Name>Football</Name>
</Sport>


Element

Type

Description

Id

Integer

An immutable identifier for the sport

Name

String

The name of the sport


Sport IDs and Names:

ID

Name

112058633x3 Basketball

17

American Football

2

Australian Rules

271554

Badminton

3

Baseball

4

Basketball

7950337

Beach Volleyball

5

Boxing

6

Cricket

7

Cycling

8

Darts

10915624

eSports

10

Football

491393

Futsal

6463040

Gaelic Football

12

Golf

99614

Handball

208627

Hockey

14Horse Racing

6463041

Hurling

15

Ice Hockey

300115

Martial Arts/UFC

16

Motor Sport

73743

Rugby League

73744

Rugby Union

22

Snooker

437727Squash

269467

Table Tennis

24

Tennis

91189

Volleyball


Competition

An object that describes a competition.

<Competition>
<Id>115</Id>
<Name>Kategoria Superiore</Name>
<Region>
<Id>218</Id>
<Name>Albania</Name>
</Region>
<Gender>Male</Gender>
</Competition>


Element

Type

Description

Id

Integer

An immutable identifier for the competition

Name

String

The name of the competition

Region

Region

An object that describes the region within which the competition is held

Gender

Gender, optional

An enum describing the gender of the competitors. Possible values:
Male
Female
Mixed


Region

An object that describes a region.

<Region>
<Id>218</Id>
<Name>Albania</Name>
</Region>


Element

Type

Description

Id

Integer

An immutable identifier for the region

Name

String

The name of the region


Season

An object that describes a season.

<Season>
<Id>46344</Id>
<Name>Kategoria Superiore 2015-2016</Name>
</Season>

Element

Type

Description

Id

Integer

An immutable identifier for the season

Name

String

The name of the season


Round

An object that describes a round.

<Round>
<Id>221896</Id>
<Name>Round 7</Name>
</Round>


Element

Type

Description

Id

Integer

An immutable identifier for the round

Name

String

The name of the round


Venue

An object that describes a venue.

<Venue>
<Id>1970</Id>
<Name>Stadiumi Skënderbeu</Name>
<Region>
<Id>3181898</Id>
<Name>Korçë</Name>
</Region>
</Venue>

Element

Type

Description

Id

Integer

An immutable identifier for the venue

Name

String

The name of the venue

Region

Region

An object that describes the region within which the venue is located


Competitor

An object that describes a competitor. This can be a team or an individual player.

<Competitor>
<Id>127134</Id>
<Name>KS Skënderbeu Korçë</Name>
<HomeAway>Home</HomeAway>
</Competitor>


Element

Type

Description

Id

Integer

An immutable identifier for the competitor

Name

String

The name of the competitor

CompetitorType

CompetitorType

An Enum describing the competitor type. Possible values:
NotSpecified
Other
Person
Team
DoublesPartnership
Abstract
Horse
Jockey
Trainer
HorseOwner
Dog

HomeAway

HomeAway, optional

An Enum describing the home or away status of the competitor. Possible values:
Home
Away

Competitors

Competitor, optional

An array of competitors

FirstName

String, optional

When the competitor is a player, this is the first name of the player

LastName

String, optional

When the competitor is a player, this is the last name of the player

SquadNumber

String, optional

In some sports, the player's squad number

Position

String, optional

In some sports, a description of the player's position within the team

Gender

Gender, optional

Indicator of a player's gender

AgeCategory

String, optional

Describes the age of the competitors. Possible values include:
Youth
U15
U16
U17
U18
U19
U20
U21
U22
U23
Senior
This list is not definitive and care should be taken to ensure that assumptions about values in this field do not fail when new age categories are added.

ExternalId

String, optional

A customer's competitor ID, if available and required


AggregateEventInfo

An object that describes a season.

<AggregateEventInfo>
<CurrentHomeTeamFirstLegScore>1</CurrentHomeTeamFirstLegScore>
<CurrentAwayTeamFirstLegScore>0</CurrentAwayTeamFirstLegScore>
</AggregateEventInfo>


Element

Type

Description

CurrentHomeTeamFirstLegScore

Integer

The current home team's first leg score

CurrentAwayTeamFirstLegScore

Integer

The current away team's first leg score


BasketballProperties

An object that provides basketball-specific details for a basketball match.

<BasketballProperties>
<BasketballAssociation>FIBA</BasketballAssociation>
</BasketballProperties>

Element

Type

Description

BasketballAssociation

String

The name of the association under whose rules the fixture is to be played


FootballProperties

An object that provides football-specific details for a football match.

<FootballProperties>
<ExtraTimeProperties/>
<MatchDuration>PT1H30M</MatchDuration>
<ExtraTimeDuration>PT30M</ExtraTimeDuration>
</FootballProperties>

Element

Type

Description

ExtraTimeProperties

FootballExtraTimeProperties

An object that describes how (and if) the fixture might go to extra time

MatchDuration

Timespan

The scheduled duration of the fixture

ExtraTimeDuration

Timespan

The scheduled duration of extra time, if played


FootballExtraTimeProperties

An object that provides football-specific details for a football match.

<ExtraTimeProperties>
<IsExtraTime>True</IsExtraTime>
<IsSecondLeg>True</IsSecondLeg>
<FirstLegId>54876512</FirstLegId>
<GoesStraightToPenalties>False</GoesStraightToPenalties>
<AwayGoalsAfterNormalTime>True</AwayGoalsAfterNormalTime>
<AwayGoalsAfterExtraTime>True</AwayGoalsAfterExtraTime>
</ExtraTimeProperties>


Element

Type

Description

IsExtraTime

Boolean

True if the fixture could go to extra time, False otherwise

IsSecondLeg

Boolean

True if this is the second leg of a two leg match, False otherwise

FirstLegId

Integer

The fixture ID of the first leg if this is the second leg of a two leg match

GoesStraightToPenalties

Boolean

True if the fixture will go straight to penalties in the event of a full-time draw, False otherwise

AwayGoalsAfterNormalTime

Boolean

True if the "Away Goal Rule" applies after normal time

AwayGoalsAfterExtraTime

Boolean

True if the "Away Goal Rule" applies after Extra time


TennisProperties

An object that provides tennis-specific details for a tennis match.

<TennisProperties>
<NumberOfSets>3</NumberOfSets>
<FinalSet>TieBreak</FinalSet>
<ScoringSystemForServiceGames>StandardAdvantage</ScoringSystemForServiceGames>
<CourtSurface> Unset</CourtSurface>
</TennisProperties>


Element

Type

Description

NumberOfSets

Integer

The maximum number of sets to be played in the match

FinalSet

FinalSet

An Enum describing the type of the final set of the match. Values:
Unset
TieBreak
Advantage
MatchTieBreak

ScoringSystemForServiceGames

ScoringSystemForServiceGames

An Enum describing the scoring systemfor service (as opposed to Tie Break) games. Values:
Unset
NoAd (first player to reach 4 points wins the game)
StandardAdvantage (first player to reach 4 points with 2 points clear wins the game)

CourtSurface

CourtSurface

An Enum describing the court surface upon which the match is to be played. Values:
Unset
Clay
Grass
Hard
Carpet
Wood


MarketSet

Purpose: MarketSet holds a collection of Market instructions for a specified fixture. MarketSet may include one or many Market objects, each of which will create or update precisely one market instance.
Processing: when Market is received a new market should be created in the Trading Platform (or an existing market updated) in the fixture referenced by MarketSet.FixtureId using the details provided. Market includes selections, market type and other information required to allow you to insert or update a market in your trading platform.

Example Message – MarketSet

The example below shows a MarketSet for fixture 3476056. Some elements have been truncated.

<MarketSet>
<FixtureId>3476056</FixtureId>
<Markets>
<Market>
<Id>100001331</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>2</Id>
<Name>Match Result</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
... Selections truncated for readability
</Selections>
</Market>
... Markets truncated for readability
</Markets>
</MarketSet> 


Each MarketSet will contain one or more Market elements.

Example Message – Market, Match Result

Exhaustive markets, like Match Result, include an Outcome element that provides additional information about the selection.

Expand the source to see the full message!
<Market>
<Id>100001331</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>2</Id>
<Name>Match Result</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002720</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona</Name>
<CompetitorId>810068</CompetitorId>
<Outcome>
<Id>1</Id>
<Name>Home</Name>
</Outcome>
<Numerator>1</Numerator>
<Denominator>20</Denominator>
<Decimal>1.05</Decimal>
</Selection>
<Selection>
<Id>300002721</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Draw</Name>
<Outcome>
<Id>2</Id>
<Name>Draw</Name>
</Outcome>
<Numerator>15</Numerator>
<Denominator>2</Denominator>
<Decimal>8.5</Decimal>
</Selection>
<Selection>
<Id>300002722</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Xorazm Urganch</Name>
<CompetitorId>475759</CompetitorId>
<Outcome>
<Id>3</Id>
<Name>Away</Name>
</Outcome>
<Numerator>24</Numerator>
<Denominator>1</Denominator>
<Decimal>25.0</Decimal>
</Selection>
</Selections>
</Market>

Example Message – Market, Asian Handicap

Handicap markets, like Asian Handicap or Total Goals Over/Under, will include a Handicap element that provides details of the handicap line.

Expand the source to see the full message!
<Market>
<Id>100001332</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Asian Handicap</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<Handicap>2.5</Handicap>
<MarketType>
<Id>82</Id>
<Name>Asian Handicap</Name>
<IsHandicap>true</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002723</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona</Name>
<CompetitorId>810068</CompetitorId>
<Outcome>
<Id>1</Id>
<Name>Home</Name>
</Outcome>
<Numerator>23</Numerator>
<Denominator>20</Denominator>
<Decimal>2.15</Decimal>
</Selection>
<Selection>
<Id>300002724</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Xorazm Urganch</Name>
<CompetitorId>475759</CompetitorId>
<Outcome>
<Id>3</Id>
<Name>Away</Name>
</Outcome>
<Numerator>37</Numerator>
<Denominator>50</Denominator>
<Decimal>1.74</Decimal>
</Selection>
</Selections>
</Market>

Example Message – Correct Score

Correct Score market types (as in this example from FK Sementchi Farg'ona v Xorazm Urganch) include a Range element that encodes the score necessary for the selection to be the winning outcome. Range.Low is always the first (home team's score) value in the score, Range.High the second (away team's score), so the following element represents a score of 3-1.

Expand the source to see the full message!
<Range>
<High>1.0</High>
<Low>3.0</Low>
</Range>
The Correct Score market looks like this:
<Market>
<Id>100001333</Id>
<Sequence>0</Sequence>
<TradingStatus>Suspended</TradingStatus>
<Name>Correct Score</Name>
<ExpiryUtc>2015-10-24T09:59:59Z</ExpiryUtc>
<MarketType>
<Id>91</Id>
<Name>Correct Score</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002731</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona 2-0</Name>
<CompetitorId>810068</CompetitorId>
<Range>
<High>0.0</High>
<Low>2.0</Low>
</Range>
<Numerator>22</Numerator>
<Denominator>5</Denominator>
<Decimal>5.4</Decimal>
</Selection>
<Selection>
<Id>300002732</Id>
<TradingStatus>Trading</TradingStatus>
<Name>FK Sementchi Farg'ona 2-1</Name>
<CompetitorId>810068</CompetitorId>
<Range>
<High>1.0</High>
<Low>2.0</Low>
</Range>
<Numerator>23</Numerator>
<Denominator>4</Denominator>
<Decimal>6.75</Decimal>
</Selection>
... Selections truncated for readability
</Selections>
</Market>

Example Message – Tennis Game Correct Score

Unlike most Correct Score market types, the Game Correct Score (as in this example from Knapp, K v Stosur, S) in tennis has only a one populated element within Range because the winning player's game point score in tennis is never used. In these market types the "Home" player's score (Knapp, K) will represented by Range.High and the "Away" player's score (Stosur, S) by Range.Low.

Expand the source to see the full message!
<Id>100001359</Id>
<Sequence>9</Sequence>
<TradingStatus>Open</TradingStatus>
<Name>Game Score (Game 9)</Name>
<ExpiryUtc>2015-10-24T13:34:59Z</ExpiryUtc>
<Handicap i:nil="true" />
<MarketType>
<Id>11103</Id>
<Name>Numbered Game Score</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300002817</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Kasatkina, D/Vesnina, E to 15</Name>
<CompetitorId>840539</CompetitorId>
<Range>
<High>15.0</High>
</Range>
<Numerator>13</Numerator>
<Denominator>10</Denominator>
<Decimal>2.3</Decimal>
</Selection>
<Selection>
<Id>300002818</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Kasatkina, D/Vesnina, E to 30</Name>
<CompetitorId>840539</CompetitorId>
<Range>
<High>30.0</High>
</Range>
<Numerator>19</Numerator>
<Denominator>10</Denominator>
<Decimal>2.9</Decimal>
</Selection>
... Selections truncated for readability
</Selections>
</Market>

Example Message - Individual Player Market

Individual player markets will contain the selections relevant to the market and the Id of the competitor can be found at the end in the CompetitorOne element. So in the example below, the selections relate to how many Passing Touchdowns Steven Montez will throw and the players Id can be found within the CompetitorOne element: 1017218. For Head-to-Head markets, the second competitor will be defined by CompetitorTwo

Expand the source to see the full message!
<Market>
	<Id>153341800</Id>
	<Sequence>0</Sequence>
	<TradingStatus>Suspended</TradingStatus>
	<Name>Steven Montez - Total Passing Touchdowns Over/Under 0.50</Name>
	<ExpiryUtc>2024-08-14T14:00:00Z</ExpiryUtc>
	<Handicap>0.50</Handicap>
	<MarketType>
		<Id>15202</Id>
		<Name>Individual Player - Total Passing Touchdowns Over/Under</Name>
		<IsHandicap>true</IsHandicap>
	</MarketType>
	<InPlay>true</InPlay>
	<Selections>
		<Selection>
			<Id>451443924</Id>
			<TradingStatus>Trading</TradingStatus>
			<Name>Over</Name>
			<Outcome>
				<Id>30</Id>
				<Name>Over</Name>
			</Outcome>
			<Numerator>31</Numerator>
			<Denominator>20</Denominator>
			<Decimal>2.55</Decimal>
		</Selection>
		<Selection>
			<Id>451443925</Id>
			<TradingStatus>Trading</TradingStatus>
			<Name>Under</Name>
			<Outcome>
				<Id>31</Id>
				<Name>Under</Name>
			</Outcome>
			<Numerator>13</Numerator>
			<Denominator>25</Denominator>
			<Decimal>1.52</Decimal>
		</Selection>
	</Selections>
	<CompetitorOne>1017218</CompetitorOne>
</Market>

MarketSet

An object that contains a number of market objects.

<MarketSet>
<FixtureId>3476056</FixtureId>
<Markets>
... Markets truncated for readability
</Markets>
</MarketSet>


Element

Type

Description

FixtureId

Integer

An immutable identifier for a fixture

Markets

Market

An array of market objects, each describing a market within the identified fixture


Market

An object that describes a market.

Expand the source to see the full message!
<Market>
<Id>100013200</Id>
<Sequence>0</Sequence>
<TradingStatus>Open</TradingStatus>
<Name>Match Result</Name>
<ExpiryUtc>2016-04-29T09:35:00Z</ExpiryUtc>
<MarketType>
<Id>322</Id>
<Name>Match</Name>
<IsHandicap>false</IsHandicap>
</MarketType>
<InPlay>true</InPlay>
<Selections>
<Selection>
<Id>300053291</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Schwartzman, DS</Name>
<CompetitorId>567116</CompetitorId>
<Outcome>
<Id>25</Id>
<Name>Player 1</Name>
</Outcome>
<Numerator>47</Numerator>
<Denominator>50</Denominator>
<Decimal>1.94</Decimal>
<Probability>0.49278</Probability>
</Selection>
<Selection>
<Id>300053292</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Dzumhur, D</Name>
<CompetitorId>700304</CompetitorId>
<Outcome>
<Id>26</Id>
<Name>Player 2</Name>
</Outcome>
<Numerator>87</Numerator>
<Denominator>100</Denominator>
<Decimal>1.87</Decimal>
<Probability>0.50722/Probability>
</Selection>
</Selections>
<CashOutStatus>Closed</CashOutStatus>
<CashOutEnabled>True</CashOutEnabled>
<HighAvailabilityCashOutEnabled>False</HighAvailabilityCashOutEnabled>
</Market>

Element

Type

Description

IdIntegerAn immutable identifier for a market
SequenceInteger, optionalThe sequence number for an InPlay market
TradingStatusMarketStatus

An enum that describes the trading status of the market. Possible values:
Open
Suspended
Closed
Only markets with a TradingStatus of Open can be offered to customers. Markets with TradingStatus of Suspended and Closed must not be offered but are expected to reopen at some point.

NameStringThe name of the market

ExpiryUtc

DateTime

Used for PreMatch markets, expiry identifies the time when the market should be closed by the trading platform.

Handicap

Decimal, optionalFor handicap markets, the handicap line

MarketType

MarketType

An object that describes the market's type

InPlay

Boolean

True if the market contains an in-play price, False if the market contains a pre-match price

Selections

Selection

An array of Selection objects

ExternalId

String, optional

A customer's market ID, if available and required

CashOutStatus

CashOutStatus, optional

Optional feature, off by default. An enum that describes the cash-out status of the market:
Open
Suspended
Closed

CashOutEnabledBooleanOptional feature, True if cash-out is enabled for the market in question
HighAvailabilityCashOutEnabledBooleanOptional feature, True if high availability cash-out (HACO) is enabled for the market in question. HACO is currently supported only for "Match Result" in InPlay football.
EachWayTermEachWayTerm, optionalFor horse racing only, an object that describes the market's each way terms
CompetitorOneIntegerThe Id of the Competitor to whom the Individual or Head-to-Head Player market relates to.
CompetitorTwoIntegerThe Id of the Competitor to whom the Individual or Head-to-Head Player market relates to.


MarketType

An object that describes the type of a market.

<MarketType>
<Id>82</Id>
<Name>Asian Handicap</Name>
<IsHandicap>true</IsHandicap>
</MarketType>


Element

Type

Description

Id

Integer

An immutable identifier for the market type

Name

String

The name of the market type

IsHandicap

Boolean

True if the market type has a handicap, False otherwise


Selection

An object that describes a selection.

<Selection>
<Id>300053292</Id>
<TradingStatus>Trading</TradingStatus>
<Name>Dzumhur, D</Name>
<CompetitorId>700304</CompetitorId>
<Outcome>
<Id>26</Id>
<Name>Player 2</Name>
</Outcome>
<Numerator>87</Numerator>
<Denominator>100</Denominator>
<Decimal>1.87</Decimal>
<Probability>0.50721</Probability>
</Selection>


Element

Type

Description

Id

Integer

An immutable identifier for the market type

TradingStatus

SelectionStatus

An Enum describing the trading state of the selection. Possible values:
Unpriced
Trading
Suspended
NonRunner
Only selections with a TradingStatus of Trading can be offered to customers. Selections with a TradingStatus of Unpriced will not have a price and cannot be offered. Selections with a TradingStatus of Suspended are not safe to be offered for some reason.
NonRunner is used only in horse races to indicate a selection that will no longer compete

Name

String

The name of the market type

CompetitorId

Integer, optional

The ID of the competitor if the selection is a competitor within the parent fixture

Outcome

Outcome, optional

An object describing the selection's outcome type

Range

Range, optional

An object describing the range of outcomes for which the selection is a winner

Numerator

Integer

The numerator of the price of the selection

Denominator

Integer

The denominator of the price of the selection

Decimal

Decimal

The price of the selection in decimal format

Probability

Decimal, optional

The probability of the selection. Off by default, activated on request.

ExternalId

String, optional

A customer's market ID, if available and required


Outcome

An object that describes the outcome type of a selection.

<Outcome>
<Id>2</Id>
<Name>Draw</Name>
</Outcome>

Element

Type

Description

Id

Integer

An immutable identifier for the outcome type

Name

String

The name of the outcome type


A list of outcome types can be found in Outcome Types section. 

Range

An object that describes the range parameters of a selection.

<Range>
<High>0.0</High>
<Low>2.0</Low>
</Range>


Element

Type

Description

High

Decimal, optional

The high value of a range

Low

Decimal, optional

The low value of a range


EachWayTerm

For horse racing markets only, an object that describes the market's each way terms.

<EachWayTerm>
<Places>5</Places>
<Numerator>1</Numerator>
<Denominator>2</Denominator>
</EachWayTerm>


Element

Type

Description

Places

Integer

The number of places over which each-way terms are to be applied

Numerator

Integer

Numerator of fraction of odds to be applied for each-way terms

Denominator

Integer

Denominator of fraction of odds to be applied for each-way terms


Sequence Number.

Markets that are created by the in-play system will have a sequence number within the market element with Football, Basketball, Baseball, etc. markets incrementing up from 0 and other Inplay sports from 1 (only for the Openbet platform, all sports begin at 1). Served Sports disciplines include further customisation, detailed below. An example sequence for Football:

<Sequence>0</Sequence>

This number will increment from 0 as the index described by the market increases. In action, a Next Goalscorer market will begin with index 0 and increment upwards after each goal.

Exceptions are Rest of First Half Asian Handicap - 13766 and Rest of Match Asian Handicap - 13496 markets where the sequence is calculated with the following formula: (HomeScore) + 1000 + (AwayScore * 1000)

Sequence Number – Served Sports

For Set Markets such as Current Set Winner or Next Set Correct Score the sequence number is the number of the Set. So for Set Winner (Set 3) then the Sequence number would be 3. For Game Markets there are two different indexing systems:

  1. Index on Set and Game: e.g. Game Winner (Set 1, Game 3)For these markets we calculate the sequence number by adding the Set Number to 1000 times the Game Number in the Set so Game Winner (Set 1, Game 3) would have a sequence number of 3001.
  2. Index on Game in the match: e.g. Game Winner (Game 20)For these markets we calculate the sequence number as the Game Number in the match so Game Winner (Game 20) would have a sequence number of 20.

For Point Markets there are also two options but the point number is also taken into account. This is done by adding 1000000 times the point number to the game sequence number.
The following table illustrates how that works:

Market

 Sequence Number

Example

11328

Current Service Game Point Winner (Game, Point)

Game + (1000000 * Point)

 

 

 (Game, Point) (Game 3, Point 2)


2000003


11329

Next Service Game Point Winner (Game, Point)

11335

Numbered Service Game Point Winner (Game, Point)

11336

Current Service Game Point Winner (Set, Game, Point)

Set + (Game*1000) + (Point * 1000000)

 

 

 (Set2, Game 3, Point 4)


4003002


11337

Next Service Game Point Winner (Set, Game, Point)

11340

Numbered Service Game Point Winner (Set, Game, Point)

List of markets with the corresponding initial index can be found here.

Current, Next and Numbered Market Type Variants

In Tennis, indexed market types are split into two categories:

  • Current/Next, and
  • Numbered

These market type variants are equivalent, so Current/Next Set Winner is functionally identical to Numbered Set Winner. The Numbered variants are used by all customers except those with OpenBet trading platforms, who use the Current/Next variants (OpenBet allows only one index to be active in a market at a time and so two market types are required so that, for example, Current Set Winner and Next Set Winner can be offered concurrently).

ResultSet

Purpose: ResultSet holds a collection of Result objects for a specified fixture. ResultSet may include one or more Result objects, each of which will hold a result for precisely one market instance.
Processing: when Result is received the market referenced by Market.Id should be resulted within your trading platform. Once resulted you can also settle bets.
The example message below shows a ResultSet for a Handicap market in event 90090201.

Example Message - ResultSet

<ResultSet>
<FixtureId>3474167</FixtureId>
<Results>
<MarketResult>
... Markets truncated for readability
</MarketResult>
</Results>


Element

Type

Description

FixtureId

Integer

An immutable identifier for a fixture

Results

MarketResult

An array of market result objects, each describing the outcome of a market within the identified fixture


MarketResult

An object that describes a result for a market.

<MarketResult>
<MarketId>100001358</MarketId>
<MarketSequence>14</MarketSequence>
<Results>
<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Loser</ResultStatus>
<SelectionId>300002810</SelectionId>
</SelectionResult>
<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Winner</ResultStatus>
<SelectionId>300002811</SelectionId>
</SelectionResult>
</Results>
<MarketResultScore>
<First>0</First>
<Second>1</Second>
<MarketResultScore>
</MarketResult>


Element

Type

Description

MarketId

Integer

The identifier of the market to which this result applies

MarketSequence

Integer, optional

For an in-play market, the sequence number being resulted. For PM markets, this value is not included

Results

SelectionResult

An array of selection result objects


SelectionResult

An object that describes the outcome of a selection.

<SelectionResult>
<AdditionalResultData i:nil="true" />
<ResultStatus>Loser</ResultStatus>
<SelectionId>300002810</SelectionId>
</SelectionResult>


Element

Type

Description

SelectionId

Integer

The identifier of the selection to which this result applies

ResultStatus

ResultStatus

An Enum that describes the selection's outcomes. Possible values:
None (only used with Multibet)
Winner
Pushed
Loser
Placed
Partial
(more information about the values here)

AdditionalResultData

AdditonalResultData, optional

Contains additional information that may be required to result some selections where the outcome isn't win/lose.

AdditionalResultData

An object that contains additional data necessary to settle bets placed on a selection where Selection.ResultStatus is either Placed or Partial.

The PercentageWin and PercentagePush values will indicate how much of the bet will be paid out, how much will be pushed and how much will be lost. So in the example below, 50% of the bet placed will be paid out as a winning bet and and the other 50% will be pushed, so the better will be refunded half of the amount placed.

Should the PercentageWin and PercentagePush values for instance be <PercentageWin>0.0</PercentageWin> and <PercentagePush>50.0</PercentagePush>, then half of the bet placed by the punter would lose and half of the bet would be refunded as part of the push.

<AdditionalResultData>
<PercentageWin>50.0</PercentageWin>
<PercentagePush>50.0</PercentagePush>
<Place>0</Place>
<CountInPlace>0</CountInPlace>
</AdditionalResultData>


Element

Type

Description

PercentageWin

Decimal

A number that describes what proportion of the bet should be paid

PercentagePush

Decimal

A number that describes what proportion of the bet should be pushed

Place

Integer

The placed position of the selection

CountInPlace

Integer

The counted place position of the selection


MarketResultScore

An optional object that will provide you with event scores through select market type resulting messages for both Prematch and Inplay Manager.

<MarketResultScore>
<First>0</First>
<Second>1</Second>
<MarketResultScore>


Element

Type

Description

First

Integer

A number describing the first or Home selection score

Second

Integer

A number describing the second or Away selection score

Each market includes the score at the resulting time, so as an example - Half Time Result provides the score at the end of the first half whilst Match Result includes the full-time score.

At the moment the feature is available for PreMatch sports and sports that have a detailed MatchState available.


Coverage

Purpose: Coverage holds information that describes the current expectations regarding the availability of an in-play trading service for a fixture. 
Coverage will be sent when an event is created either by the Prematch or the Inplay Manager and when either the feed availability or booking state of a fixture has been changed.
Processing: Coverage tells you the about the match states and trading state of the fixture and whether you are licensed to receive an in-play service. If IsLicensed is true for both MatchState and TradingState then we will be able to trade the fixture in-play. 
The example message below shows Coverage for fixture 3025747.  

<Coverage>
  <FixtureId>3025747</FixtureId>
   <ExternalFixtureIdi:nil="true" />
  <IsBooked>true</IsBooked>
<AvailableFeeds>
...
  </AvailableFeeds>
</CoverageCommand>


Element

Type

Description

FixtureIdIntAn immutable identifier for the fixture
ExternalFixtureIdString, optionalThis field has been deprecated. Please use the External ID element on Fixture messages and the Booking API
IsBookedBooleanTrue if you have booked the fixture, false otherwise
AvailableFeedsFeedAn array of objects describing the feeds available for this fixture.


Feeds

An object that describes a data feed in a fixture.

   <Feed>
		<Type>MatchState</Type>
		<IsLicensed>true</IsLicensed>
		</Feed>
		<Feed>
		<Type>TradingState</Type>
		<IsLicensed>true</IsLicensed>
   </Feed>

Element

Type

Description

IsLicensed

Boolean

True if you are licensed to receive data from this feed for this fixture, false otherwise.

Type

String

A description of the feed. Possible values are:
MatchState
TradingState