External Fixture Feed Integration

Introduction

We are capable of integrating external Fixture feeds, which will give us the means to make the external Fixture Id available both through the Booking API and include it within the Fixture Creation message that we subsequently will generate.

Requirements

In order for us to successfully integrate your external Fixture feeds, our Fixture Acquisition development team will require that the following criteria are met. Please note that integration of a fixture feed can take up to two weeks, therefore all feed source and feed availability changes should be announced with ample time to for our team to introduce the necessary amendments for the continued use of your feed.

IP whitelisting

The following IP addresses will need to be whitelisted in order for us to be able to access your feed:

Range 185.107.196.0/22 (185.107.196.1 - 185.107.199.254)

If you are unable to whitelist IP ranges, then whitelisting these three IP addresses will be sufficient:

·        185.107.196.33

·        185.107.196.35

·        185.107.198.31

In addition, we will require you to Whitelist the following IP addresses that are outside of the aforementioned range as well:

  • 54.72.237.39

  • 63.34.72.4

  • 63.34.98.34

  • 63.34.179.202

  • 63.34.167.7

  • 34.255.131.226

  • 63.34.140.175

  • 54.72.188.44

  • 34.251.29.46

  • 52.18.134.102

  • 63.33.96.219

  • 52.209.72.240

  • 52.16.43.53

  • 52.210.181.12

  • 63.33.232.209

  • 34.255.225.141

  • 52.49.175.178

  • 54.246.193.248

  • 52.214.13.88

  • 34.253.169.237

Feed requirements

The feed can be either an XML/JSON feed or a Pull API and the following data will need to be available in order for us to successfully integrate the feed:

  • Sport or Sport Id

  • Competition name & Competition Id

  • Fixture name & Fixture Id

  • Fixture start time

  • Home competitor name & Id

  • Away competitor name & Id

Additionally, if you would also like us to integrate your Odds data, then the following will need to be available for all fixtures:

  • Market name & Id

  • Selection name & Id

  • Odds per Selection

Feed Example

Below you can find an example of what we would expect there to be in the feed - the example features one fixture and one market:

<group id="240" name="Football"> <group id="141078497" name="England"> <group id="6323610" name="ENG Premier League"> <group id="998598200" name="Bournemouth v Manchester United"> <market name="3 Way Handicap (1) [90 Mins]" id="130433112" expiry="2018-11-03T12:30:00Z" inRunning="false"> <selection name="Bournemouth (+1)" id="59805551700" handicap="1.0" price="1.775" selectionLinkInfo="59805551700/415013750202"/> <selection name="Manchester United (-1)" id="59805552600" handicap="-1.0" price="3.7" selectionLinkInfo="59805552600/415013750002"/> <selection name="Handicap Tie - Bournemouth +1" id="59805553200" handicap="" price="3.75" selectionLinkInfo="59805553200/415013749902"/> </market>

We would also require you to provide us with the following information should you wish us to successfully integrate your Fixtures feed:

  • Any Documentation that you have available regarding how your feed has been implemented.

  • If your feed requires an Authentication key, then you will need to supply us with the credentials to the feed. If this is a temporary Authentication key, which will have an expiry time of 5 weeks prior to it being changed, we need to be notified and the new authentication key needs to be provided.

External Fixture Id via the Booking API

Once the external Fixture feed has been successfully integrated, your Fixture Id’s will become available through the Booking API. More information about the Booking API itself can be found on the following Confluence page.

The external Fixture Id will however be present within the External Id’s array.

The source id will be id the we allocate to your external Fixture feed after we have integrated it, which will differ from your Bookmaker Id that will be present for instance in the Fixture messages.

An example can be found below:

{ "FixtureId": 5242621, "CompetitionId": 198, "CompetitionName": "Uruguay Primera División", "SportId": 10, "Name": "CA Cerro v CA Peñarol", "Date": "2018-03-21T19:00:00Z", "CustomerFixtureId": "14124225", - this field has now been deprecated "IsBooked": true, "AvailableFeeds": [ { "Name": null, "Type": "MatchState", "IsLicensed": true, "Metadata": { "Origin": "Venue", "Lineups": "False", "Multisport": "False" } }, { "Name": null, "Type": "TradingState", "IsLicensed": true, "Metadata": null } ], "ExternalIds": [ { "Source": "1000", "Id": "14124225" }, { "Source": "1001", "Id": "2747471" } ] }

External Fixture Id via the Fixture Creation message

Once the external Fixture feed has been successfully integrated, your Fixture Id’s will become available and will be present within our Fixture Creation messages. More information about the Booking API itself can be found on the following Confluence page.

The external Fixture Id will be be available in the ExternalId element - a truncated example of the Fixture creation message you would expect to receive would be as follows - the full message is available in the aforementioned Confluence page which details the structure of our Fixture creation messages.
The example is as follows:

<?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> ... </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>