Coverage API
- 1 Overview
- 2 URLs
- 3 Authentication
- 4 Use Cases
- 4.1 Get Coverage by fixtureId
- 4.1.1 Mandatory parameters
- 4.1.2 As Genius Sports Customer, I want to know if a fixture has Video Coverage.
- 4.1.3 As Genius Sports Customer, I want to know if a fixture has MatchState Coverage.
- 4.1.4 As Genius Sports Customer, I want to know if a fixture has Multibet PreMatch Coverage.
- 4.1.5 As Genius Sports Customer, I want to know if a fixture has Multibet InPlay Coverage.
- 4.2 Get Coverage for a given sport and date range
- 4.2.1 Mandatory parameters
- 4.2.2 As Genius Sports Customer, I want to know all fixture that have Video coverage for a specific sport and date range.
- 4.2.3 As Genius Sports Customer, I want to know all fixture that have MatchState coverage for a specific sport and date range.
- 4.2.4 As Genius Sports Customer, I want to know all fixture that have Multibet PreMatch coverage for a specific sport and date range.
- 4.2.5 As Genius Sports Customer, I want to know all fixture that have Multibet InPlay coverage for a specific sport and date range.
- 4.1 Get Coverage by fixtureId
- 5 Swagger
Overview
Coverage API allows Genius Sports customers to request information on what events will be offered and the type of available Coverage for each. There are four types of Coverage that the API supports:
Video Coverage
MatchState Coverage
Multibet PreMatch Coverage
Multibet InPlay Coverage
URLs
https://uat.public.coverage.api.geniussports.com
https://public.coverage.api.geniussports.com
Authentication
How does security work?
You must provide two headers in every API call:
Authorization
obtained by calling the Auth API with your Cognito user credentialsx-api-key
provided by Genius Sports
How do I get my IdToken for my Authorization
header?
This is only needed if you are setting up your Cognito user credentials for the first time!
First you must set your new password:
curl -H 'Content-Type: application/json' -X POST -d '{"user":"USERNAME","password":"PASSWORD", "newpass":"SET_YOUR_PASS"}' https://api.geniussports.com/Auth-v1/PROD/login
Then you must authenticate (valid for 1 hour)
curl -H 'Content-Type: application/json' -X POST -d '{"user":"USERNAME","password":"YOUR_NEW_PASS"}' https://api.geniussports.com/Auth-v1/PROD/login
This will result some different values. Most important is 'IdToken' - this is the one you want to use in your API call
Thirdly you must refresh the token - in the authentication JSON there is also a RefreshToken - you can use this to refresh your IdToken
curl -H 'Content-Type: application/json' -X POST -d '{"user":"USERNAME","refreshtoken":"YOUR_REFRESH_TOKEN"}' https://api.geniussports.com/Auth-v1/PROD/refresh
This will also return an UPDATED IdToken - again to be used with API calls.
Use Cases
Get Coverage by fixtureId
Mandatory parameters
fixtureId
Genius Sports fixture Id
As Genius Sports Customer, I want to know if a fixture has Video Coverage.
Customers can query video coverage information for a specific fixture by providing the fixtureId, using the GET /coverage/fixture/{fixtureId}
endpoint.
Response example:
{
"fixtureId": 9889333,
"videoCoverages": [
{
"sourceFixtureId": "CFL_9889333",
"source": "GeniusLiveCoverage",
"isAvailable": true
}
],
"_links": {
"self": {
"href": "/coverage/fixtures/9889333"
}
}
}
Missing coverage response example:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "FixtureCoverage 9889333 not found"
}
],
"code": 404,
"message": "FixtureCoverage 9889333 not found"
}
}
As Genius Sports Customer, I want to know if a fixture has MatchState Coverage.
Customers can query MatchState coverage information for a specific fixture by providing the fixtureId, using the GET /coverage/matchstate/fixtures/{fixtureId}
endpoint.
Response example:
{
"fixtureId": 10235904,
"matchStateCoverages": [
{
"sourceFixtureId": "10235904",
"source": "GeniusSportsInPlay",
"isAvailable": true,
"metadata": {
"Origin": "Venue",
"Lineups": "True",
"Multisport": "false"
}
}
]
}
As Genius Sports Customer, I want to know if a fixture has Multibet PreMatch Coverage.
Customers can query Multibet PreMatch coverage information for a specific fixture by providing the fixtureId, using the GET /coverage/multibetprematch/fixture/{fixtureId}
endpoint.
Response example:
As Genius Sports Customer, I want to know if a fixture has Multibet InPlay Coverage.
Customers can query Multibet InPlay coverage information for a specific fixture by providing the fixtureId, using the GET /coverage/multibetinplay/fixture/{fixtureId}
endpoint.
Response example:
Get Coverage for a given sport and date range
Mandatory parameters
sportId
Genius Sports sport Id
from_time
Only fixtures starting after this date and time will be checked for video coverage availability
to_time
Only fixtures starting before this date and time will be checked for video coverage availability
As Genius Sports Customer, I want to know all fixture that have Video coverage for a specific sport and date range.
Customers can query information for all fixtures that have Video coverage for specific sport and date range, using the GET /coverage/sports/{sportId}/fixtures
endpoint.
Response example:
As Genius Sports Customer, I want to know all fixture that have MatchState coverage for a specific sport and date range.
Customers can query information for all fixtures that have MatchState coverage for specific sport and date range, using the GET /coverage/matchstate/sports/{sportId}/fixtures
endpoint.
Response example:
As Genius Sports Customer, I want to know all fixture that have Multibet PreMatch coverage for a specific sport and date range.
Customers can query information for all fixtures that have Multibet PreMatch coverage for specific sport and date range, using the GET /coverage/multibetprematch/sports/{sportId}/fixtures
endpoint.
Response example:
As Genius Sports Customer, I want to know all fixture that have Multibet InPlay coverage for a specific sport and date range.
Customers can query information for all fixtures that have Multibet InPlay coverage for specific sport and date range, using the GET /coverage/multibetinplay/sports/{sportId}/fixtures
endpoint.
Response example:
Swagger
For further technical details and examples please refer to the swagger below.