Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Push Statistics

Soccer Extended Push Statistics provides real-time team and player match-level statistics for all live matches.

Syntax

https://api.sportradar.com/soccer-extended/{access_level}/{version}/stream/statistics/subscribe?api_key={your_api_key}

Parameters

ParameterDescription
access_levelDefines the access level of your API key

production, trial
versionVersion number of the API

v4
your_api_keyYour API key

Optional Query String Parameters

By default, a Push feed will provide all data available for all in progress games. If needed, you can filter the data returned by including query strings.

Optional query string parameters must be added after your API key with an ampersand (&). If you are filtering for more than one result, separate the results with a comma (,) and no spaces.

URL ParametersDescription
competition_idCompetition id

Example: competition_id=sr:competition:204
event_idEvent type

Example: event_id=free_kick
formatFormat type

Example: format=json
season_idSeason id

Example: season_id=sr:season:50039
sport_event_idSport event id

Example: sport_event_id=sr:sport_event_id:13644241


Code Samples

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe?api_key={your_api_key}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests
import json

r = requests.get("https://api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe",
    params = {'api_key': 'your_api_key'},
    allow_redirects=False)

redirect_url = r.headers['Location']
r = requests.get(redirect_url, stream=True)

for line in r.iter_lines():
    # filter out keep-alive new lines
    if line:
        decoded_line = line.decode('utf-8')
        print(json.loads(decoded_line))
curl -L "https://api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe?api_key={your_api_key}"

Samples with Query String Params

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:match:13468929")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests
import json

r = requests.get("https://api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe",
    params = {'api_key': 'your_api_key', 'format': 'json', 'sr:match:13468929': 'test_this_thing'},
    allow_redirects=False)

redirect_url = r.headers['Location']
r = requests.get(redirect_url, stream=True)

for line in r.iter_lines():
    # filter out keep-alive new lines
    if line:
        decoded_line = line.decode('utf-8')
        print(json.loads(decoded_line))
curl -L GET 'api.sportradar.com/soccer-extended/trial/v4/stream/statistics/subscribe?api_key={your_api_key}&format=json&sport_event_id=sr:match:13468929'


Response Sample

The above commands return json like this.



Data Points

Metadata:
AttributeParent ElementTypeDescription
channelmetadataStringSport of the stream connection
ex. soccer-extended
competition_idmetadataStringUnique Id of a competition
ex. sr:competition:23
event_idmetadataStringDescription of a push statistic event
match_started, match_ended, period_start, period_score, score_change, yellow_card, yellow_red_card, red_card, substitution, injury_time_shown, free_kick, goal_kick, throw_in, offside, corner_kick, shot_on_target, shot_off_target, save, injury, penalty_kick, player_back_from_injury, penalty_missed, penalty_shootout, decision_to_var, decision_to_var_over, possible_decision_to_var, canceled_decision_to_var, break_start, injury_return, video_assistant_referee, video_assistant_referee_over, penalty_awarded, shot_saved, possible_goal
formatmetadataStringFormat type of the response
json, xml
season_idmetadataStringUnique Id of a season
ex. sr:season:106499
sport_event_idmetadataStringUnique Id of a sport event
ex. sr:sport_event_id:42134765
sport_idmetadataStringUnique Id of a sport
ex. sr:sport:1
fromheartbeatIntegerUnix timestamp of the beginning of a heartbeat message
ex. 1713804799
toheartbeatIntegerUnix timestamp of the end of a heartbeat message
ex. 1713804804
intervalheartbeatIntegerInterval of a heartbeat message in seconds
typeheartbeatStringType of heartbeat message
ex. events, statistics
packageheartbeatStringPackage of a heartbeat message
ex. soccer-extended-v4
Sport Event Status:
AttributeParent ElementTypeDescription
aggregate_away_scoresport_event_statusIntegerAggregate score (of multiple sport events) for the away team
aggregate_home_scoresport_event_statusIntegerAggregate score (of multiple sport events) for the home team
aggregate_winner_idsport_event_statusStringUnique ID of the aggregate score winner
ex. sr:competitor:44
away_normaltime_scoresport_event_statusIntegerScore for the away team in normal time
away_overtime_scoresport_event_statusIntegerScore for the away team in overtime
away_scoresport_event_statusIntegerTotal score for the away team in the match
home_normaltime_scoresport_event_statusIntegerScore for the home team in normal time
home_overtime_scoresport_event_statusIntegerScore for the home team in overtime
home_scoresport_event_statusIntegerTotal score for the home team in the match
match_statussport_event_statusStringStatus within a match. Provides more detail on the state of a match when live than status
ex. not_started, 2nd_half, ended, awaiting_penalties

See our FAQ for a complete list of statuses and their definitions.
match_tiesport_event_statusBooleanSignifies a match ended in a tie when true
scount_abandonedsport_event_statusBooleanSignifies a match was abandoned by a scout when true
statussport_event_statusStringStatus of a match
ex. not_started, 2nd_half, ended, awaiting_penalties

