GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Guides

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 Practice

Use 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:

FeedPurpose
Tournament ScheduleDiscover tournament IDs and start dates
Tournament SummaryRetrieve tournament context, field, venue, weather, and round info
Tee Times Per RoundRetrieve pairings and starting positions for a round
Tournament LeaderboardRetrieve real-time leaderboard positions and round-level scoring
Scorecards Per RoundRetrieve hole-by-hole scoring for each player in a round
Push LeaderboardStream real-time leaderboard updates
Push ScorecardStream real-time hole-by-hole scoring updates
Daily Change LogDetect when tournament, pairing, or participant data has been updated


High-Level Workflow

A typical live tournament integration follows this flow:

Live Tracking WorkflowSet up once, poll while a round is live, stream on top
Set up onceTournament ScheduleTournament SummaryTee Times Per Roundtournament id, field, venue, pairings
Go liveround.status: inprogressTournament LeaderboardandScorecards Per RoundREST every 3 to 5 seconds
Stream on top (optional)Push LeaderboardandPush ScorecardREST becomes the recovery path
Wind downcompletecloseddrop the event from live polling
Cadences come from Update Frequencies; the live tier applies only while a round is inprogress. The Stream on top row is optional: Push is a Realtime add-on, and the REST cadence above is a complete live integration on its own. If regulation ends in a tie for the lead, tournament.status flips to playoff and the same live cadence carries through the extra holes.

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.id used by every tournament-centric feed
  • Provides start and end dates so your integration knows when to begin polling
  • Surfaces the tournament status that 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/subscribe

Each 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/subscribe

Each 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 Service

Push 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.status drives whether the tournament is upcoming, live, in a playoff, or final (a weather delay surfaces as a suspended round status while the tournament stays inprogress)
  • round.status drives per-round polling and display logic
  • cutline and projected_cutline drive cut display logic
  • player.status flags 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.status transitions to detect delays, suspensions, and round completions
  • Use player.status flags 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

Did this page help you?