...
Lucidchart | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
API Domain Names
Environment | Base URL | Notes | Swagger |
---|---|---|---|
Production |
| Production environment | |
UAT |
| User Acceptance Testing. Limited capacity. | https://uat.multibet.api.geniussports.com/api-docs/index.html#/ |
Authentication
Please refer to the Multibet API Swagger for details regarding authenticating with the API https://multibet.api.geniussports.com/api-docs/index.html
Resources
Genius Sports provides four pull the following API endpoints:
Fixture Coverage - Returns sporting fixtures that are available to be used in Multibet
Market-types - Provides a list of markets and selections that are available to bet upon
Prices - The price of a particular multibet
Cashout - The cashout price of a particular multibet
Results - The result of a particular multibet
...
Markets - Valid only for customers who use Option 2. Multibet API + Sportsbook Integration. Calling this endpoint causes the Integration Service to create a market in the customer's Trading Platform and returns the market id from the Trading Platform along with any other available context.
Note: It is expected to receive a response status 404 Not found until the market is successfully created.
Info |
---|
For Market Types, Prices, Cashout, Results and Markets, please refer to the Multibet Swagger or the individual links above. For Fixture coverage, see below. |
Fixture Coverage
Returns list of fixtures that are available to be used in Multibet. The Fixture Id is required to call the remaining three endpoints: Markets-types, Prices, Results
API Domain Names
Environment | Base URL | Notes |
---|---|---|
Production |
|
Production environment | |
UAT |
|
User Acceptance Testing. Limited capacity. |
Authentication
You should go through all steps in “Getting an access token” section Get Cognito Token” and authenticate using the Coverage API <api-key>
...
Code Block |
---|
curl --request GET \ --url https://uat.public.coverage.api.geniussports.com/apicoverage/MultibetPreMatchCoveragemultibetprematch/eventfixtures/{fixtureId} \ --header 'Authorization: Bearer <access-token> \' --header 'x-api-key: <api-key>' |
...
Returns data about a particular fixture that will show this fixture is available for use in Multibet Pre-Match.
Path
GET MultibetPreMatchCoverage/coverage/rangemultibetprematch/sportsports/{sportId}/from/{from}/to/{to}fixtures
{sportId}
should be replaced by the relevant Genius Sports ids. Only fixtures starting after this date {from_time}
and only fixtures starting before this {to_time}
will be returned. Format: yyyy-MM-ddddTHH:mm:ss
E.g. 2023-07-1505-15T20:00:00
Example: https://uat.public.coverage.api.geniussports.com/apicoverage/MultibetPreMatchCoveragemultibetprematch/rangesports/sport/10/fixtures?from/_time=2023-0705-13/to/15T20%3A00%3A00&to_time=2023-0705-1517T22%3A00%3A00
Response Body
Code Block | ||
---|---|---|
| ||
[ { "betgeniusFixtureId": 123456, "sourceFixtureId": "123456", "source": "GeniusSportsMultibetPreMatch", "sportId": 10, "available": true, "coverageType": 4 }, { "betgeniusFixtureId": 1234567, "sourceFixtureId": "1234567", "source": "GeniusSportsMultibetPreMatch", "sportId": 10, "available": false, "coverageType": 4 }, { "betgeniusFixtureId": 12345678, "sourceFixtureId": "12345678", "source": "GeniusSportsMultibetPreMatch", "sportId": 10, "available": true, "coverageType": 4 } ] |
...
Returns data about a particular fixture that will show this fixture is available for use in Multibet Pre-Match.
Path
GET MultibetPreMatchCoverage/event/coverage/multibetprematch/fixtures/{fixtureId}
{fixtureId}
should be replaced by the relevant Genius Sports ids.
Example: https://uat.public.coverage.api.geniussports.com/apicoverage/MultibetPreMatchCoveragemultibetprematch/eventfixtures/12345612345
Response Body
Code Block | ||
---|---|---|
| ||
[ { "betgeniusFixtureId": 123456, "sourceFixtureId": "123456", "source": "GeniusSportsMultibetPreMatch", "sportId": 10, "available": true, "coverageType": 4 } ] |
...
Returns data about a particular fixture that will show this fixture is available for use in Multibet In-Play.
Path
GET MultibetInPlayCoverage/coverage/rangemultibetinplay/sportsports/{sportId}/from/{from}/to/{to}fixtures
{sportId}
should be replaced by the relevant Genius Sports ids. Only fixtures starting after this date {from_time}
and only fixtures starting before this {to_time}
will be returned. Format: yyyy-MM-ddddTHH:mm:ss
E.g. 2023-07-1505-15T20:00:00
Example: https://uat.public.coverage.api.geniussports.com/apicoverage/MultibetInPlayCoveragemultibetinplay/range/sportsports/10/fixtures?from/_time=2023-0705-13/to/15T20%3A00%3A00&to_time=2023-0705-1517T20%3A00%3A00
Response Body
Code Block | ||
---|---|---|
| ||
[ { "betgeniusFixtureId": 123456, "sourceFixtureId": "123456", "source": "GeniusSportsMultibetInPlay", "sportId": 10, "available": true, "coverageType": 4 }, { "betgeniusFixtureId": 1234567, "sourceFixtureId": "1234567", "source": "GeniusSportsMultibetInPlay", "sportId": 10, "available": false, "coverageType": 4 }, { "betgeniusFixtureId": 12345678, "sourceFixtureId": "12345678", "source": "GeniusSportsMultibetInPlay", "sportId": 10, "available": true, "coverageType": 4 } ] |
...
Returns data about a particular fixture that will show this fixture is available for use in Multibet In-Play.
Path
GET MultibetInPlayCoverage/event/coverage/multibetinplay/fixtures/{fixtureId}
{fixtureId}
should be replaced by the relevant Genius Sports ids.
Example: https://uat.public.coverage.api.geniussports.com/apicoverage/MultibetInPlayCoveragemultibetinplay/eventfixtures/12345612345
Response Body
Code Block | ||
---|---|---|
| ||
[ { "betgeniusFixtureId": 123456, "sourceFixtureId": "123456", "source": "GeniusSportsMultibetInPlay", "sportId": 10, "available": true, "coverageType": 3 } ] |
...
GET sports/10/fixtures/123456/market-types
...
?limitTo=MatchResult,HomeTeamTotalGoalsOverUnder
Code Block | ||
---|---|---|
| ||
[ { "id": "MatchResult", "name": "Match Result", "translatedName": "", "categoryName": "Match Result", "translatedCategoryName": "", "selections": { "MatchResult_Home": { "name": "Manchester United", "translatedName": "Man Utd", "compatible": true "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "MatchResult_Draw": { "name": "Draw", "translatedName": "X", "compatible": true, "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "MatchResult_Away": { "name": "Arsenal", "translatedName": "FC Arsenal", "compatible": true, "probability": 0.123, "decimalPrice": 1.23, "suspended": false } } }, { "id": "HomeTeamTotalGoalsOverUnder", "name": "Manchester United Total Goals OverUnder", "translatedName": "Man Utd Total Goals Over/Under", "categoryName": "Home Team Total Goals OverUnder", "translatedCategoryName": "Home Team Total Goals Over/Under", "selections": { "HomeTeamTotalGoalsOverUnder_Over_0.5": { "name": "Over 0.5", "translatedName": "Over 0.5", "compatible": false true }, "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "HomeTeamTotalGoalsOverUnder_Over_1.5": { "name": "Over 1.5", "compatible": true, "translatedName": "Over 1.5", "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "HomeTeamTotalGoalsOverUnder_Over_2.5": { "name": "Over 2.5", "translatedName": "Over 2.5", "compatible": true, "probability": 0.123, "decimalPrice": 1.23, "suspended": false } } } ] |
...
To get the price for the current bet: GET sports/10/fixtures/123456/prices?legs=MatchResult_Home
Code Block | ||
---|---|---|
| ||
{ "decimalPrice": 1.66, "probability": 0.5656463943226999, "suspended": false, } |
The following request gets the list of available markets taking into account the already selected leg.
Note: The Match Result market will not be included in the response because it is already used in one of the legs. The probabilities and prices take into account that the Match Result Home leg is included in the bet.
GET sports/10/fixtures/123456/market-types?legs=MatchResult_Home
Code Block |
---|
[ { "id": "HomeTeamTotalGoalsOverUnder", "name": "Manchester United Total Goals OverUnder", "translatedName": "Man Utd Total Goals Over/Under", "categoryName": "Home Team Total Goals OverUnder", "translatedCategoryName": "Home Team Total Goals Over/Under", "selections": { "HomeTeamTotalGoalsOverUnder_Over_0.5": { "status": "available", "legs": [ { "id": "MatchResult_Away", "status": "trading" } ] } |
Step 3: Get the list of the compatible market types to show to the user after one leg is selected
The following request gets the list of available markets taking into account the already selected leg:
GET sports/10/fixtures/123456/market-types?legs=MatchResult_Home&limitTo=MatchResult,HomeTeamTotalGoalsOverUnder
Info |
---|
The Match Result market will be included in the response as |
Code Block | ||
---|---|---|
| ||
[ { "id": "MatchResult", "name": "Match Result", "translatedName": "", "categoryName": "Match Result", "translatedCategoryName": "", "selections": { "MatchResult_Home": { "name": "Manchester United", "translatedName": "Man Utd", "compatible": false "suspended": false }, "MatchResult_Draw": { "name": "Draw", "translatedName": "X", "compatible": false "suspended": false }, "MatchResult_Away": { "name": "Arsenal", "translatedName": "FC Arsenal", "compatible": false, "suspended": false } } }, { "id": "HomeTeamTotalGoalsOverUnder", "name": "Manchester United Total Goals OverUnder", "translatedName": "Man Utd Total Goals Over/Under", "categoryName": "Home Team Total Goals OverUnder", "translatedCategoryName": "Home Team Total Goals Over/Under", "selections": { "HomeTeamTotalGoalsOverUnder_Over_0.5": { "name": "Over 0.5", "translatedName": "Over 0.5", "compatible": true "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "HomeTeamTotalGoalsOverUnder_Over_1.5": { "name": "Over 1.5", "compatible": true, "translatedName": "Over 1.5", "probability": 0.123, "decimalPrice": 1.23, "suspended": false }, "HomeTeamTotalGoalsOverUnder_Over_2.5": { "name": "Over 2.5", "translatedName": "Over 2.5", "compatible": true, "probability": 0.123, " |
...
decimalPrice": |
...
1.23, " |
...
suspended": |
...
false } |
...
|
...
} } |
...
]
|
Step 3: User adds a second leg (HomeTeamTotalGoalsOverUnder_Over_2.5
) to the bet
The following call gets the price for the current bet: GET sports/10/fixtures/123456/prices?legs=MatchResult_Home,HomeTeamTotalGoalsOverUnder_Over_
...
2.5
...
Code Block | ||
---|---|---|
| ||
{ "name": "Over 1.5", "compatible": true, "translatedName"decimalPrice": "Over 1.5"77, "probability": 0.1234656463943226999, "suspended": false, "decimalPricestatus": 1.23, "available", "suspendedlegs": false[ }, { "HomeTeamTotalGoalsOverUnder_Over_2.5": { "nameid": "Over 2.5MatchResult_Home", "translatedNamestatus": "Over 2.5",trading" }, "compatible": true, { "probability": 0.123, "decimalPriceid": 1.23"HomeTeamTotalGoalsOverUnder_Over_2.5", "suspendedstatus": false"trading" } } } ] } ] |
Step
...
The following call gets the price for the current bet:
...
4: Request to create a market for the required bet
Info |
---|
Valid only for customers who use Option 2. Multibet API + Sportsbook Integration |
The following call creates a market in the customer's Trading Platform, if that bet was not requested previously. In case market has been already created it gets the market id from the Integration Service along with any other available context from Trading Platform
GET /sports/10/fixtures/123456/pricesmarkets?legs=legs=MatchResult_Home,HomeTeamTotalGoalsOverUnder_Over_2.5
Code Block | ||
---|---|---|
| ||
{ "id": "104517634", "decimalPricetradingPlatformId": 1.77"123abc", "probabilitytradingPlatformMetadata": 0.4656463943226999, "CP$null$6768414.2$Lions%20v%20Jaguares$45592268.2...", "suspendedtradingPlatformFixtureId": false"1234" } |
Step
...
5: Request a result for the bet
GET sports/10/fixtures/123456/results?legs=MatchResult_Home,HomeTeamTotalGoalsOverUnder_Over_2.5
Code Block | ||
---|---|---|
| ||
{ "result": "lose", "legResults": [ { "leg": "MatchResult_Home", "legResult": "win" }, { "leg": "HomeTeamTotalGoalsOverUnder_Over_2.5", "legResult": "lose" } ] } |
...