Golf Data logo

Golf Data

Organization
machina-sports
golf-data

PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news. Zero config, no API keys. Use when: user asks about golf scores, tournament leaderboards, scorecards, PGA Tour schedule, golfer profiles, golfer season stats, LPGA results, or golf news. Don't use when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). For betting odds use polymarket or kalshi. For news use sports-news.

Overview

Publishermachina-sports
Repositorysports-skills
Skill namegolf-data
Stars
255
Forks
38
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by machina-sports on GitHub. Read the source before you install it.

Installation

Install the Golf Data AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/machina-sports/sports-skills/tree/main/skills/golf-data
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/machina-sports/sports-skills.git /tmp/sports-skills
mkdir -p .claude/skills
cp -r /tmp/sports-skills/skills/golf-data .claude/skills/golf-data
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Golf Data in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Golf Data on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Golf Data is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Golf Data (PGA / LPGA / DP World Tour)

Before writing queries, consult references/api-reference.md for endpoints, player IDs, and score formats.

Setup

Before first use, check if the CLI is available:

bash
which sports-skills || pip install sports-skills

If pip install fails with a Python version error, the package requires Python 3.10+. Find a compatible Python:

bash
python3 --version  # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills

No API keys required.

Quick Start

Prefer the CLI — it avoids Python import path issues:

bash
sports-skills golf get_leaderboard --tour=pga
sports-skills golf get_schedule --tour=pga --year=2026
sports-skills golf get_news --tour=pga

CRITICAL: Before Any Query

CRITICAL: Before calling any data endpoint, verify:

  • The tour parameter is specified (pga, lpga, or eur) — there is no default tour.
  • Player IDs are obtained from get_leaderboard results or ESPN golf URLs — never guessed.

Important: Golf is Not a Team Sport

  • Tournaments, not games: Each event is a multi-day tournament (typically 4 rounds, Thu–Sun).
  • Individual athletes: The leaderboard has 72–147 individual golfers, not 2 teams.
  • Score relative to par: Scores are strings like "-17", "E" (even), "+2" — not point totals.
  • One event per week: Unlike team sports, golf has one tournament per week per tour.
  • No standings endpoint: FedEx Cup standings are not available via this API.

The tour Parameter

Most commands require --tour=pga, --tour=lpga, or --tour=eur:

  • PGA: PGA Tour (men's professional golf)
  • LPGA: LPGA Tour (women's professional golf)
  • EUR: DP World Tour (formerly European Tour)

If the user doesn't specify, default to pga. If they say "women's golf" or "LPGA", use lpga. If they mention the European Tour or DP World Tour, use eur.

Commands

CommandDescription
get_leaderboardTournament leaderboard with all golfer scores (current, or event_id / date)
get_scheduleFull season tournament schedule
get_player_infoIndividual golfer profile
get_player_overviewDetailed overview with season stats, rankings, recent results
get_scorecardHole-by-hole scorecard for a golfer (current, or event_id / date)
get_newsGolf news articles

See references/api-reference.md for full parameter lists and return shapes.

Examples

Example 1: Current leaderboard User says: "What's the PGA leaderboard right now?" Actions:

  1. Call get_leaderboard(tour="pga") Result: Current tournament leaderboard sorted by position with each golfer's score and round-by-round breakdown

Example 2: Season schedule User says: "Show me the LPGA schedule for 2026" Actions:

  1. Call get_schedule(tour="lpga", year=2026) Result: Full LPGA tournament calendar with names, dates, and venues

Example 3: Golfer profile User says: "Tell me about Scottie Scheffler" Actions:

  1. Call get_player_info(player_id="9478", tour="pga") Result: Scheffler's profile with age, nationality, height/weight, turned pro year

Example 4: Upcoming major User says: "When is the Masters this year?" Actions:

  1. Derive year from currentDate
  2. Call get_schedule(tour="pga", year=<derived_year>)
  3. Search results for "Masters Tournament" Result: Masters date, course (Augusta National), and tournament ID

Example 5: Player scorecard User says: "Show me Scottie Scheffler's scorecard" Actions:

  1. Call get_scorecard(tour="pga", player_id="9478") Result: Hole-by-hole scores for each completed round with strokes and score-to-par

Example 6: Player season form User says: "How has Rory McIlroy been playing this season?" Actions:

  1. Call get_player_overview(player_id="3470", tour="pga") Result: Season stats (scoring average, earnings, wins, top-10s), world ranking, and recent results

Commands that DO NOT exist — never call these

  • get_tournament_results — does not exist. Use get_leaderboard (with event_id from get_schedule for a past tournament).
  • get_rankings — does not exist. FedEx Cup/world rankings are not available via this API. Use get_player_overview for individual rankings.
  • get_odds / get_betting_odds — not available. For prediction market odds, use the polymarket or kalshi skill.
  • search_player — does not exist. Use get_leaderboard to find player IDs from the current field.

If a command is not listed in the Commands table above, it does not exist.

Error Handling

When a command fails, do not surface raw errors to the user. Instead:

  1. If no active tournament, tell the user and suggest checking the schedule
  2. If a player ID is wrong, suggest using get_leaderboard to find current player IDs
  3. Only report failure with a clean message after exhausting alternatives

Troubleshooting

Error: sports-skills command not found Cause: Package not installed Solution: Run pip install sports-skills

Error: No active tournament on leaderboard Cause: Golf tournaments run Thursday–Sunday; between events the leaderboard may show no active tournament Solution: Call get_schedule(tour="pga") to find the next upcoming event

Error: Limited round data — scores are empty Cause: Before a tournament starts, round scores will be empty. During the tournament, only completed rounds have scores. Solution: Check get_leaderboard for tournament status and current round; wait for rounds to complete

Error: Player not found by ID Cause: Player ID is incorrect or the player is not in the current tournament field Solution: Get player IDs from get_leaderboard results, or look up ESPN golf URLs (espn.com/golf/player/_/id/<id>/player-name)

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Golf Data AI skill do?

PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news. Zero config, no API keys. Use when: user asks about golf scores, tournament leaderboards, scorecards, PGA Tour schedule, golfer profiles, golfer season stats, LPGA results, or golf news. Don't use when: user asks about other sports — use football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), cricket-data (cricket), cfb-data (college football), cbb-data (coll...

Why use Golf Data on TypingMind?

Because you install it once and use it with any model. Golf Data is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Golf Data in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/machina-sports/sports-skills/tree/main/skills/golf-data. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Golf Data?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Golf Data?

As many as you like. As long as a model supports skills, you can use Golf Data with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Golf Data AI skill free?

Yes. It is published on GitHub by machina-sports under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