Genius Sports Live Sports Data Integration

Introduction

Genius Sports distributes live data for sports events. For that purpose Genius Sports systems provide Pull and Push APIs.

Pull API for live sports data is exposed via collection of REST APIs called Match State Platform APIs and Statistics APIs. Their purpose is to provide endpoints for requesting information about current state of sports events by request/response model.

Push API is exposed via message delivery platform called Ably. Its purpose is to provide channels for retrieving information about current state of sports events by publish/subscribe message model.

Overview of Push and Pull APIs

Pull API is a collection of REST APIs that are used by consumers to request and receive latest state of the data for specific sport event via HTTP requests. Pull API’s purpose is not to provide live updates, Push API should be used for that purpose. Pull APIs are used for both bootstrapping latest state and retrieving historical data that is not accessible through Genius Sports Pull APIs. That is why Pull APIs apply certain limitations for the amount of HTTP requests that could be executed for specified interval of time.

Push API is used by consumers to automatically retrieve latest state of the data for specific sport event via publish/subscribe model. Once a consumer successfully subscribes for updates, they would receive every update of the data for the sport event that is generated after the point of their subscription. That is why both Pull and Push APIs should be used together. A consumer would usually retrieve latest state via Pull APIs and then subscribe to new updates via Push API.

Architecture diagram

Integration Environments

Genius Sports Pull and Push APIs provide two customer facing environments to integrate with:

  • UAT (User Acceptance Testing) environment is used by consumers in the development phase of their integration process. It is also used for testing purposes. Typically new features would first appear on the UAT environment and would be propagated to Production environment only after the quality and stability of the software version is additionally verified. UAT environment is stable but some deviations could be expected there as additional testing (including load tests) is performed there.

  • Production environment is where the live stable version of the software is available. All of the content that a consumer is licensed for is available on Production which may not be the case on UAT.