See our FAQ for a complete list of statuses and their definitions.
winner_idsport_event_statusStringUnique ID of the match winner
ex. sr:competitor:44
Ball Location:

Visit our FAQ for additional information on ball location data.

AttributeParent ElementTypeDescription
ordersport_event_status - ball_locations - ball_locationIntegerSequential order of a ball location event. The most recent location is 4 and the oldest location is 1.
qualifiersport_event_status - ball_locations - ball_locationStringDesignation of a competitor for a ball location entry
home, away
xsport_event_status - ball_locations - ball_locationStringHorizontal X coordinate of the pitch. x is a number between 0 and 100. The reference point 0 is at the home team’s goal.
ysport_event_status - ball_locations - ball_locationStringVertical Y coordinate of the pitch. y is a number between 0 and 100. The reference point 0 is on the top of the pitch where the home team’s goal is on the left hand side.
Sport Event Situation:
AttributeParent ElementTypeDescription
playedsport_event_status - clockStringMatch clock time in minutes
90:00
stoppage_time_playedsport_event_status - clockStringStoppage time played in minutes
5:49
stoppage_time_announcedsport_event_status - clockStringStoppage time announced in minutes
5:00
statussport_event_status - match_situationStringCurrent situation status of a match
safe, dangerous, attack
qualifiersport_event_status - match_situationStringDefines the team in the current situation status
home, away
updated_atsport_event_status - match_situationDate-TimeTimestamp of the most recent match situation update
ex. 2024-04-14T14:57:28+00:00
away_scoresport_event_status - period_scoresIntegerAway team period score
home_scoresport_event_status - period_scoresIntegerHome team period score
numbersport_event_status - period_scoresIntegerPeriod number
typesport_event_status - period_scoresStringPeriod type
regular_period, overtime, penalties, pause, awaiting_extra, extra_time_halftime, interrupted
Competitor:
AttributeParent ElementTypeDescription
abbreviationstatistics - competitorsStringAbbreviation for a competitor name
ex. LIV (Liverpool FC)
age_groupstatistics - competitorsStringAge group of a competitor, when applicable
ex. U23
countrystatistics - competitorsStringCountry of a competitor
ex. England
country_codestatistics - competitorsStringCountry code of a competitor
ex. ENG (England)
genderstatistics - competitorsStringGender for a competitor
male, female
idstatistics - competitorsStringUnique ID for a competitor
ex. sr:competitor:44 (Liverpool FC)
namestatistics - competitorsStringName for a competitor
ex. Liverpool FC
qualifierstatistics - competitorsStringDesignation of a competitor for a sport event
home, away
Match Stats (Team):

See our Extended Statistics FAQ for in-depth definitions of key data points

AttributeParent ElementTypeDescription
ball_posessioncompetitors - statisticsIntegerPercentage of team ball possession for a match.
ex. 43
cards_givencompetitors - statisticsIntegerTotal cards given to a team in a match
chances_createdcompetitors - statisticsIntegerTotal chances created for a team in a match
clearancescompetitors - statisticsIntegerTotal clearances for a team in a match
corner_kickscompetitors - statisticsIntegerTotal team corner kicks for a match
crosses_successfulcompetitors - statisticsIntegerTotal successful crosses for a team in a match
crosses_totalcompetitors - statisticsIntegerTotal crosses for a team in a match
crosses_unsuccessfulcompetitors - statisticsIntegerTotal unsuccessful crosses for a team in a match
defensive_blockscompetitors - statisticsIntegerTotal team defensive blocks for a match
diving_savescompetitors - statisticsIntegerTotal team diving saves for a match
foulscompetitors - statisticsIntegerTotal number of fouls awarded against a team (including those which draw cards)
free_kickscompetitors - statisticsIntegerTeam free kicks for a match. In accordance with the rules, a free kick stat counted for the team who executes a free kick. Direct or indirect free kicks are all counted as free kicks.
goal_kickscompetitors - statisticsIntegerTeam goal kicks for a match. Total number of kicks awarded to the team as a result of the ball traveling out of bounds over the goal line of the defending team.
injuriescompetitors - statisticsIntegerTotal team injuries for a match
interceptionscompetitors - statisticsIntegerTotal team interceptions for a match
long_passes_successfulcompetitors - statisticsIntegerTotal successful long passes for a team in a match
long_passes_totalcompetitors - statisticsIntegerTotal long passes for a team in a match
long_passes_unsuccessfulcompetitors - statisticsIntegerTotal unsuccessful long passes for a team in a match
offsidescompetitors - statisticsIntegerTotal team offside infringements for a match
passes_successfulcompetitors - statisticsIntegerTotal successful passes for a team in a match
passes_totalcompetitors - statisticsIntegerTotal passes for a team in a match
passes_unsuccessfulcompetitors - statisticsIntegerTotal unsuccessful passes for a team in a match
penalties_missedcompetitors - statisticsIntegerTotal team penalty shots missed for a match
red_cardscompetitors - statisticsIntegerTotal team red cards for a match
shots_blockedcompetitors - statisticsIntegerTotal team shots blocked for a match
shots_off_targetcompetitors - statisticsIntegerTotal team off-target shots for a match
shots_on_targetcompetitors - statisticsIntegerTotal team on-target shots for a match
shots_savedcompetitors - statisticsIntegerTotal number of goal keeper saves attributed to a team for a match
shots_totalcompetitors - statisticsIntegerTotal number of shots attributed to a team for a match
substitutionscompetitors - statisticsIntegerTotal number player subsitutions in a match
tackles_successfulcompetitors - statisticsIntegerTotal successful tackles for a team in a match
tackles_totalcompetitors - statisticsIntegerTotal tackles for a team in a match
tackles_unsuccessfulcompetitors - statisticsIntegerTotal unsuccessful tackles for a team in a match
throw_inscompetitors - statisticsIntegerTotal number of throw-in events for a team during a match
was_fouledcompetitors - statisticsIntegerNumber of fouls against a team in a match
yellow_cardscompetitors - statisticsIntegerTotal team yellow cards for a match
yellow_red_cardscompetitors - statisticsIntegerTotal team red cards for a match which resulted from two yellow cards
Player:
AttributeParent ElementTypeDescription
idstatistics - competitor - playersStringUnique ID of a player
ex. sr:player:159665
namestatistics - competitor - playersStringName of a player
ex. Salah, Mohamed
Match Stats (Player):

