Endpoint catalog¶
Verified on 2026-09-23. GraphQL query text is available in the linked file for every operation; use the entire document, not only the operation name.
Configuration¶
| Method | Route | Returns |
|---|---|---|
GET |
https://orchestrator-config.pgatour.com/web-config |
Default tournament/leaderboard IDs by tour, current season numbers, and frontend configuration |
The shortest reliable discovery chain is:
REST¶
Base URL: https://data-api.pgatour.com
| Method | Path | Description |
|---|---|---|
GET |
/player/list/{tour} |
Full player directory |
GET |
/schedule/{tour}/{year} |
Season schedule |
GET |
/player/profiles/{playerId} |
Profile overview |
GET |
/player/profiles/{playerId}/career |
Career achievements and totals |
GET |
/player/profiles/{playerId}/results |
All available tournament results |
GET |
/player/profiles/{playerId}/results?season={year} |
Results for one season |
GET |
/player/profiles/{playerId}/stats |
Full player stat profile |
GET |
/player/profiles/{playerId}/bio |
Biography and amateur highlights |
GET |
/odds/interactivity |
Odds widget configuration |
GET |
/odds/tournament/{tournamentId} |
Betting-market catalog |
GET |
/odds/tournament/{tournamentId}/player/{playerId} |
Markets for one player |
GET |
/content/watch/speedRounds/{tour} |
Speed-round video index |
Public REST reads returned without user authentication during verification.
GraphQL¶
Base URL: https://orchestrator.pgatour.com/graphql
Tournament and live scoring¶
| Operation | Variables | Root field | Purpose |
|---|---|---|---|
LeaderboardCompressedV3 |
leaderboardCompressedV3Id: ID! |
leaderboardCompressedV3 |
Full leaderboard, rounds, movement, cup ranks |
CurrentLeadersCompressed |
tournamentId: ID! |
currentLeadersCompressed |
Compact top-leaders snapshot |
LeaderboardHoleByHole |
tournamentId: ID!, round: Int |
leaderboardHoleByHole |
Hole-by-hole scores for the field |
Field |
fieldId: ID!, includeWithdrawn: Boolean, changesOnly: Boolean |
field |
Entrants, alternates, withdrawals, OWGR |
FieldStats |
tournamentId: ID!, fieldStatType: FieldStatType! |
fieldStats |
Current-form or course-fit field data |
TeeTimesCompressedV2 |
teeTimesCompressedV2Id: ID! |
teeTimesCompressedV2 |
Tee groups and start tees |
ScorecardCompressedV3 |
tournamentId: ID!, playerId: ID! |
scorecardCompressedV3 |
Player hole-by-hole scorecard |
shotDetailsV4Compressed |
tournamentId: ID!, playerId: ID!, round: Int!, includeRadar: Boolean |
shotDetailsV4Compressed |
Shot play-by-play, coordinates, distances, radar |
ScorecardStatsComparisonCategories |
tournamentId: String!, playerIds: [String!]!, category: PlayerComparisonCategory! |
scorecardStatsComparison |
Head-to-head player comparison |
Coverage |
tournamentId: ID! |
coverage |
TV and streaming windows |
Weather |
tournamentId: ID! |
weather |
Hourly/daily tournament forecast |
CourseStats |
tournamentId: ID! |
courseStats |
Per-hole course scoring |
TournamentOverview |
tournamentId: ID! |
tournamentOverview |
Overview tiles and champions |
TournamentPastResults |
tournamentPastResultsId: ID!, year: Int |
tournamentPastResults |
Historical event leaderboard |
Tournaments |
ids: [ID!] |
tournaments |
Tournament metadata for one or more IDs |
Statistics and standings¶
| Operation | Variables | Root field | Purpose |
|---|---|---|---|
StatOverview |
tourCode: TourCode!, year: Int |
statOverview |
Discover all categories and stat IDs |
StatDetails |
tourCode: TourCode!, statId: String!, year: Int, eventQuery: StatDetailEventQuery |
statDetails |
Ranking table for one stat |
TourCupSplit |
tourCode: TourCode!, id: String, year: Int, eventQuery: StatDetailEventQuery |
tourCupSplit |
FedExCup/season standings |
SignatureStandings |
tourCode: TourCode! |
signatureStandings |
Signature Event/Aon standings |
PriorityRankings |
tourCode: TourCode!, year: Int |
priorityRankings |
Exemption and priority categories |
CourseStatsOverview |
tourCode: TourCode!, year: Int |
courseStatsOverview |
Season course-stat hub |
Known eventQuery value: LAST_5; null requests the normal season view.
Known fieldStatType values: CURRENT_FORM, COURSE_FIT.
Known comparison categories vary by event; SCORING is a useful default.
Odds¶
| Operation | Variables | Root field | Purpose |
|---|---|---|---|
oddsToWinCompressed |
tournamentId: ID! |
oddsToWinCompressed |
Tournament winner odds |
The REST routes above expose the broader market catalog and per-player market views. Odds can be empty when an event is not actively offered.
News, video, and CMS content¶
| Operation | Variables | Root field | Purpose |
|---|---|---|---|
NewsArticles |
tour, franchises, playerIds, limit, offset, tags, sectionName |
newsArticles |
Filtered/paginated articles |
NewsFranchises |
tourCode, allFranchises |
newsFranchises |
Available news filters |
Videos |
tournament/player/tour/season/filter/pagination variables | videos |
Video and highlight catalog |
TourcastVideos |
tournamentId: ID!, playerId: ID!, round: Int!, optional hole, shot |
tourcastVideos |
Shot-specific clips |
GenericContentCompressed |
path: String! |
genericContentCompressed |
CMS content fragment by site path |
Player status¶
| Operation | Variables | Root field | Purpose |
|---|---|---|---|
getPlayerTournamentStatus |
playerId: ID! |
playerTournamentStatus |
Current-event score/status for a player |
Common response shapes¶
Decompressed leaderboard¶
Top-level keys include tournament format/status metadata and players. Each
player item contains:
player: ID, display/short names, country, flag, amateur statusscoringData: position, total, current score, thru, current round, tee time, course/group IDs, movement, total strokes, projected ranks, state, and rounds
Shot details¶
Shot records can include round/hole/shot numbers, par, lie, sequence text, stroke status, start/end coordinates, measured distance, remaining distance, and radar measurements. Availability differs by tournament and hole.
Stat details¶
statDetails includes title, description, headers, tour average, season/event
selectors, and ranked rows. A row contains player ID/name/country/rank and a
list of named stat values.
REST schedule¶
The response contains tour/season metadata and tournaments. Event objects
include tournament ID, name, date display fields, status, purse, champion,
course/location, points, and event-site URL.
Additional operations (verified 2026-09-24)¶
| Operation | Root | Variables | Compressed |
|---|---|---|---|
| ScorecardStatsV3Compressed | scorecardStatsV3Compressed | scorecardStatsV3CompressedId: ID!, playerId: ID! | Yes |
| CourseStatsDetails | courseStatsDetails | tourCode: TourCode!, queryType: CourseStatsId!, round: ToughestRound, year: Int | No |
| AllTimeRecordCategories | allTimeRecordCategories | tourCode: TourCode! | No |
| AllTimeRecordStat | allTimeRecordStat | tourCode: TourCode!, recordId: String! | No |
Course query types: TOUGHEST_COURSE and TOUGHEST_HOLES. Record IDs are a separate catalogue, not season-stat IDs.