Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Insights Push Feeds

Intro to Push

Insights Push feeds deliver real-time JSON payloads over a persistent HTTP connection, reducing the need for repeated REST API calls.

These feeds use a publish/subscribe model:

  • You subscribe via a single HTTP request
  • The server continuously streams updates as they occur
  • A heartbeat message is sent every 5 seconds when no new data is available

Push feeds mirror the structure of their corresponding REST endpoints, making them easy to integrate into existing workflows.


Quick Start

  1. Open a streaming HTTP connection to the endpoint
  2. Provide your API key
  3. Optionally filter results using query parameters
  4. Continuously process incoming JSON messages

Example

curl -N \
  --request GET \
  --url "https://api.sportradar.com/insights/production/stream/nba/sportradar/subscribe?insight_type=scoring" \
  --header "x-api-key: YOUR_API_KEY"

How It Works

  • The connection remains open and streams data continuously
  • Updates are sent as soon as new data is available
  • When idle, heartbeat messages are sent every 5 seconds
  • No historical data is replayed upon reconnect

Technical Requirements

To accept data from our Push feeds, ensure that your application can:

  • Can follow a HTTP redirect or use the location provided in the feeds header within one minute of your initial request.
  • Can accept HTTP data transfer encoded as chunked.

Access

Each Insights Push feed is available based on your subscription (e.g., NBA, NFL, MLB).

Refer to your Marketplace account to confirm access.


Disconnections

Our Push service does not provide a "stateful session", there is no memory of what data has been sent previously.

Should you cease to receive heartbeat messages, or are disconnected from the Push service for any reason, re-connect using your same initial request.


Endpoint

https://api.sportradar.com/insights/production/stream/{league}/{provider}/subscribe

Path Parameters

ParameterDescription
leagueLeague for Insights

mlb, nba, ncaafb, ncaamb, nfl, nhl
providerInsight provider

sportradar (Scoring, Milestones, Leaderboards, Highs)
fansure (Player Betting Trends, Team Betting Trends)
tallysight (Expert Picks)
fairplay (Lineup Changes, Predictions)

Optional Query Parameters

ParameterDescription
insight_typeFilter by insight type (scoring, milestones, leaderboards, highs, expert_picks, player_betting_trends, team_betting_trends, lineup_changes, predictions)
localeLanguage (en, fr, de, it, es)

Note: Non-English translations are currently only available for scoring insights
subject_typeFilter scope: game, team, or player
game_idFilter by game. Accepts a Sportradar ID (sr:match:...) or UUID
player_idFilter by player. Accepts a Sportradar ID (sr:player:...) or UUID
team_idFilter by team. Accepts a Sportradar ID (sr:competitor:...) or UUID

Note: IDs correspond to values returned in the response payload fields subject_id, subject_sr_id, and subject_us_id. Any of these identifiers may be used interchangeably when filtering requests.


Request Samples

Basic Subscription (NBA Scoring)

curl -N \
  --request GET \
  --url "https://api.sportradar.com/insights/production/stream/nba/sportradar/subscribe?insight_type=scoring" \
  --header "x-api-key: YOUR_API_KEY"

Node.js (Streaming with Axios)

import axios from "axios";

const url = "https://api.sportradar.com/insights/production/stream/nba/sportradar/subscribe";

const response = await axios({
  method: "get",
  url,
  params: {
    insight_type: "scoring"
  },
  headers: {
    "x-api-key": process.env.API_KEY
  },
  responseType: "stream"
});

response.data.on("data", (chunk) => {
  console.log(chunk.toString());
});

Filter by Game + Insight Type

curl -N \
  --request GET \
  --url "https://api.sportradar.com/insights/production/stream/nba/sportradar/subscribe?subject_type=game&game_id=sr:match:45785631&insight_type=milestones" \
  --header "x-api-key: YOUR_API_KEY"

Betting Trends (FanSure Provider)

curl -N \
  --request GET \
  --url "https://api.sportradar.com/insights/production/stream/nfl/fansure/subscribe?insight_type=player_betting_trends" \
  --header "x-api-key: YOUR_API_KEY"

Response Samples

Response samples will be added soon.


Notes

Push feeds remain open until explicitly closed.
Ensure your client properly handles long-lived HTTP connections and reconnection logic.
Make note of your subscriptions to ensure access to the provider and league.