Skip to content

Tennis data reference

← All sports

Generated from GET /v2/sports/4. Not hand-maintained - if the API adds a status or renames a statistic, this page follows on the next build.

Sport id
4
Participants
2
Match clock
no
Incident positions
no

Statuses 20

Every value event.status_id can take for this sport. Map onto this list rather than parsing status_type: ids are stable, labels are localized, and postponed matches keep status_type: scheduled.

idNameShortTypeNotes
1Not startedSched.scheduledclock stoppedset by incident 427
6Start delayedDelay.scheduledclock stoppedset by incident 438
149Delayed by rainDelayedscheduled
5PostponedPost.scheduledclock stoppedset by incident 440TRAP: status_type is scheduled, exactly like a normal upcoming match. A postponed match is indistinguishable from a scheduled one unless you look at status_id. Never branch only on status_type.
1341st set1st setliveclock running
155Break after 1st set1st set breaklivebreakclock stopped
652nd set2nd setliveclock running
156Break after 2nd set2nd set breaklivebreakclock stopped
1353rd set3rd setliveclock running
157Break after 3rd set3rd set breaklivebreakclock stopped
1364th set4th setliveclock running
158Break after 4th set4th set breaklivebreakclock stopped
1375th set5th setliveclock running
2InterruptedInterr.interruptedclock stoppedset by incident 441Play stopped and may resume. Incident 1001 (Match resumed) brings it back. Distinct from Abandoned (7), which may never resume.
7AbandonedAbd.interruptedclock stoppedset by incident 442Play stopped and may never resume. Same status_type as Interrupted (2), so tell them apart by status_id.
11FinishedFin.finishedclock stoppedset by incident 437One of FIVE terminal statuses (11, 12, 13, 14, 140). Treat every status_type: finished as terminal - checking for 11 alone misses matches decided in extra time, on penalties or in overtime.
12Finished awarded winAWfinishedclock stoppedset by incident 436Walkover: the result was awarded, not played out. Statistics and the timeline may be empty or not reflect play.
76RetiredRet.finished
3CancelledCanc.cancelledclock stoppedset by incident 439
152To finishTo fin.scheduledclock stoppedset by incident 451TRAP: status_type is scheduled, but the match already started and was stopped - it is waiting to be finished on another date. Do not present it as an upcoming fixture.

Results 21

Entries that can appear in participants[].results[], keyed by id. There is no score field - you select the result you need.

idNameCodeTypeData type
411Winnerwinnerteambinary
412Progressprogressteambinary
2Resultresultteaminteger
43First setfirst_setteaminteger
43First setfirst_setpersoninteger
44Second setsecond_setteaminteger
44Second setsecond_setpersoninteger
45Third setthird_setteaminteger
45Third setthird_setpersoninteger
46Fourth setfourth_setteaminteger
46Fourth setfourth_setpersoninteger
47Fifth setfifth_setteaminteger
47Fifth setfifth_setpersoninteger
115Current game pointscurrent_game_pointsteaminteger
627Supertiebreak pointssupertiebreak_pointsteaminteger
627Supertiebreak pointssupertiebreak_pointspersoninteger
116First set tiebreak pointstie_break_1st_set_ptsteaminteger
117Second set tiebreak pointstie_break_2nd_set_ptsteaminteger
118Third set tiebreak pointstie_break_3rd_set_ptsteaminteger
119Fourth set tiebreak pointstie_break_4th_set_ptsteaminteger
120Fifth set tiebreak pointstie_break_5th_set_ptsteaminteger

Event details 13

Per-match metadata in the event's details, with the input type and allowed values.

idNameCodeInputData type
6Surfacesurfaceselect-
7Sets numbersets_numberselect-
54Will there be deuces?will_there_be_deucesselect-
55Will there be advantage set?will_there_be_advantage_setselect-
166Possible supertiebreakpossible_supertiebreakselect-
57IPTL Format?iptl_formatselect-
8Weather conditionsweather_condition_idselect-
1First set start datefirst_set_start_datedatetime-
2Second set start datesecond_set_start_datedatetime-
3Third set start datethird_set_start_datedatetime-
4Fourth set start datefourth_set_start_datedatetime-
5Fifth set start datefifth_set_start_datedatetime-
167Super tiebreak start datesuper_tiebreak_start_datedatetime-

Incidents 108

Incident types that can appear in this sport's events_incidents. category: emergency marks operational notices, not match events - never render them on a timeline.

