Discover/PDGA API
live

PDGA APIpdga.com

Access PDGA player profiles, ratings history, tournament results, live scores, world rankings, and course directory via a single REST API.

Endpoint health
verified 4d ago
search_players
get_world_rankings
get_event_details
get_live_event_scores
get_player_profile
8/8 passing latest checkself-healing
Endpoints
8
Updated
22d ago

What is the PDGA API?

This API exposes 8 endpoints covering the Professional Disc Golf Association's full public data surface, from player directory searches to round-by-round ratings history. Use get_player_ratings_detail to pull every rated round a player has thrown, or get_live_event_scores to retrieve hole-by-hole scoring data for in-progress tournaments. Response fields include PDGA number, current rating, career wins, division results, course hole counts, and MPO/FPO world rankings.

Try it
Page number for pagination (0-based).
PDGA membership number to search for. Use alone without name filters.
Player's last name to search for.
Player's first name to search for.
api.parse.bot/scraper/0a9e3819-bb2b-49b4-a349-bdda834d5ebe/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/0a9e3819-bb2b-49b4-a349-bdda834d5ebe/search_players?page=0&last_name=McBeth' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace pdga-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.pdga_professional_disc_golf_association_api import PDGA, PlayerSummary, Player, RatingRound, EventSummary, Event, Course, Ranking, RankedPlayer

pdga = PDGA()

# Search for players by last name
for player_summary in pdga.playersummaries.search(last_name="McBeth"):
    print(player_summary.name, player_summary.pdga_num, player_summary.rating, player_summary.classification)

    # Get detailed profile for the first player
    profile = player_summary.details()
    print(profile.name, profile.current_rating, profile.career_wins, profile.career_earnings)

    # List their rated rounds
    for rnd in profile.ratings.list():
        print(rnd.tournament, rnd.date, rnd.score, rnd.rating)
    break

# Search events and drill into details
for event_summary in pdga.eventsummaries.search(event_name="Championship"):
    print(event_summary.name, event_summary.tier, event_summary.location, event_summary.dates)

    # Get full event details with results
    event = event_summary.details()
    print(event.name, event.dates, event.location)
    for division_result in event.results:
        print(division_result.division)
        for ep in division_result.players:
            print(ep.place, ep.player, ep.pdga_num)
    break

# Get event by ID directly and check live scores
event = pdga.events.get(event_id="104527")
live = event.live_scores()
print(live.data)

# World rankings
for ranking in pdga.rankings.list():
    print(ranking.title, ranking.full_rankings_url)
    for rp in ranking.players:
        print(rp.rank, rp.player, rp.player_url)

# Search courses
for course in pdga.courses.search(title="Championship"):
    print(course.name, course.established, course.location, course.holes)
All endpoints · 8 totalmissing one? ·

Search the PDGA player directory by name or PDGA number. Returns paginated results with basic player info (name, rating, classification, location, membership status). At least one of first_name, last_name, or pdga_num should be provided. pdga_num searches independently and should not be combined with name filters.

Input
ParamTypeDescription
pageintegerPage number for pagination (0-based).
pdga_numstringPDGA membership number to search for. Use alone without name filters.
last_namestringPlayer's last name to search for.
first_namestringPlayer's first name to search for.
Response
{
  "type": "object",
  "fields": {
    "page": "integer indicating the current page number",
    "players": "array of player objects with name, pdga_num, rating, classification, city, state_prov, country, status, profile_url"
  },
  "sample": {
    "data": {
      "page": 0,
      "players": [
        {
          "city": "Huntington Beach",
          "name": "Paul McBeth",
          "rating": "1046",
          "status": "Current",
          "country": "United States",
          "pdga_num": "27523",
          "state_prov": "California",
          "profile_url": "https://www.pdga.com/player/27523",
          "classification": "Pro"
        }
      ]
    },
    "status": "success"
  }
}

About the PDGA API

Player Data

The search_players endpoint accepts first_name, last_name, and pdga_num as filters and returns paginated arrays of player objects — each with name, rating, classification, city, state_prov, country, and status. For a deeper look at any individual, get_player_profile accepts a pdga_number and returns career-level fields: career_wins, career_events, career_earnings, member_since, and a season_stats array broken out by division. The get_player_ratings_detail endpoint goes further, returning every rated round on record with tournament, tier, date, division, round, score, rating, evaluated, and included flags that mirror the official PDGA ratings calculation inputs.

Events and Live Scoring

