Tracking Live Tournaments
This integration scenario explains how to track live golf tournaments using the Sportradar Golf API. It focuses on retrieving real-time leaderboard updates, hole-by-hole scoring, tee times, and round status throughout an in-progress tournament.
This scenario is commonly used to:
- Display real-time tournament leaderboards
- Track hole-by-hole scoring as players progress through rounds
- Power live scoring tickers and tournament detail pages
- Drive notifications and alerts for round starts, cut lines, and finishes
Overview
Live tournament tracking is one of the most data-intensive integrations in the Golf API. During an in-progress tournament, leaderboard positions, scores, and round statuses change continuously across the field. The Golf API supports both RESTful and Push delivery methods to accommodate different integration needs.
RESTful feeds should remain the foundation of your integration, with Push feeds layered in for real-time updates and reduced API call volume.
Before You Start: Tournament Status and Update Behavior
The tournament-scoped feeds share a tiered cache that follows the tournament state: a 3-second TTL during live play, 60 seconds while an event is scheduled, 10 minutes once recently closed, and 4 hours after it has been closed for more than 7 days. Poll the RESTful feeds aggressively during live play, then step down once play concludes; the per-feed values are in Update Frequencies.
Tournaments and rounds progress through their own status lifecycles. See our Tournament Status Workflow page for a full breakdown of valid statuses and how they transition.
This guide assumes stroke play (event_type: "stroke"). Cup, team, and match events return team rosters and match structures instead of a single player leaderboard: see Monitoring Team Events for those formats, and the event-type table in Fundamentals.
Best PracticeUse RESTful feeds as your foundation for storing and recovering live tournament data, and layer in Push feeds for real-time updates with reduced API call volume.
In the event of a Push disconnection, fall back to Tournament Leaderboard and Scorecards Per Round to recover any missed data.
Relevant Feeds
The following feeds are used when tracking live tournaments:
| Feed | Purpose |
|---|---|
| Tournament Schedule | Discover tournament IDs and start dates |
| Tournament Summary | Retrieve tournament context, field, venue, weather, and round info |
| Tee Times Per Round | Retrieve pairings and starting positions for a round |
| Tournament Leaderboard | Retrieve real-time leaderboard positions and round-level scoring |
| Scorecards Per Round | Retrieve hole-by-hole scoring for each player in a round |
| Push Leaderboard | Stream real-time leaderboard updates |
| Push Scorecard | Stream real-time hole-by-hole scoring updates |
| Daily Change Log | Detect when tournament, pairing, or participant data has been updated |
High-Level Workflow
A typical live tournament integration follows this flow:
If regulation play ends with players tied for the lead, the tournament moves to a playoff. See our Tracking Playoffs integration scenario for details on detecting and tracking playoff data.
Integration Steps
1. Discover the Tournament
Start by calling the Tournament Schedule feed to identify the tournament you want to track.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/schedule.{format}Locate the target tournament and extract its tournament.id. This ID is required for all downstream live tracking requests.
Why this matters
- Establishes the canonical
tournament.idused by every tournament-centric feed - Provides start and end dates so your integration knows when to begin polling
- Surfaces the tournament
statusthat drives polling behavior (the Tournament Status Workflow page defines every value)
2. Retrieve Tournament Context
Use the Tournament Summary feed to retrieve tournament-level context including the field, venue, course layout, weather, and broadcast information.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/{tournament_id}/summary.{format}{
"id": "459e9ffb-1eb4-422c-9f13-1ba8344c35aa",
"name": "Masters Tournament",
"event_type": "stroke",
"status": "inprogress",
"cutline": 6,
"projected_cutline": 6,
"cut_round": 2,
"venue": {
"id": "d555598a-aed0-44fe-b659-4250264c7820",
"name": "Augusta National Golf Club",
"city": "Augusta",
"state": "GA"
},
"rounds": [
{
"id": "0e387540-a829-4258-b082-53ff9d3b351d",
"number": 1,
"status": "closed",
"weather": {
"temp": 58,
"condition": "Sunny",
"wind": { "speed": 11, "direction": "W" }
}
}
],
"field": [
{
"id": "4fff3b28-5c2e-4ec3-91d1-696f42638cf4",
"first_name": "Ludvig",
"last_name": "Aberg",
"country": "SWEDEN"
}
]
}Tournament Summary returns:
- Tournament status, cutline, and cut round
- Venue and course layout (including hole-by-hole pars and yardages)
- Per-round weather, broadcasts, and round status
- Full tournament field with player IDs
This feed is the foundation for tournament context. Store it once at the start and refresh as round statuses change.
3. Retrieve Tee Times
Use the Tee Times Per Round feed to retrieve pairings and starting positions for a given round.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/{tournament_id}/{round_type}/{round_number}/teetimes.{format}{
"round": {
"id": "0e387540-a829-4258-b082-53ff9d3b351d",
"number": 1,
"status": "closed",
"courses": [
{
"id": "7e9462a5-66ea-4205-b37a-81884e3653cf",
"name": "Augusta National",
"pairings": [
{
"id": "6deb578d-5104-42d5-bf52-a92cc550f1e3",
"tee_time": "2024-04-11T14:30:00+00:00",
"back_nine": false,
"players": [
{
"id": "1a669884-b715-4d7f-8fe4-63e345cc7f66",
"first_name": "Jake",
"last_name": "Knapp"
}
]
}
]
}
]
}
}Tee Times Per Round returns:
- Pairing IDs and scheduled tee times
- Player groupings and starting holes
- Course context for each pairing
- Match information (in match-play formats)
Use this feed to display upcoming pairings, drive starting-hole logic for live scorecards, and detect tee time changes as rounds approach.
4. Track Leaderboard Updates
Once a tournament is inprogress, use the Tournament Leaderboard feed to retrieve real-time leaderboard positions, overall scores, and per-round scoring summaries.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/{tournament_id}/leaderboard.{format}{
"id": "459e9ffb-1eb4-422c-9f13-1ba8344c35aa",
"name": "Masters Tournament",
"status": "inprogress",
"cutline": 6,
"projected_cutline": 6,
"leaderboard": [
{
"id": "6db3e736-d86d-4181-aa3b-651b8c1bfdc1",
"first_name": "Scottie",
"last_name": "Scheffler",
"position": 1,
"tied": false,
"score": -11,
"strokes": 277,
"rounds": [
{
"sequence": 1,
"score": -6,
"strokes": 66,
"thru": 18,
"birdies": 6,
"pars": 12,
"bogeys": 0
}
]
}
]
}Tournament Leaderboard returns:
- Player position, tied status, and overall score relative to par
- Money earned and FedEx Cup points
- Per-round scoring summaries (strokes, birdies, bogeys, eagles, pars)
- Player status flags (
CUT,WD,MDF,DQ,DNS) - Playoff data when applicable (see Tracking Playoffs)
This feed shifts to a 3-second TTL during live play. Poll it on a regular cadence, or replace polling with the Push Leaderboard feed (see step 6), to keep your leaderboard current.
5. Track Hole-by-Hole Scoring
Use the Scorecards Per Round feed to retrieve detailed hole-by-hole scoring for each player in a round.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/{tournament_id}/{round_type}/{round_number}/scores.{format}{
"round": {
"id": "251948a1-ba77-4922-b786-7e8766150634",
"number": 3,
"status": "inprogress",
"players": [
{
"id": "6db3e736-d86d-4181-aa3b-651b8c1bfdc1",
"first_name": "Scottie",
"last_name": "Scheffler",
"score": -1,
"thru": 18,
"strokes": 71,
"starting_hole": 1,
"birdies": 4,
"pars": 9,
"bogeys": 3,
"scores": [
{ "number": 1, "par": 4, "strokes": 3 },
{ "number": 2, "par": 5, "strokes": 5 }
]
}
]
}
}Scorecards Per Round returns:
- Per-player round scoring totals and round status
- Hole-by-hole strokes for every player
- Starting hole and holes completed (
thru) - Round-level birdie, par, and bogey counts
This feed also shifts to a 3-second TTL during live play. Use it to power live scorecards, hole-by-hole tickers, and detailed player views.
6. Layer In Push Feeds for Real-Time Updates
For real-time updates with reduced API call volume, subscribe to the Golf API's two Push channels.
Push Leaderboard
The Push Leaderboard feed streams the entire leaderboard whenever a player's position or score changes.
GET https://api.sportradar.com/golf/{access_level}/stream/{golf_tour}/{language_code}/leaderboards/subscribeEach update contains the entire leaderboard, so clients do not need to reconcile data unless a round has ended.
Push Scorecard
The Push Scorecard feed streams hole-by-hole scoring updates for individual players.
GET https://api.sportradar.com/golf/{access_level}/stream/{golf_tour}/{language_code}/scorecards/subscribeEach update contains scoring information for a single player. If multiple rounds are in progress simultaneously, updates for both rounds will be pushed unless filtered with query parameters.
Both Push feeds support filtering by tournament, tournament_type, and scoring_system to scope the data your client receives. The Push Scorecard feed also supports filtering by round and player.
Add-on ServicePush feeds are an add-on service and not available in self-issued trials. Contact a sales representative for access.
7. Monitor Status and Data Changes
Throughout a live tournament, monitor key status fields to drive your application's behavior:
tournament.statusdrives whether the tournament is upcoming, live, in a playoff, or final (a weather delay surfaces as asuspendedround status while the tournament staysinprogress)round.statusdrives per-round polling and display logiccutlineandprojected_cutlinedrive cut display logicplayer.statusflags players who have been cut, withdrawn, or disqualified
If tournament.status transitions to playoff, see our Tracking Playoffs integration scenario for handling playoff data.
Use the Daily Change Log to detect when tournament, pairing, or participant records have been updated outside of live polling.
GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{year}/{month}/{day}/changes.{format}This helps conserve call limits while ensuring your application catches schedule and pairing changes between rounds.
Common Use Cases
Typical builds on this workflow include:
- Powering real-time tournament leaderboards on web and mobile
- Driving live scoring tickers and overlays for broadcast applications
- Displaying hole-by-hole player scorecards
- Surfacing tee times and pairings for upcoming rounds
- Triggering notifications for round starts, cut announcements, and finishes
- Supporting live fantasy and prediction applications
Best Practices
- Use RESTful feeds as the foundation of your live integration, with Push feeds layered in for real-time updates
- Poll Tournament Leaderboard and Scorecards Per Round every 3 to 5 seconds only while the tournament is
inprogress, and prefer Push where you are entitled - Step down to the non-live cadence once the tournament moves to
closed; recently closed events cache for 10 minutes - Cache Tournament Summary responses and refresh as round statuses change rather than on every leaderboard tick
- In the event of a Push disconnection, fall back to RESTful feeds to recover missed data
- Monitor
round.statustransitions to detect delays, suspensions, and round completions - Use
player.statusflags to handle cut, withdrawn, and disqualified players gracefully in your UI - If the tournament moves to a playoff, see Tracking Playoffs for handling reactive playoff detection and data
Updated 7 days ago
