GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Guides

Pulling Schedules

This scenario explains how to retrieve a tour's tournament schedule: the calendar of events for a season, with dates, venues, purses, and the IDs you use to pull every downstream feed.

This scenario is commonly used to:

  • Render a season calendar for a tour
  • Resolve tournament.id values for live and historical data
  • Surface defending champions and past winners


Before You Start

A schedule request is scoped to a tour and a season year, so resolve those first from the Seasons feed. Use the lowercase tour alias (pga, euro, ...) in the URL.



Relevant Feeds

FeedPurpose
SeasonsResolve the tour and season before requesting a schedule
Tournament ScheduleThe calendar of events for a season, with IDs, dates, venues, and winners
Tournament SummaryPer-event detail (field, course layout, rounds) once you have a tournament.id


High-Level Workflow

Seasons → Tournament Schedule → Extract tournament.id → Downstream feeds

  1. Identify the tour and season
  2. Request the Tournament Schedule
  3. Extract tournament.id values
  4. Use those IDs for live or historical data (Summary, Leaderboard, Scorecards)


Integration Steps


1. Request the Tournament Schedule

GET https://api.sportradar.com/golf/{access_level}/{golf_tour}/v3/{language_code}/{season_year}/tournaments/schedule.{format}
x-api-key: YOUR_API_KEY

Each tournament entry carries its id, name, event_type, status, dates, total_rounds, purse, winning_share, network, venue, and a parent_id (the cross-season link). For completed events it also includes the winner, and for all events the defending_champ. The example below is the opening event of the PGA Tour 2024 season (course hole list trimmed):

{
  "tour": { "id": "b52068af-28e4-4e91-bdbb-037591b0ff84", "alias": "pga", "name": "PGA Tour" },
  "season": { "id": "55827590-93f7-4493-9b4f-83ae86116ef6", "year": 2024 },
  "tournaments": [
    {
      "id": "c03e44a6-a71d-433e-86be-e28506ffcec1",
      "name": "The Sentry",
      "event_type": "stroke",
      "purse": 20000000.0,
      "winning_share": 3600000.0,
      "currency": "USD",
      "points": 700,
      "start_date": "2024-01-04",
      "end_date": "2024-01-07",
      "course_timezone": "Pacific/Honolulu",
      "network": "Golf Channel",
      "total_rounds": 4,
      "status": "closed",
      "parent_id": "bd5b1a78-eb4a-4d3e-86a6-541801b82e51",
      "defending_champ": { "id": "7b52b9be-a490-4569-9bbc-57db5f232dcb", "first_name": "Jon", "last_name": "Rahm", "country": "SPAIN" },
      "winner": { "id": "e4f92dca-86d5-441e-8a2d-55d5360937c5", "first_name": "Chris", "last_name": "Kirk", "country": "UNITED STATES" },
      "venue": { "id": "4e353af5-a1dd-4118-963d-24ef08393155", "name": "Kapalua Resort", "city": "Kapalua", "state": "HI" }
    }
  ]
}

2. Extract Tournament IDs

Collect the id values you need. Use tournament.id for season-specific feed requests, and parent_id if you want to group an event's editions across seasons (see ID Handling).


3. Use the IDs Downstream

With a tournament.id, pull Tournament Summary for the field and rounds, then the leaderboard and scorecards for results. Read status to know which events are upcoming, live, or final; see the Tournament Status Workflow page.


ℹ️

Building Player-Centric Views

Golf has no team schedule, so to build a player's season you aggregate the tournaments they appear in. That workflow (discover players, then join schedule and results by player.id) lives in Retrieving Player Details and Statistics; start there rather than duplicating it here.



Common Use Cases

  • Season calendars and event pages
  • "Defending champion" and "past winners" modules
  • Resolving IDs for a live-tracking or historical pipeline


Best Practices

  • Call Seasons before requesting schedules; do not hardcode tournament dates or IDs.
  • Cache schedule responses and refresh per the update frequencies.
  • Treat the Tournament Schedule as the authoritative source of events for a season.
  • Use tournament.id as the primary key for downstream integrations and parent_id for cross-season history.
  • Read the literal status value to classify events rather than inferring from dates.

Did this page help you?