See our Extended Statistics FAQ for in-depth definitions of key data points

AttributeParent ElementTypeDescription
assistsplayers - statisticsIntegerPlayer assists for a match
chances_createdplayers - statisticsIntegerPlayer chances created for a match
clearancesplayers - statisticsIntegerPlayer clearances for a match
corner_kicksplayers - statisticsIntegerPlayer corner kicks for a match
crosses_successfulplayers - statisticsIntegerPlayer successful crosses for a match
crosses_totalplayers - statisticsIntegerPlayer total crosses for a match
defensive_blocksplayers - statisticsIntegerPlayer defensive blocks for a match
diving_savesplayers - statisticsIntegerPlayer diving saves for a match
dribbles_completedplayers - statisticsIntegerPlayer dribbles completed for a match
fouls_committedplayers - statisticsIntegerPlayer fouls committed for a match
goals_by_headplayers - statisticsIntegerPlayer goals by head for a match
goals_by_penaltyplayers - statisticsIntegerPlayer goals by penalty for a match
goals_concededplayers - statisticsIntegerPlayer goals conceded for a match
goals_scoredplayers - statisticsIntegerPlayer goals scored for a match
interceptionsplayers - statisticsIntegerPlayer interceptions for a match
long_passes_successfulplayers - statisticsIntegerPlayer successful long passes for a match
long_passes_totalplayers - statisticsIntegerPlayer total long passes for a match
long_passes_unsuccessfulplayers - statisticsIntegerPlayer unsuccessful long passes for a match
loss_of_possessionplayers - statisticsIntegerPlayer possession losses for a match
minutes_playedplayers - statisticsIntegerPlayer minutes played for a match
offsidesplayers - statisticsIntegerPlayer offsides for a match
own_goalsplayers - statisticsIntegerPlayer own goals for a match
passes_successfulplayers - statisticsIntegerPlayer successful passes for a match
passes_totalplayers - statisticsIntegerPlayer total passes for a match
passes_unsuccessfulplayers - statisticsIntegerPlayer unsuccessful passes for a match
penalties_facedplayers - statisticsIntegerPlayer penalty shots faced for a match
penalties_missedplayers - statisticsIntegerPlayer penalty shots missed for a match
penalties_savedplayers - statisticsIntegerPlayer penalty shots saved for a match
red_cardsplayers - statisticsIntegerPlayer red cards for a match
shots_blockedplayers - statisticsIntegerPlayer shots blocked for a match
shots_faced_savedplayers - statisticsIntegerPlayer shots saved for a match
shots_faced_totalplayers - statisticsIntegerPlayer total shots faced for a match
shots_off_targetplayers - statisticsIntegerPlayer shots off target for a match
shots_on_targetplayers - statisticsIntegerPlayer shots on target for a match
substituted_inplayers - statisticsIntegerSignifies a player was substituted in during a match when 1
substituted_outplayers - statisticsIntegerSignifies a player was substituted out during a match when 1
tackles_successfulplayers - statisticsIntegerPlayer successful tackles for a match
tackles_totalplayers - statisticsIntegerPlayer total tackles for a match
was_fouledplayers - statisticsIntegerNumber of fouls against a player in a match
yellow_cardsplayers - statisticsIntegerPlayer yellow cards for a match
yellow_red_cardsplayers - statisticsIntegerPlayer red cards for a match resulting from two yellow cards