European Tour APIeuropeantour.com ↗
Access hole-by-hole scorecards and per-round stats for DP World Tour players via 2 endpoints. Get driving accuracy, GIR, putts, and score classifications by event and player.
What is the European Tour API?
The DP World Tour API provides 2 endpoints covering hole-by-hole scorecard data and per-round performance statistics for players in European Tour tournaments. The get_scorecard endpoint returns stroke counts and score classifications (eagle, birdie, par, bogey) for every hole across all completed rounds, while get_round_stats delivers field-relative rankings alongside metrics such as driving accuracy, greens in regulation, and putts per round.
curl -X GET 'https://api.parse.bot/scraper/152f9562-8e88-44cc-a2f7-0ec3529525c9/get_scorecard?event_id=2026126&player_id=34024' \ -H 'X-API-Key: $PARSE_API_KEY'
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 europeantour-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.
"""Walkthrough: DP World Tour Shot By Shot SDK — bounded, re-runnable; every call capped."""
from parse_apis.europeantour_com_api import DPWorldTour, ScorecardNotFound
client = DPWorldTour()
# Fetch a player's full scorecard for a tournament
try:
scorecard = client.scorecards.get(event_id="2026126", player_id="34024")
print(scorecard.event_id, scorecard.player_id, scorecard.last_updated)
except ScorecardNotFound as e:
print(f"not found: event={e.event_id}, player={e.player_id}")
# Walk hole-by-hole data for each round
if scorecard:
for rnd in scorecard.rounds[:2]:
print(f"Round {rnd.round_number}: {rnd.total_strokes} strokes, {rnd.score_to_par} to par")
for hole in rnd.holes[:3]:
print(f" Hole {hole.hole_number}: {hole.strokes} strokes ({hole.score_class})")
# Get detailed round stats
if scorecard:
stats = scorecard.stats(round_number="1")
print(stats.driving_distance_yards, stats.putts_per_round, stats.greens_in_regulation_pct)
print("exercised: scorecards.get / scorecard.stats")
Retrieve a player's hole-by-hole scorecard for all rounds in a tournament. Each hole shows the number of strokes and score classification (eagle, birdie, par, bogey). Returns all completed rounds with front-nine/back-nine/total strokes and score-to-par per round.
| Param | Type | Description |
|---|---|---|
| event_idrequired | string | Numeric tournament event identifier (e.g. 2026126 for Genesis Scottish Open 2026). |
| player_idrequired | string | Numeric player identifier on the DP World Tour (e.g. 34024 for Rory McIlroy). |
{
"type": "object",
"fields": {
"rounds": "array of round objects containing hole-by-hole scoring",
"event_id": "integer — tournament event identifier",
"player_id": "integer — player identifier",
"last_updated": "string — ISO 8601 timestamp of last data update"
},
"sample": {
"data": {
"rounds": [
{
"holes": [
{
"penalty": 0,
"strokes": 3,
"hole_number": 1,
"score_class": "ea"
},
{
"penalty": 0,
"strokes": 4,
"hole_number": 2,
"score_class": "pa"
}
],
"strokes_in": 34,
"strokes_out": 31,
"round_number": 1,
"score_to_par": -5,
"course_number": 1,
"total_strokes": 65
}
],
"event_id": 2026126,
"player_id": 34024,
"last_updated": "2026-07-12T16:43:25+00:00"
},
"status": "success"
}
}About the European Tour API
Scorecard Data
The get_scorecard endpoint accepts an event_id and player_id and returns a rounds array containing hole-by-hole scoring for each completed round. Each hole entry includes the number of strokes taken and a score classification — eagle, birdie, par, bogey, or similar. Round-level summaries include front-nine, back-nine, and total strokes, plus the score-to-par for that round. A last_updated ISO 8601 timestamp indicates data freshness. Event IDs follow a numeric format (e.g. 2026126 for the Genesis Scottish Open 2026); player IDs are similarly numeric (e.g. 34024 for Rory McIlroy).
Round Statistics
The get_round_stats endpoint takes the same event_id and player_id inputs, plus a round_number (1–4). It returns a structured breakdown of a player's performance for that specific round: driving_accuracy_pct, driving_distance_yards, greens_in_regulation_pct, putts_per_round, scrambles_pct, total_strokes, and strokes_rank — the player's rank within the field for strokes that round. All metrics are numeric, making them directly usable in comparative or time-series analysis.
Coverage and Identifiers
Both endpoints are scoped to DP World Tour (European Tour) events. You need to know the numeric event_id for the tournament and the numeric player_id for the player before making a request. There is no search or listing endpoint in this API to discover event or player IDs programmatically, so you will need to source those identifiers separately. Data covers only completed rounds; in-progress round data availability depends on how recently last_updated reflects.
The European Tour API is a managed, monitored endpoint for europeantour.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when europeantour.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 europeantour.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a live leaderboard tracker showing score-to-par per round for DP World Tour events
- Analyze hole difficulty across a tournament course using aggregated stroke counts from
get_scorecard - Compare driving accuracy and greens-in-regulation percentages across players in the same round using
get_round_stats - Track a specific player's scramble success percentage across multiple tournaments
- Identify scoring patterns (eagle/birdie/bogey distribution) on specific holes using hole-by-hole classifications
- Rank players by putts-per-round or driving distance within a given round using
strokes_rankand associated stats - Power a fantasy golf scoring engine with hole-level and round-level data for DP World Tour competitors
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does europeantour.com have an official developer API?+
What does get_scorecard return for each hole?+
Does get_round_stats include cumulative tournament totals, not just single-round figures?+
get_round_stats is scoped to a single round specified by round_number (1–4) and returns metrics — driving accuracy, GIR, putts, scrambles, driving distance, total strokes, and field rank — for that round only. The API does not currently expose tournament-aggregate statistics. You can fork it on Parse and revise to add a cumulative stats endpoint.Does the API cover tournament schedules, player rosters, or world ranking data?+
How do I find valid event_id and player_id values?+
2026126 for the Genesis Scottish Open 2026 or player_id 34024 for Rory McIlroy. Sourcing the full list of IDs requires a separate lookup outside this API.