{
  "openapi": "3.0.1",
  "info": {
    "title": "PGA Tour Scraper: Leaderboards & Schedules",
    "description": "Scrape PGA Tour golf data: season schedules with courses and cities, plus full tournament leaderboards with position, country, total to par, thru and per-round scores. Filter by season or tournament. Export CSV, Excel, JSON or XML. No login or API key. 50 events in 2025.",
    "version": "0.2",
    "x-build-id": "evdcXPS0uhIEgS6Bl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~pgatour-golf-stats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-pgatour-golf-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/recordsdata~pgatour-golf-stats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-pgatour-golf-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/recordsdata~pgatour-golf-stats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-pgatour-golf-stats-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "years"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "tournaments",
              "playerStats"
            ],
            "type": "string",
            "description": "Tournaments returns season schedules and tournament leaderboards. Player stats returns ranked player statistics (driving distance, scoring average, strokes gained and hundreds more) for PGA Tour, Champions or Korn Ferry.",
            "default": "tournaments"
          },
          "tour": {
            "title": "Tour",
            "enum": [
              "R",
              "S",
              "H",
              "L"
            ],
            "type": "string",
            "description": "Which tour to read: R = PGA Tour, S = PGA Tour Champions, H = Korn Ferry Tour, L = LPGA Tour (read from ESPN, tournaments mode only).",
            "default": "R"
          },
          "years": {
            "title": "Seasons (years)",
            "type": "array",
            "description": "Season years to read, one four-digit year per entry (for example 2025, 2024). Tournaments mode: each year returns that season's tournament schedule and the leaderboards of its first tournaments. Player stats mode: each year returns the season's statistic rankings.",
            "default": [
              "2025"
            ],
            "items": {
              "type": "string"
            }
          },
          "tournamentFilter": {
            "title": "Tournament name filter (optional)",
            "type": "string",
            "description": "Optional case-insensitive text the tournament name must contain, for example Masters, Players or Open. Leave empty to include every tournament of the season.",
            "default": ""
          },
          "tournamentIds": {
            "title": "Specific tournament IDs (optional)",
            "type": "array",
            "description": "Optional exact tournament ids such as R2025016 (The Sentry 2025), taken from the schedule rows (LPGA: the numeric ESPN event id, for example 401734766). In tournaments mode these tournaments get a leaderboard directly; in player stats mode statistics are read for these tournaments only.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Tournament status",
            "enum": [
              "any",
              "completed",
              "inProgress",
              "upcoming"
            ],
            "type": "string",
            "description": "Keep only tournaments in this state, for schedule rows and leaderboards: completed (finished), in progress (being played now) or upcoming. Choose completed to skip live and future events.",
            "default": "any"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rows (schedule rows, leaderboard rows and player stat rows) to return. Free users are limited to 10. Paid users can set up to 1,000,000.",
            "default": 10
          },
          "includeSchedule": {
            "title": "Tournament schedule rows",
            "type": "boolean",
            "description": "Return one row per tournament with id, name, month, dates, status, course, city, state, country, purse, champion (or defending champion) and winner points. Billed as the Tournament event.",
            "default": true
          },
          "includeLeaderboards": {
            "title": "Leaderboards",
            "type": "boolean",
            "description": "Return one row per player (or team) per tournament with position, player status (cut, withdrawn), country, total to par, total strokes, last round score, thru and per-round scores. Billed as the Leaderboard row event.",
            "default": true
          },
          "includeEarnings": {
            "title": "Points and official money",
            "type": "boolean",
            "description": "Add FedExCup points (Korn Ferry: Points List points) and official money to the leaderboard rows of finished PGA Tour, Champions and Korn Ferry tournaments. Costs one extra request per finished tournament and no extra charge. LPGA rows always carry official money.",
            "default": true
          },
          "maxTournaments": {
            "title": "Max tournaments for leaderboards",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum number of tournaments per run whose leaderboard is fetched (the first matching tournaments of each season, plus any ids you gave). Tournaments that have not started have no leaderboard and are skipped.",
            "default": 5
          },
          "statCategory": {
            "title": "Stat category",
            "enum": [
              "none",
              "STROKES_GAINED",
              "OFF_TEE",
              "APPROACH_GREEN",
              "AROUND_GREEN",
              "PUTTING",
              "SCORING",
              "STREAKS",
              "MONEY_FINISHES",
              "POINTS_RANKINGS"
            ],
            "type": "string",
            "description": "Player stats mode: read every statistic of a category. At most 60 statistics are read per run. Combine with Stat IDs to add single statistics.",
            "default": "none"
          },
          "statIds": {
            "title": "Stat IDs",
            "type": "array",
            "description": "Player stats mode: statistic ids to read, for example 101 (Driving Distance), 120 (Scoring Average), 02675 (SG: Total), 02564 (SG: Putting). Leave empty with no category to read SG: Total. Each ranked player is billed as the Player stat event.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyNew": {
            "title": "Only new rows",
            "type": "boolean",
            "description": "Deliver only rows that are new since the last run of the same search (same tour, seasons, filters and modules). Finished tournaments that were delivered before are skipped without a request and are not charged; a row whose values moved (a live leaderboard, a corrected result, a new statistic ranking) comes back marked changed. Each row gets a changeType column.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "A label for this monitor. Different names keep separate memories for the same search, for example \"season-watch\" and \"majors-only\". Leave empty to use the search itself as the memory key.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget what was seen",
            "type": "boolean",
            "description": "Clear the memory of this search before running, so every row counts as new again.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}