idNameCodeTypeTraderCategoryNotes
239In progressin-progresseventnostandard
2846The match will not be coveredthe-match-will-not-be-coveredeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match will not be covered at all. The attribute gives the reason. Nothing further will arrive.
Other: Scout's technical issues, Change of venue, Change of match date, Problems with TV transmission source
224Not startednot-startedeventyesstandard
2847Problems with the source of the broadcastproblems-with-the-source-of-the-broadcaseventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The broadcast source has a problem. Paired with 2848 when it is solved.
2738Match about to startmatch-about-to-starteventyesstandard
2848Problem with the source of the broadcast has been solvedproblem-with-the-source-of-the-broadcasteventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The broadcast source problem is solved.
237Start delayedstart-delayedeventyesstandard
2849Change of coverage from venue to TVchange-of-coverage-from-venue-to-tveventyesemergencyemergencyOperational notice, not a match event - category: emergency. It tells you the coverage SOURCE changed, which usually changes latency and can change how complete the statistics are. Never render it on a timeline. Before kick-off (group: prematch): moved from venue to TV.
90Delayed by raindelayed-by-raineventyesstandard
2850Change of coverage from TV to venuechange-of-coverage-from-tv-to-venueeventyesemergencyemergencyOperational notice, not a match event - category: emergency. It tells you the coverage SOURCE changed, which usually changes latency and can change how complete the statistics are. Never render it on a timeline. Before kick-off (group: prematch): moved from TV to venue.
2215Warm-upwarm-upeventnostandard
2851Change of coverage latencychange-of-coverage-latencyeventyesemergencyemergencyOperational notice, not a match event - category: emergency. It tells you the coverage SOURCE changed, which usually changes latency and can change how complete the statistics are. Never render it on a timeline. Latency of the coverage changed. Relevant if you gate markets on feed delay.
Other: from 3-6 to 7-15, from 7-15 to 3-6
2281st set started1st-set-startedeventyesstandard
2852Scouting coverage can start with a delay ofscouting-coverage-can-start-with-a-delayeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Scouting coverage will start late. The attribute gives the size (under 3, 3-5 or 5-10 minutes).
Other: < 3min, 3-5 min, 5-10 min
2292nd set started2nd-set-startedeventyesstandard
2853Expected delay in the start of the matchexpected-delay-in-the-start-of-the-matcheventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match will start late. The attribute gives the reason - a team arriving late, problems in the stands and so on.
Other: Delayed arrival of a team, Problems in the stands, Referee problems, Infrastructure problems, Weather conditions
2854Team line-ups will not be availableteam-line-ups-will-not-be-availableeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Line-ups will not be available for this match. Do not wait for lineups[] to fill.
2303rd set started3rd-set-startedeventyesstandard
2855Source of the coverage is delayedsource-of-the-coverage-is-delayedeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The coverage source is delayed. The attribute gives the size of the delay (about 5 to 20 seconds).
Other: ~5sec, ~10sec, ~15sec, ~20sec, ~25sec, ~30sec, >30sec
2484th set started4th-set-startedeventyesstandard
2856The current part of the game has started with a delaythe-current-part-of-the-game-has-startedeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The current period started late.
2315th set started5th-set-startedeventyesstandard
2857Verification of result in progressverification-of-result-in-progresseventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
2210Break afterbreak-aftereventyesstandard
2858Verification of result completed and correctverification-of-result-completed-and-coreventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of the result finished. Values are confirmed.
2211Break after 1st setbreak-after-1st-seteventyesstandard
2859Verification of key statistics is in progressverification-of-key-statistics-is-in-proeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
2212Break after 2nd setbreak-after-2nd-seteventyesstandard
2860Verification of key statistics completed and correctverification-of-key-statistics-completedeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of key statistics finished. Values are confirmed.
2213Break after 3rd setbreak-after-3rd-seteventyesstandard
2861Verification of game clock is in progressverification-of-game-clock-is-in-progreseventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
2214Break after 4th setbreak-after-4th-seteventyesstandard
2862Verification of game clock completed and correctverification-of-game-clock-completed-andeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of the game clock finished. Values are confirmed.
212Tie breaktie-breakeventyesstandard
2863Match coverage interrupted due to technical issuesmatch-coverage-interrupted-due-to-technieventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Coverage stopped because of technical issues. 2864 or 2865 says whether it comes back.
22011st set tiebreak1st-set-tiebreakeventyesstandard
2864Match coverage will continuematch-coverage-will-continueeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Coverage will continue after the interruption.
22022nd set tiebreak2nd-set-tiebreakeventyesstandard
2865Match coverage will not continuematch-coverage-will-not-continueeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Coverage will NOT continue. Expect no further incidents for this match.
22033rd set tiebreak3rd-set-tiebreakeventyesstandard
2866The match is abandonedthe-match-is-abandonedeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match was abandoned. The attribute gives the reason.
Other: Problems in the stands, Referee problems, Infrastructure problems, Serious player injury, Weather conditions
22044th set tiebreak4th-set-tiebreakeventyesstandard
2867Waiting for official decision regarding match resumptionwaiting-for-official-decision-regarding-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Waiting for an official decision on whether the match resumes. 2868 or 2869 follows.
22055th set tiebreak5th-set-tiebreakeventyesstandard
2868Match will resume shortlymatch-will-resume-shortlyeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match resumes shortly.
2209Super tiebreak startedsuper-tiebreak-startedeventyesstandard
2869Match will not resumematch-will-not-resumeeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match will not resume.
2870Expected delay in the start of the next part of the gameexpected-delay-in-the-start-of-the-next-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The next period will start late. The attribute gives the reason.
Other: Problems in the stands, Referee problems, Infrastructure problems, Weather conditions
2871Change of coverage from venue to TVchange-of-coverage-from-venue-to-tv-liveeventyesemergencyemergencyOperational notice, not a match event - category: emergency. It tells you the coverage SOURCE changed, which usually changes latency and can change how complete the statistics are. Never render it on a timeline. During play (group: live): moved from venue to TV.
2872Change of coverage from TV to venuechange-of-coverage-from-tv-to-venue-liveeventyesemergencyemergencyOperational notice, not a match event - category: emergency. It tells you the coverage SOURCE changed, which usually changes latency and can change how complete the statistics are. Never render it on a timeline. During play (group: live): moved from TV to venue.
2873Change of coverage latencychange-of-coverage-latency-liveeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Coverage latency changed. The attribute gives the direction, for example from 3-6 to 7-15 seconds. Relevant if you gate markets on feed delay.
Other: from 3-6 to 7-15, from 7-15 to 3-6
233Finished regular timefinished-regular-timeeventyesstandard
2874Expected delay in the start of the match - safety reasonsexpected-delay-in-the-start-of-the-matcheventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The match will start late for safety reasons.
232Finished awarded winfinished-awarded-wineventyesstandard
2875Verification of key statistics is in progressverification-of-key-statistics-is-in-proeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
332Retiredretiredeventyesstandard
2876Verification of key statistics completed and correctverification-of-key-statistics-completedeventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of key statistics, after the match finished. Values are confirmed.
236Interruptedinterruptedeventyesstandard
2877Verification of player names for key incidents in progressverification-of-names-for-key-incidents-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
235Postponedpostponedeventyesstandard
2878Verification of player names for key incidents completed and correctverification-of-names-for-key-incidents-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of player names on key incidents finished. Values are confirmed.
238Abandonedabandonedeventyesstandard
2879Verification of result is in progressverification-of-result-is-in-progresseventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
234Cancelledcancelledeventyesstandard
2880Verification of result completed and correctverification-of-result-completed-and-coreventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. Verification of the result, after the match finished. Values are confirmed.
92To finishto-finisheventyesstandard
2881Problems with the low latency source of the coverageproblems-with-the-low-latency-source-of-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The low-latency source has a problem. Paired with 2882.
2882Problems with the low latency source of coverage has been solvedproblems-with-the-low-latency-source-of-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. The low-latency source problem is solved.
2883Player name verification is in progress - substitutionplayer-name-verification-is-in-progress-eventyesemergencyemergencyOperational notice, not a match event - category: emergency. Never render it on a timeline. A verification started. Whatever it covers may still change - hold off on caching it.
1000BetstartbetstarteventyesstandardmarketBetting markets may be activated.
Other: Master
1010BetstopbetstopeventyesstandardmarketAll betting markets are closed: a goal, penalty or red card looks likely, or the situation on the pitch is unclear.
Other: Master
1001Match resumedmatch-resumedeventyesstandardinformingUsed when an interrupted match resumes.
287Game breakgame-breakeventyesstandard
216Player change sideplayer-change-sideeventnostandard
2208New ballsnew-ballseventnostandard
2206Technical breaktechnical-breakeventnostandard
2207Roof closingroof-closingeventnostandard
1200Technical problemstechnical-problemseventyesstandardmarketTechnical problems during coverage. Closes all match markets automatically.
24900teamyesstandard
2401515teamyesstandard
2413030teamyesstandard
2424040teamyesstandard
243Aateamyesstandard
204First servicefirst-serviceteamyesstandard
244First service infirst-service-inteamyesstandard
205Service faultservice-faultteamyesstandard
206Net - first servicenet-first-serviceteamyesstandard
207Second servicesecond-serviceteamnostandard
208Double faultdouble-faultteamyesstandard
209Net - second servicenet-second-serviceteamnostandard
210Service aceservice-aceteamyesstandard
211Replay pointreplay-pointteamyesstandard
213Point tie breakpoint-tie-breakteamnostandard
214Game Wongame-wonteamyesstandard
215Set wonset-wonteamyesstandard
2216Set ballset-ballteamnostandard
2217Match ballmatch-ballteamyesstandard
218Challengechallengeteamyesstandard
221Challenge correctchallenge-correctteamyesstandard
331Challenge incorrectchallenge-incorrectteamyesstandard
222Medical timeoutmedical-timeoutteamyesstandard
2251Warningwarningteamnostandard
2252Penalty pointpenalty-pointteamyesstandard
2253Foot faultfoot-faultteamyesstandard
2254Racket destructionracket-destructionteamnostandard
2255Coach consultationcoach-consultationteamnostandard
2256Service sideservice-sideteamyesstandard
2737Player retiredplayer-retiredteamyesstandard