search_events lets you query the PDGA tour schedule by event_name and returns event-level metadata: event_id, tier, class, tournament_director, location, and dates. Pass an event_id to get_event_details to retrieve official results organized by division, where each division contains a players array with place, name, PDGA number, and rating. For tournaments with live scoring active, get_live_event_scores returns the full data object from the PDGA live scoring system, including Divisions, Layouts (with hole-by-hole details), RoundsList, and scoring format metadata.

Rankings and Courses

get_world_rankings requires no parameters and returns the current top-5 players for both the MPO and FPO divisions, each entry carrying rank, name, and profile_url. The search_courses endpoint queries the PDGA course directory by title and returns paginated course objects with name, established, location, holes, and url. Both endpoints are useful for building reference tools or location-based disc golf apps without needing to maintain your own course or rankings database.

Reliability & maintenanceVerified

The PDGA API is a managed, monitored endpoint for pdga.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pdga.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official pdga.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
8/8 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track a player's official PDGA rating trend over time using round-by-round data from get_player_ratings_detail
  • Build a tournament bracket viewer by combining search_events results with get_event_details division standings
  • Display live leaderboard updates during an active event using get_live_event_scores hole-by-hour data
  • Show MPO and FPO world rankings on a disc golf news site using get_world_rankings
  • Build a course finder app by searching the PDGA directory with search_courses and surfacing hole count and establishment year
  • Aggregate career statistics for multiple players by batch-calling get_player_profile with individual PDGA numbers
  • Validate a user's PDGA membership status and classification during app onboarding via search_players
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the PDGA have an official developer API?+
The PDGA does not publish a general-purpose public developer API. Some live scoring data is surfaced through PDGA-operated endpoints during events, but there is no documented API for player profiles, ratings history, or course directory data available to third-party developers.
What does `get_player_ratings_detail` return, and how is it different from `get_player_profile`?+
get_player_profile returns aggregate career and season stats — total wins, earnings, and division-level tournament counts. get_player_ratings_detail returns the underlying round-level data: one object per rated round with tournament, tier, date, division, round, score, rating, and evaluated/included boolean flags that indicate which rounds counted toward the player's official rating calculation.
Does `get_world_rankings` return the full rankings list or just a summary?+
It returns the top 5 players for each of the MPO and FPO divisions, along with a full_rankings_url pointing to the complete PDGA rankings page. The response does not include players ranked below 5th. You can fork this API on Parse and revise it to add an endpoint that retrieves the full rankings list.
Is amateur division data or junior division data available through these endpoints?+
Player profiles and ratings history are accessible for any PDGA member regardless of classification — the classification field on player objects will reflect amateur or pro status. However, there is no dedicated endpoint for filtering players or events exclusively by amateur or junior division. You can fork this API on Parse and revise it to add division-specific filtering across player and event searches.
How does pagination work across the search endpoints?+
The search_players, search_events, and search_courses endpoints all use 0-based integer pagination via the page parameter. Each response includes the current page value. There is no total-count or total-pages field returned, so you need to increment the page number until the results array is empty to determine when you've reached the end of the result set.
Page content last updated . Spec covers 8 endpoints from pdga.com.
Related APIs in SportsSee all →
pgatour.com API
Track PGA Tour tournaments with live leaderboards, player scorecards, and detailed shot-by-shot data, while monitoring player standings and the FedExCup race. Access complete tournament schedules and player statistics to stay updated on professional golf competitions.
datagolf.com API
Track professional golfers' strokes gained performance metrics across tournaments and rounds by accessing top player rankings and detailed historical SG data. Analyze how elite golfers perform in specific competitions to compare their scoring efficiency over time.
ratings.fide.com API
Find chess players and track their FIDE ratings, rankings, and performance history by searching the official ratings database or browsing the world's top-ranked players. Get detailed player profiles with complete rating trends and game statistics to analyze any player's competitive record.
ittf.com API
Access official World Table Tennis player statistics, match results, and event data to track tournament outcomes, compare player rankings, and explore international competition details. Search player profiles, browse featured athletes, and review results from global table tennis events.
rocketleague.tracker.network API
Retrieve Rocket League player profiles, historical season statistics, playlist rankings, and recent match session data from Tracker Network. Search for players across platforms and compare performance metrics, rank ratings, and progression across seasons.
eliteprospects.com API
Search for hockey players and discover top prospects with detailed biographies and performance statistics. Find comprehensive information about player rankings and career details to stay updated on elite hockey talent.
matchroompool.com API
Access professional pool event schedules, player profiles, rankings, and real-time match updates from Matchroom Pool. Retrieve news articles and detailed tournament information across World Nineball Tour events.
teeoff.com API
Find and book golf tee times across courses worldwide, compare pricing and availability, read detailed course reviews, and discover new golf destinations. Get real-time access to course information, current deals, flash sales, and locate nearby courses with a single search.