Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Docs

Returns detailed game stats at the doubles team or player level

Syntax

https://api.sportradar.com/tennis/{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

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

ParameterDescription
event_idEvent id

Example: event_id=point
formatFormat returned

json, xml

Example: format=json
sport_event_idSport Event id

Example: sport_event_id=sr:sport_event:27496678
season_idSeason id

Example: season_id=sr:season:81932
competition_idCompetition id

Example: competition_id=sr:competition:16126


Code Samples

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

url = URI("https://api.sportradar.com/tennis/trial/v3/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/tennis/trial/v3/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 GET 'api.sportradar.com/tennis/trial/v3/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/tennis/trial/v3/stream/statistics/subscribe?api_key={your_api_key}&format=json&competition_id=sr:competition:16126")

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/tennis/trial/v3/stream/statistics/subscribe",
    params = {'api_key': 'your_api_key', 'format': 'json', 'competition_id': 'sr:competition:16126'},
    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/tennis/trial/v3/stream/statistics/subscribe?api_key={your_api_key}&format=json&competition_id=sr:competition:16126'


Response Sample

The above commands return json like this.



Data Points

Metadata:
AttributeParent ElementTypeDescription
channelmetadataStringSport of the stream connection
ex. tennis
competition_idmetadataStringUnique Id of a competition
ex. sr:competition:34630
event_idmetadataStringDescription of a push timeline event
ex. point or period_score
formatmetadataStringFormat type of the response
json, xml
season_idmetadataStringUnique Id of a season
ex. sr:season:121215
sport_event_idmetadataStringUnique Id of a sport event
ex. sr:sport_event_id:51950313
sport_idmetadataStringUnique Id of a sport
ex. sr:sport:5
fromheartbeatIntegerUnix timestamp of the beginning of a heartbeat message
ex. 1722267631
toheartbeatIntegerUnix timestamp of the end of a heartbeat message
ex. 1722267636
intervalheartbeatIntegerInterval of a heartbeat message in seconds
typeheartbeatStringType of heartbeat message
ex. events, statistics
packageheartbeatStringPackage of a heartbeat message
ex. tennis-v3
Competitor:

Competitors can be a player, a doubles team, or a national team

AttributeParent ElementTypeDescription
abbreviationstatistics - competitorsStringAbbreviation for a competitor name
ex. PAU (Tommy Paul) or G/M ('Glasspool L / Middelkoop M' doubles team)
idstatistics - competitorsStringUnique ID for a competitor
ex. sr:competitor:138546
namestatistics - competitorsStringName for a competitor
ex. Paul, Tommy or Glasspool L / Middelkoop M (doubles team)
qualifierstatistics - competitorsStringDesignation of a competitor for a match
home, away
Game State:
AttributeParent ElementTypeDescription
advantagesport_event_status - game_stateStringSignifies the competitor with the advantage in the game
home, away
away_scoresport_event_status - game_stateIntegerScore for the away competitor in a game
ex. 0, 15, 30, 40
home_scoresport_event_status - game_stateIntegerScore for the home competitor in a game
ex. 0, 15, 30, 40
last_point_resultsport_event_status - game_stateStringResult of the last point in a game
server_winner, receiver_winner, ace, double_fault
point_typesport_event_status - game_stateStringType of point scored
game, break, set, match
servingsport_event_status - game_stateStringSignifies the competitor currently serving
home, away
tie_breaksport_event_status - game_stateBooleanSignifies a match is in a tie break when true
Sport Event Status:
AttributeParent ElementTypeDescription
away_scoresport_event_statusIntegerTotal score for the away competitor in a match
decided_by_fedsport_event_statusBooleanSignifies a match result was decided by the federation when true. For example, incomplete due to crowd disruption
home_scoresport_event_statusIntegerTotal score for the home competitor in a match
match_statussport_event_statusStringStatus within a match (sport event). Provides more detail on the state of a match when live than status
ex. not_started, interrupted, 1st_set, walkover

See our FAQ for a complete list of statuses and their definitions.
scount_abandonedsport_event_statusBooleanSignifies a match was abandoned by a scout when true
statussport_event_statusStringStatus of a sport event
ex. not_started, live, ended, closed