Standings types 10

Values for type_name on /v2/standings. Pick the one you need and match its columns by code, not by position.

idName
215ATP Doubles
254ATP Race
104ATP ranking
21Form table
99League standings
38Most popular results
46Streaks
223Test standing type
216WTA Doubles
105WTA ranking

Statistics 56

Split into team statistics (in participants[].stats) and person statistics (in sub_participants[].stats). Match by code, not by position.

Team 28

idNameCodeData type
48Acesservice_acesinteger
106Double faultsdouble_faultsinteger
105Service faultsservice_faultsinteger
1111st services infirst_services_ininteger
1301st serve in %first_services_in_percentageinteger
126First service pointsfirst_service_pointsinteger
1121st services attemptsfirst_services_attemptsinteger
1291st serve %first_services_percentageinteger
127Second service pointssecond_service_pointsinteger
1312nd services attemptssecond_services_attemptsinteger
1322nd serve %second_services_percentageinteger
107Break points wonbreak_pts_woninteger
114Break pointsbreak_ptsinteger
113Break points won percentagebreak_pts_won_percentageinteger
75Pointspointsinteger
109Challengeschallengesinteger
110Challenges correctchallenges_correctinteger
416Challenges incorrectchallenges_incorrectinteger
403Is server sideservicebinary_text
628Current service numberservice_nrselect
629Current service court sidecourt_sideselect
1680Break points savedbreak_pts_savedinteger
1681Service gamesservice_gamesinteger
16821st return points wonfirst_return_points_woninteger
16832nd return points wonsecond_return_points_woninteger
1684Service points won (%)service_points_won_pctdecimal
1685Return points won (%)return_points_won_pctdecimal
1686Total points won (%)total_points_won_pctdecimal

