Coverage API

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 credentials

  • x-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!

  1. 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

  2. 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

  3. 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.

Swagger UI PROD

Swagger UI UAT