See our FAQ for a complete list of statuses and their definitions.
winner_idsport_event_statusStringUnique ID of the match winner
ex. sr:competitor:138546
winning_reasonsport_event_statusStringWinning reason description for a match
ex. walkover
Period Scores:
AttributeParent ElementTypeDescription
away_scoresport_event_status - period_scoresIntegerAway competitor set score
away_tiebreak_scoresport_event_status - period_scoresIntegerAway competitor tiebreak set score
home_scoresport_event_status - period_scoresIntegerHome competitor set score
home_tiebreak_scoresport_event_status - period_scoresIntegerHome competitor tiebreak set score
numbersport_event_status - period_scoresIntegerSet number
typesport_event_status - period_scoresStringPeriod type
ex. set
Match Stats (Competitor):

See our Statistics FAQ Section for detailed descriptions of our tennis statistics

AttributeParent ElementTypeDescription
acescompetitors - statisticsIntegerNumber of aces for a competitor in a match
backhand_errorscompetitors - statisticsIntegerNumber of backhand errors for a competitor in a match
backhand_unforced_errorscompetitors - statisticsIntegerNumber of backhand unforced errors for a competitor in a match
backhand_winnerscompetitors - statisticsIntegerNumber of backhand winners for a competitor in a match
breakpoints_woncompetitors - statisticsIntegerNumber of breakpoints won for a competitor in a match
double_faultscompetitors - statisticsIntegerNumber of double faults for a competitor in a match
drop_shot_unforced_errorscompetitors - statisticsIntegerNumber of drop shot unforced errors for a competitor in a match
drop_shot_winnerscompetitors - statisticsIntegerNumber of drop shot winners for a competitor in a match
first_serve_points_woncompetitors - statisticsIntegerNumber of first serve points won for a competitor in a match
first_serve_successfulcompetitors - statisticsIntegerNumber of successful first serves for a competitor in a match
forehand_errorscompetitors - statisticsIntegerNumber of forehand errors for a competitor in a match
forehand_unforced_errorscompetitors - statisticsIntegerNumber of forehand unforced errors for a competitor in a match
forehand_winnerscompetitors - statisticsIntegerNumber of forehand winners for a competitor in a match
games_woncompetitors - statisticsIntegerNumber of games won for a competitor in a match
groundstroke_errorscompetitors - statisticsIntegerNumber of groundstroke errors for a competitor in a match
groundstroke_unforced_errorscompetitors - statisticsIntegerNumber of groundstroke unforced errors for a competitor in a match
groundstroke_winnerscompetitors - statisticsIntegerNumber of groundstroke winners for a competitor in a match
lob_unforced_errorscompetitors - statisticsIntegerNumber of lob unforced errors for a competitor in a match
lob_winnerscompetitors - statisticsIntegerNumber of lob winners for a competitor in a match
max_games_in_a_rowcompetitors - statisticsIntegerLongest game win streak for a competitor in a match
max_points_in_a_rowcompetitors - statisticsIntegerLongest point win streak for a competitor in a match
overhead_stroke_errorscompetitors - statisticsIntegerNumber of overhead errors for a competitor in a match
overhead_stroke_unforced_errorscompetitors - statisticsIntegerNumber of overhead unforced errors for a competitor in a match
overhead_stroke_winnerscompetitors - statisticsIntegerNumber of overhead winners for a competitor in a match
points_woncompetitors - statisticsIntegerNumber of points won for a competitor in a match
points_won_from_last_10competitors - statisticsIntegerNumber of points won in the last 10 opportunities for a competitor in a match
return_errorscompetitors - statisticsIntegerNumber of return errors for a competitor in a match
return_winnerscompetitors - statisticsIntegerNumber of return winners for a competitor in a match
second_serve_points_woncompetitors - statisticsIntegerNumber of second serve points won for a competitor in a match
second_serve_successfulcompetitors - statisticsIntegerNumber of successful second serves for a competitor in a match
service_games_woncompetitors - statisticsIntegerNumber of service games won for a competitor in a match
service_points_lostcompetitors - statisticsIntegerNumber of service points lost for a competitor in a match
service_points_woncompetitors - statisticsIntegerNumber of service points won for a competitor in a match
tiebreaks_woncompetitors - statisticsIntegerNumber of tiebreaks won for a competitor in a match
total_breakpointscompetitors - statisticsIntegerNumber of total breakpoints for a competitor in a match
volley_unforced_errorscompetitors - statisticsIntegerNumber of volley unforced errors for a competitor in a match
volley_winnerscompetitors - statisticsIntegerNumber of volley winners for a competitor in a match