Person 28

idNameCodeData type
48Acesservice_acesinteger
106Double faultsdouble_faultsinteger
105Service faultsservice_faultsinteger
1111st services infirst_services_ininteger
1301st serve in %first_services_in_percentageinteger
126First service pointsfirst_service_pointsinteger
1121st services attemptsfirst_services_attemptsinteger
1291st serve %first_services_percentageinteger
127Second service pointssecond_service_pointsinteger
1312nd services attemptssecond_services_attemptsinteger
1322nd serve %second_services_percentageinteger
107Break points wonbreak_pts_woninteger
114Break pointsbreak_ptsinteger
113Break points won percentagebreak_pts_won_percentageinteger
75Pointspointsinteger
109Challengeschallengesinteger
110Challenges correctchallenges_correctinteger
416Challenges incorrectchallenges_incorrectinteger
403Is server sideservicebinary_text
628Current service numberservice_nrselect
629Current service court sidecourt_sideselect
1680Break points savedbreak_pts_savedinteger
1681Service gamesservice_gamesinteger
16821st return points wonfirst_return_points_woninteger
16832nd return points wonsecond_return_points_woninteger
1684Service points won (%)service_points_won_pctdecimal
1685Return points won (%)return_points_won_pctdecimal
1686Total points won (%)total_points_won_pctdecimal