Zentrale Stammdaten für eingebettete Golfplatz-Rechner (Handicap + Scramble). Reine Daten, keine Berechnung. CORS offen (von jeder Domain abrufbar). Antworten 5 Min gecacht.
https://handicap.report/api/v1/courses.php
?id=<platz-id> — vollständige Platzdaten (Tees + Loch-Par/Stroke-Index)(ohne Parameter) — Index aller Plätze (leichtgewichtig: id, club, ort, bundesland, holeCount, hasHoles)?q=<text> — Suche in Clubname/Ort · ?bundesland=NRW — Filter · ?scramble — nur Plätze mit Stroke-IndexGET /api/v1/courses.php?id=golfclub-niep-neukirchen-vluyn-18
{
"id": "golfclub-niep-neukirchen-vluyn-18",
"club": "Golfclub Niep", "ort": "Neukirchen-Vluyn", "bundesland": "NRW",
"holeCount": 18, "courseName": "18-Loch-Meisterschaftsplatz",
"tees": [
{ "name": "Gelb", "gender": "M", "cr": 73.6, "slope": 138, "par": 75, "unsicher": false },
{ "name": "Rot", "gender": "F", "cr": 75.6, "slope": 132, "par": 75, "unsicher": false }
],
"holes": [ { "number": 1, "par": 4, "strokeIndex": 3 }, ... ] // null, wenn kein Stroke-Index vorhanden
}
| Feld | Bedeutung |
|---|---|
tees[] | je Abschlagbox × Geschlecht: name, gender (M/F), cr, slope, par, unsicher (Quelle ungeprüft) |
holes[] | je Loch: number, par, strokeIndex (1..N, eindeutig). null = kein Stroke-Index (Scramble nicht möglich, Handicap-Rechner ok). |
Einmal pro Platz die id referenzieren, Antwort cachen, bei Nicht-Erreichbarkeit auf eine eingebettete Fallback-Config zurückfallen. Rechenlogik bleibt clientseitig.
const r = await fetch("https://handicap.report/api/v1/courses.php?id=" + courseId);
const course = await r.json(); // → tees + holes für die Rechner
Stand: 2026-06-18 · handicap.report