pdga.com APIpdga.com ↗
Access PDGA player profiles, round-by-round ratings, tournament results, live scores, world rankings, and course directory data via a single REST API.
curl -X GET 'https://api.parse.bot/scraper/0a9e3819-bb2b-49b4-a349-bdda834d5ebe/search_players?last_name=Smith' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for players by name or PDGA number. At least one of first_name, last_name, or pdga_num should be provided. Note: pdga_num searches independently and should not be combined with name filters.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (0-based). |
| pdga_num | string | PDGA membership number to search for. Use alone without name filters. |
| last_name | string | Player's last name to search for. |
| first_name | string | Player's first name to search for. |
{
"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.com API
This API exposes 8 endpoints covering the Professional Disc Golf Association's full public data surface, including player search, career stats, and round-by-round ratings history. The get_player_ratings_detail endpoint alone returns per-round fields such as tournament name, tier, division, score, rating, and whether each round was evaluated and included in the player's current rating calculation.
Player Data
The search_players endpoint accepts first_name, last_name, or pdga_num as filters and returns a paginated list of players with fields including current rating, classification, location, and membership status. Note that pdga_num searches independently — combining it with name filters produces unreliable results. The get_player_profile endpoint takes a single pdga_number and returns career-level fields (career_wins, career_events, career_earnings, member_since) alongside a season_stats array broken down by division, tournaments entered, points, and prize money.
Ratings and Tournament Results
get_player_ratings_detail returns every rated round on record for a player, with per-row fields for tournament name, tier, date, division, round number, score, rating value, and two boolean flags — evaluated and included — indicating which rounds factor into the current official rating. For tournament data, search_events queries events by name and returns event-level metadata (tier, class, status, director, location, dates). get_event_details resolves a specific event_id to full results: for completed events it returns a results array grouped by division with individual player placements; for upcoming events it returns registration lists instead.
Live Scores, Rankings, and Courses
get_live_event_scores returns the PDGA live scoring payload for an active tournament, including division metadata, layout definitions, and round information nested under a data object. get_world_rankings requires no parameters and returns the top 5 players in MPO and FPO divisions along with a link to the full rankings page. The search_courses endpoint queries the PDGA course directory by title and returns paginated results with course name, establishment year, location, hole count, and a detail URL.
- Track a player's rating trend over time using the
evaluatedandincludedflags inget_player_ratings_detail. - Build a tournament results dashboard by chaining
search_eventswithget_event_detailsto pull division-level placements. - Display live leaderboards during active events using
get_live_event_scoreswith round and layout metadata. - Compare career earnings and win totals across professional players using
get_player_profilefields. - Populate a course finder app from the PDGA course directory using
search_courseswith name filters and hole counts. - Show current MPO and FPO world rankings in a sports feed widget using
get_world_rankings. - Verify player membership status and classification before entering results into a club management system using
search_players.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does the PDGA have an official developer API?+
What does `get_event_details` return for events that haven't finished yet?+
results array grouped by division, each containing individual player placements. For upcoming events the same endpoint returns registration lists instead of results. The status field from search_events can help you decide which format to expect before calling the endpoint.How does pagination work across endpoints that support it?+
search_players, search_events, and search_courses all accept a page parameter that is 0-based, meaning the first page is page 0. Each response echoes back the current page value. There is no total-count or total-pages field in the response, so you need to keep paginating until an empty result set is returned.Does the API cover historical world rankings or only the current top 5?+
get_world_rankings returns the current top 5 players for MPO and FPO only. Historical ranking snapshots and rankings for other divisions such as FP40, MP40, or junior divisions are not currently covered. You can fork this API on Parse and revise it to add an endpoint targeting those division rankings pages.Can I retrieve round-by-round scoring for all players in a tournament, not just live events?+
get_event_details returns final placement data per division but does not include individual round scores or hole-by-hole breakdowns for completed events. get_live_event_scores provides detailed round data only for active tournaments. Historical round-by-round scoring for completed events is not currently exposed. You can fork this API on Parse and revise it to add an endpoint targeting completed event score detail pages.