Scorecards & handicaps
A scorecard is fetched per entry — one player, or one team:
curl "https://api.front9.com/api/public/v1/orgs/{orgSlug}/events/{eventSlug}/leaderboard/scorecard?teamId=110&competitionId=72"
Pass either playerId or teamId (one is required). competitionId picks which
competition to render when a round runs more than one, and round narrows the
response to a single round.
The response holds one entry in rounds per round of the event, each with its
hole-by-hole rows and the tee and handicap that applied in that round.
Read handicaps from the round, not the top level
The same handicap fields appear in two places, and they do not mean the same thing:
| Where | Meaning |
|---|---|
rounds[].playingHandicap, rounds[].teamPlayingHandicap, … | That round's values. Use these. |
Top-level playingHandicap, teamPlayingHandicap, … | The first round's values. Deprecated. |
The top-level copies predate multi-round support and are kept only so older clients keep working. They are not the figure for the event.
Why it matters
For a two-round event where both rounds are 18 holes on the same course, the two rounds carry the same handicap and the distinction is invisible.
It stops being invisible when the rounds differ — a league playing two nines across two nights, or a tournament that moves to a second course. Then each round has its own course rating, its own stroke indexes, and its own strokes given:
{
"teamId": 110,
"rounds": [
{
"roundNumber": 1,
"playerNames": ["Alex Carter", "Sam Carter"],
"teeNames": ["Blue", "Junior"],
"handicapIndexes": [16.7, 30.0],
"courseHandicaps": [7, 12],
"teamPlayingHandicap": 4,
"rows": []
},
{
"roundNumber": 2,
"playerNames": ["Alex Carter", "Sam Carter"],
"teeNames": ["Blue", "Junior"],
"handicapIndexes": [16.7, 30.0],
"courseHandicaps": [7, 12],
"teamPlayingHandicap": 4,
"rows": []
}
]
}
In the example above the team receives 4 strokes in round 1 and 4 in round 2
— 8 over the 18 holes. A single round's teamPlayingHandicap is never the
event-wide number, even when both rounds happen to come to the same value.
Where the two nines split the stroke indexes unevenly, the per-round values diverge outright: 27 and 18, say, for a 45-stroke event.
When a UI shows a Tee / Index / Course Handicap / Playing Handicap block,
render it inside each round's section, from that round's values. A single
block in the card header will be read as the event's handicap, and on a
two-nines event that is wrong by half.
Field reference
Individual scorecards (playerId) carry the singular fields; team scorecards
(teamId) carry arrays with one entry per team member, aligned by index.
| Individual | Team | Meaning |
|---|---|---|
| — | playerNames | Team member's full name, labelling each entry in the other arrays |
handicapIndex | handicapIndexes | Handicap index used for the round |
courseHandicap | courseHandicaps | Course handicap, scaled to the holes played |
playingHandicap | individualPlayingHandicaps | After the competition's allowance |
| — | teamPlayingHandicap | The team's combined figure for the round |
teeName | teeNames | Tee played |
courseRating | courseRatings | Course rating of that tee |
slopeRating | slopeRatings | Slope rating of that tee |
A 9-hole round yields roughly half the corresponding 18-hole figure, because strokes are allocated over the full course and then counted over the holes actually played.
Per-hole strokes given are also on the card: the net row of each round carries
strokesGiven, an array of the strokes received on each hole. Summing it gives
that round's playing handicap.