OpenGolfMap is a self-hostable API that turns OpenStreetMap golf-course data into SVG, PNG, JSON, and ZIP graphics for apps, carts, Raspberry Pi displays, and other golf projects.
I was surprised—and eventually tired—of finding golf-course maps hidden behind expensive APIs and closed services. OpenGolfMap is the small, open alternative: run it yourself, own the integration, and build on OpenStreetMap data.
It is part of OpenCaddie.
Live project demo · GitHub · Releases
Requires Node.js 22+.
npm install
npm run dev
# http://localhost:3000Or run a production-like local instance:
docker compose up --build -d
curl http://localhost:3000/api/v1/healthSearch for a course in the web app, or ask the API to make a reusable graphic:
curl -X POST http://localhost:3000/api/v1/graphics \
-H "Content-Type: application/json" \
-d '{
"course": "Augusta National Golf Club",
"fileType": "png",
"scope": "hole",
"hole": 1,
"width": 480
}' \
-o hole-1.pngThe API docs are available at /docs, and
GET /api/v1/courses/:slug/quality reports which holes have the green, tee,
fairway, and play-line data needed for a dependable result.
The project demo is a static overview
with examples rendered by OpenGolfMap. It deploys from main when website/
changes. The importer, API, and storage need the self-hosted Node service.
Code and original assets are Apache-2.0; see LICENSE. Course data comes from OpenStreetMap and is subject to the ODbL attribution requirements. Please credit OpenStreetMap when you display rendered maps.
See CONTRIBUTING.md to help improve the renderer or course data workflow.