Multibet Sportsbook Integration (V3)

Introduction

Although Multibet is an independent product, the back-end requests follow the same pattern and re-use the same data contracts with the Genius Sports Sportsbook Integration (V3). Therefore, this document should be read in conjunction with Integration Schema, which describes the price feed in detail. 

Each message, will be pushed to the customer’s endpoint as described and the data contract details for Fixture, Market and Resulting messages will remain mostly the same. Any differences to the standard Genius Sports pricing feed are highlighted below.

Table of Contents

Diagram

Multibet Fixture Availability

Multibet fixtures coverage is managed by Genius Sports. Below is a list of currently supported sports/leagues:

  • Football - all fixtures with InPlay feeds coverage

  • American Football - InPlay NFL

Fixture data will be delivered via Fixture messages as outlined in “Genius Sports Integration Schema”.

Market Creation/Update

The number of possible combinations for a Multibet market is practically unlimited and therefore the list of available markets cannot be pre-defined as it is typically done for single In Play selections. Instead, the markets will be dynamically generated in the platform’s back-end, every time a new unique combination of legs is requested from a punter. The name of the market will be the description of the ‘built’ multibet while the MarketType -> Id and MarketType -> Name will remain the same as shown in the example below:

<MarketSet> <FixtureId>3476056</FixtureId> <Markets> <Market> <Id>100001331</Id> <Sequence>0</Sequence> <TradingStatus>Open</TradingStatus> <!--The name of the market is dynamically generated.--> <Name> WinMatchRegularTime_Home,HalfTimeTotalGoals_Over_2.5 </Name> <ExpiryUtc>2022-08-10T09:59:59Z</ExpiryUtc> <MarketType> <!--Constant value for all Multibet markets (sport-specific)--> <Id>9573</Id> <!--Constant value for all Multibet markets (sport-specific)--> <Name>Multibet Football</Name> <IsHandicap>false</IsHandicap> </MarketType> <InPlay>true</InPlay> <Selections> <Selection> <Id>300002720</Id> <TradingStatus>Trading</TradingStatus> <!--Constant value for all Multibet selections--> <Name>Yes</Name> <Outcome> <Id>39</Id> <Name>Yes</Name> </Outcome> <Numerator>200</Numerator> <Denominator>3</Denominator> <Decimal>66.67</Decimal> </Selection> </Selections> </Market> </Markets> </MarketSet>

The following market types are available for Multibet product:

Sport

MarketType Name

MarketTypeId

Sport

MarketType Name

MarketTypeId

Football (10)

Multibet Football

15316

American Football (17)

Multibet American Football

15317

 

Sportsbook Trading Platform Response to Multibet Market Messages

Following a Multibet market creation/update request Sportsbook Trading platform is expected to return a string of data which will include the ‘instructions’ for the population of the Betslip in the front-end. There are 2 options how to achieve this:

  1. The default option for getting the Betslip populated after it’s created, is for Genius Sports service to “predict” the response data within our platform and publish a feedback message to Multibet system after a successful response for the market creation (OK 200). This is possible if client platform is using Genius Sports Market data and any additional information is predictable within our environment.

  2. Additional option is to take advantage of the asynchronous approach where the market response is pushed from customer’s system to a separate endpoint. If parameters from customer’s platform would need to be included in feedback message, then this would be a desired workflow to implement. 

Please note that latest platform response for each unique Multibet market will be stored on Genius Sports’ system in order to be re-used for subsequent bets.

Below is an example of platform response when using option 2:

<UpdategramResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.sportsdataservices.com/integrationService/v3/response"> <Header> <!--As received in the original Genius Sports message--> <MessageGuid>fe2ef81c-8c6d-4f63-9fb4-290bc7f15f1e</MessageGuid> <!--Timestamp generated when dispatching response --> <TimeStampUtc>2022-08-10T13:20:04.3634Z</TimeStampUtc> <!--The Genius Sports Bookmaker Id--> <BookmakerId>1234</BookmakerId> <!--The Genius Sports Fixture Id--> <FixtureId>12312334</FixtureId> <!--(int)The corresponding platform Fixture Id--> <PlatformFixtureId>2456789</PlatformFixtureId> <!--(int) indicates success/failure--> <StatusCode>0</StatusCode> <!--(string) describes success/failure--> <StatusMessage>Success</StatusMessage> </Header> <MarketSet> <Markets> <Market> <!--Genius Sports MarketId--> <Id>104517634</Id> <!--(string) The corresponding Platform MarketId--> <PlatformId>123abc</PlatformId> <!--(string) data required to populate the Betslip in the frontend--> <PlatformData> CP$null$6768414.2$Lions%20v%20Jaguares$45592268.2$Anytime%20Tr yscorer$E6768414.2|SCORE$$$$False$H$null$null$null$$$371565609.2$Coe tzee,%20A$5$4$D,T,A,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,TX,P,Y,L1 5,C,L31,H,L63,SH,G,SSA,DSA,S$CP$50652$ </PlatformData> </Market> </Markets> </MarketSet> </UpdategramResponse>

Alternative to Price Push Feed

Push feed is the default way of sending market price updates but it can potentially cause performance issues (which will lead to stale prices) under heavy load. The load directly correlates with the number of active punters.

Let’s consider the following scenario: there are 1000 punters creating a unique multibets in a short period of time for one fixture. This means that 1000 new markets will be created and price updates will be pushed for each of them for 1 minute. In In-Play price updates might happen very often (potentially every second) which means that for this scenario we might send up to 1000 price updates to Sportsbook trading platform.

Alternative approach is to disable the push feed and use prices endpoint provided by Multibet API before accepting the bet.

Resulting

Resulting will be delivered via V3 integration service to Sportsbook trading platform endpoint and the message data contract will remain the same as described under Integration Schema section (link). When Result is received, then market referenced by MarketId should be resulted within Sportsbook trading platform. SelectionResult includes a result value for single selection "Yes", which determines the global outcome of this market. Please find an example message below:

<?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>1856d75e-efef-44e7-8eea-69ec4fa74c58</MessageGuid> <TimeStampUtc>2022-08-15T10:56:01.672521Z</TimeStampUtc> <Retry>0</Retry> </Header> <ResultSet> <FixtureId>5553065</FixtureId> <Results> <MarketResult> <MarketId>100032419</MarketId> <Results> <SelectionResult> <SelectionId>300032419</SelectionId> <ResultStatus>Loser</ResultStatus> </SelectionResult> </Results> </MarketResult> </Results> </ResultSet> </Updategram>


Per-leg Resulting

In addition to the above, there is an option to enable a feature which would allow Genius Sports to deliver per-leg resulting information to Sportsbook trading platform. In order to do this, additional selections will be added to the existing MarketResult with additional name properties to identify the individual selections. Below is an example of a result message which includes per-leg resulting info:

 

Below are key details to consider with the per-leg resulting:

  • All SelectionResults have Name element included

  • Primary selection “Yes” would hold the global result for the betslip

  • Leg selections are described with a Name and would all have SelectionId = 0.

  • SelectionResult elements will be ordered in the following manner:

    • Primary selection with valid ID and Name “Yes” will be first in the list

    • Other leg selections will be ordered identically to the order published initially with the marketName element in MarketSet message