# PGA Tour API

> PGA Tour returns tournament scores and season schedules as a workflow and API.

PGA Tour, also called PGA Tour Golf, returns tournament details and player scores through Get leaderboard, using a season year and tournament name. Get schedule returns season dates, venues, purses, statuses, winners, and defending champions using a season year.

- Page: https://fous.com/tools/pga-tour
- Handle: `@pga-tour`
- Category: [Sports](https://fous.com/tools/category/sports)
- Source website: https://pgatour.com
- Last verified: Sep 29, 2026

## Methods

### Get leaderboard

Operation `get_leaderboard`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get PGA Tour tournament details and player scores by tournament name and season. Defaults to the most recent available stroke-play event; match-play events may not show stroke totals.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2026` | PGA Tour season year, for example 2026. Defaults to the current year. |
| `tournament` | string | no | `"The Masters"` | Tournament name, for example The Masters or U.S. Open. Defaults to the most recent scored event. |
| `max_results` | integer | no | `5` | Maximum players, for example 50 (up to 200). |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "description": "PGA Tour season year, for example 2026. Defaults to the current year.",
      "x-fous-developer": true,
      "examples": [
        2026
      ]
    },
    "tournament": {
      "type": "string",
      "description": "Tournament name, for example The Masters or U.S. Open. Defaults to the most recent scored event.",
      "examples": [
        "The Masters",
        "U.S. Open"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum players, for example 50 (up to 200).",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "year": 2026,
      "tournament": "The Masters",
      "max_results": 5
    },
    {},
    {
      "year": 2026,
      "tournament": "U.S. Open",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `link` | string | `"https://www.pgatour.com/tournaments/2026/masters-tournament/R2026014/leaderboard"` |  |
| `course` | string or null | `"Augusta National Golf Club"` |  |
| `status` | string | `"Final"` |  |
| `players` | array |  |  |
| `players[].player` | string | `"Rory McIlroy"` |  |
| `players[].country` | string or null | `"Northern Ireland"` |  |
| `players[].position` | string | `"1"` |  |
| `players[].player_link` | string or null | `"https://www.pgatour.com/player/28237/rory-mcilroy"` |  |
| `players[].today_to_par` | string or null | `"-1"` |  |
| `players[].total_to_par` | string or null | `"-12"` |  |
| `players[].round_1_strokes` | integer or null | `67` |  |
| `players[].round_2_strokes` | integer or null | `65` |  |
| `players[].round_3_strokes` | integer or null | `73` |  |
| `players[].round_4_strokes` | integer or null | `71` |  |
| `players[].total_to_par_number` | integer or null | `-12` |  |
| `players[].holes_completed_today` | string or null | `"F"` |  |
| `end_date` | string or null | `"2026-04-12"` |  |
| `start_date` | string or null | `"2026-04-09"` |  |
| `tournament` | string | `"Masters Tournament"` |  |

**Example input**

```json
{
  "year": 2026,
  "tournament": "The Masters",
  "max_results": 5
}
```

**Example output**

```json
{
  "link": "https://www.pgatour.com/tournaments/2026/masters-tournament/R2026014/leaderboard",
  "course": "Augusta National Golf Club",
  "status": "Final",
  "players": [
    {
      "player": "Rory McIlroy",
      "country": "Northern Ireland",
      "position": "1",
      "player_link": "https://www.pgatour.com/player/28237/rory-mcilroy",
      "today_to_par": "-1",
      "total_to_par": "-12",
      "round_1_strokes": 67,
      "round_2_strokes": 65,
      "round_3_strokes": 73,
      "round_4_strokes": 71,
      "total_to_par_number": -12,
      "holes_completed_today": "F"
    },
    {
      "player": "Scottie Scheffler",
      "country": "United States",
      "position": "2",
      "player_link": "https://www.pgatour.com/player/46046/scottie-scheffler",
      "today_to_par": "-4",
      "total_to_par": "-11",
      "round_1_strokes": 70,
      "round_2_strokes": 74,
      "round_3_strokes": 65,
      "round_4_strokes": 68,
      "total_to_par_number": -11,
      "holes_completed_today": "F"
    },
    {
      "player": "Tyrrell Hatton",
      "country": "England",
      "position": "T3",
      "player_link": "https://www.pgatour.com/player/34363/tyrrell-hatton",
      "today_to_par": "-6",
      "total_to_par": "-10",
      "round_1_strokes": 74,
      "round_2_strokes": 66,
      "round_3_strokes": 72,
      "round_4_strokes": 66,
      "total_to_par_number": -10,
      "holes_completed_today": "F"
    }
  ],
  "end_date": "2026-04-12",
  "start_date": "2026-04-09",
  "tournament": "Masters Tournament"
}
```

### Get schedule

Operation `get_schedule`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the PGA Tour season schedule by year, with dates, venue, purse, status, winners, and defending champions. Unannounced purses and unavailable defending champions are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2025` | PGA Tour season year, for example 2025. Defaults to the current season. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "default": null,
      "description": "PGA Tour season year, for example 2025. Defaults to the current season.",
      "examples": [
        2025,
        2027
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {},
    {
      "year": 2025
    },
    {
      "year": 2027
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `season` | integer | `2026` |  |
| `tournaments` | array |  |  |
| `tournaments[].city` | string or null | `"Honolulu"` |  |
| `tournaments[].link` | string | `"https://www.pgatour.com/tournaments/2026/sony-open-in-hawaii/R2026006"` |  |
| `tournaments[].purse` | number or null | `9100000` | Tournament purse in the currency shown, or null when not announced. |
| `tournaments[].course` | string or null | `"Waialae Country Club"` |  |
| `tournaments[].status` | string | `"completed"` |  |
| `tournaments[].winner` | string or null | `"Chris Gotterup"` |  |
| `tournaments[].end_date` | string | `"2026-01-18"` |  |
| `tournaments[].start_date` | string | `"2026-01-15"` |  |
| `tournaments[].currency_code` | string or null | `"USD"` |  |
| `tournaments[].tournament_name` | string | `"Sony Open in Hawaii"` |  |
| `tournaments[].state_or_country` | string or null | `"HI"` |  |
| `tournaments[].defending_champion` | string or null | `"Nick Taylor"` |  |

**Example input**

```json
{}
```

**Example output**

```json
{
  "season": 2026,
  "tournaments": [
    {
      "city": "Honolulu",
      "link": "https://www.pgatour.com/tournaments/2026/sony-open-in-hawaii/R2026006",
      "purse": 9100000,
      "course": "Waialae Country Club",
      "status": "completed",
      "winner": "Chris Gotterup",
      "end_date": "2026-01-18",
      "start_date": "2026-01-15",
      "currency_code": "USD",
      "tournament_name": "Sony Open in Hawaii",
      "state_or_country": "HI",
      "defending_champion": "Nick Taylor"
    },
    {
      "city": "La Quinta",
      "link": "https://www.pgatour.com/tournaments/2026/the-american-express/R2026002",
      "purse": 9200000,
      "course": "Pete Dye Stadium Course",
      "status": "completed",
      "winner": "Scottie Scheffler",
      "end_date": "2026-01-25",
      "start_date": "2026-01-22",
      "currency_code": "USD",
      "tournament_name": "The American Express",
      "state_or_country": "CA",
      "defending_champion": "Sepp Straka"
    },
    {
      "city": "San Diego",
      "link": "https://www.pgatour.com/tournaments/2026/farmers-insurance-open/R2026004",
      "purse": 9600000,
      "course": "Torrey Pines Golf Course (South Course)",
      "status": "completed",
      "winner": "Justin Rose",
      "end_date": "2026-02-01",
      "start_date": "2026-01-29",
      "currency_code": "USD",
      "tournament_name": "Farmers Insurance Open",
      "state_or_country": "CA",
      "defending_champion": "Harris English"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@pga-tour",
  "visibility": "public",
  "operation": "get_leaderboard",
  "version": 1,
  "input": {
    "year": 2026,
    "tournament": "The Masters",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@pga-tour\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_leaderboard\",\n  \"version\": 1,\n  \"input\": {\n    \"year\": 2026,\n    \"tournament\": \"The Masters\",\n    \"max_results\": 5\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@pga-tour",
  "visibility": "public",
  "operation": "get_leaderboard",
  "version": 1,
  "input": {
    "year": 2026,
    "tournament": "The Masters",
    "max_results": 5
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/pga-tour`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_leaderboard`: Get leaderboard. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_schedule`: Get schedule. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-pga-tour https://api.fous.com/mcp/tools/pga-tour --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare player scores across tournament rounds
- Track tournament positions and holes completed
- Plan around season tournament dates and venues
- Review tournament winners and defending champions
- Check announced tournament purses and currencies

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this PGA Tour tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a PGA Tour account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from pgatour.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What are the players’ scores in a tournament?

Get leaderboard returns player positions, scores, and round strokes for a selected tournament and season.

### What tournaments are on the season schedule?

Get schedule returns tournaments by season, including dates, venues, and status.

### Who won a scheduled tournament?

Get schedule returns each tournament’s winner and defending champion when available.

## Related

- [ATP Tour API](https://fous.com/tools/atp-tour.md): ATP Tour provides official men's tennis rankings as of their latest publication and tournament results, including champions, for a specified year or most recent listed edition.
- [MLB API](https://fous.com/tools/mlb.md): MLB provides scores, schedules and game details for one date or up to seven days, regular-season division standings defaulting to the current year, and player profiles with regular-season stats for a selected season and career.
- [ESPN API](https://fous.com/tools/espn.md): ESPN provides daily scores and schedules, team results, player statistics, matchup summaries, and latest topic-specific headlines; coverage and published details vary, especially for college and soccer.
- [Yahoo Sports API](https://fous.com/tools/yahoo-sports.md): Yahoo Sports returns date-based scores and schedules, seasonal standings, and player regular-season and career stats when Yahoo provides them; unavailable data may be missing.
- [FIFA API](https://fous.com/tools/fifa.md): FIFA provides official men’s and women’s national-team rankings, excluding unranked teams, and year-specific tournament matches with scores, teams, stages and venues.
- [Premier League API](https://fous.com/tools/premier-league.md): Premier League provides current/chosen-season tables and recent form, date-range fixtures/results (up to 380), player profiles and stats, and seasonal leaders; older-season stats may be limited.
- [Sports Reference API](https://fous.com/tools/sports-reference.md): Sports Reference provides regular-season career stats, awards and season records across basketball, football, baseball and hockey, plus season leaders using the latest published season if unspecified.
- [Formula 1 API](https://fous.com/tools/formula-1.md): Formula 1 provides official calendars with session times and venues, completed race results defaulting to the latest current-season race, and driver and team standings through the last completed race.
- [All Sports tools](https://fous.com/tools/category/sports)
