09 — API
Course data API
The app loads approved courses through this public endpoint. No key required.
Endpoints
- GET
/api/v1/coursesAll approved venues - GET
/api/v1/courses?kind=minigolfMinigolf venues only - GET
/api/v1/courses/{id}A single venue
Responses are cached for five minutes and may be requested from any origin.
Fields
- id
- string·Course identifier (slug)
- kind
- "golf" | "minigolf"·Kind of venue
- name
- string·Name of the venue
- location
- string·Town
- holes
- number·Number of holes or lanes
- lat / lon
- number | null·Centre of the venue
- parValues
- number[]·Par per hole – empty if incomplete
- hcpValues
- number[]·Stroke index per hole
- holeLengths
- number[]·Length per hole in metres
- courseRating
- number | null·Course rating
- slopeRating
- number | null·Slope rating
- facilityNotes
- string·Facilities
- welcome
- string·Welcome text for the QR start
- teeLatitudes …
- number[]·Tee and pin coordinates per hole
- updatedAt
- string·Last change (ISO 8601)
Example response
{
"version": 1,
"generatedAt": "2026-08-30T09:12:44.000Z",
"count": 1,
"courses": [
{
"id": "golf-und-landclub-bayerwald",
"kind": "golf",
"name": "Golf- und Landclub Bayerwald",
"location": "Sankt Englmar",
"holes": 18,
"lat": 48.9906,
"lon": 12.8114,
"parValues": [4, 3, 5, "…"],
"hcpValues": [5, 11, 1, "…"],
"holeLengths": [320, 150, 480, "…"],
"courseRating": 71.4,
"slopeRating": 130,
"updatedAt": "2026-08-30T09:10:00.000Z"
}
]
}