Proposal:Golf course extended

From OpenStreetMap Wiki
Jump to navigation Jump to search
Extended Golf Course Schema
Proposal status: Draft (under way)
Proposed by: Opengolfapi
Tagging: golf:*=*
Draft started: 2026-04-07

Proposal

Extend the existing leisure=golf_course tagging with structured golf-specific attributes that enable richer mapping and querying of golf courses worldwide.

Rationale

Currently, OSM's golf course tagging is limited to:

  • leisure=golf_course on the area/relation
  • golf=* for sub-features (hole, tee, green, bunker, fairway, water_hazard)
  • par=* and ref=* on individual holes (rarely used)

There is no standard way to tag:

  • Course-level par total
  • Course access type (public vs private)
  • Number of holes
  • Per-hole par values on the course feature itself

This proposal adds a small set of golf:* tags to address these gaps.

Proposed Tags

On leisure=golf_course features

Tag Value Description
golf:holes integer Number of holes (9, 18, 27, 36)
golf:par integer Total course par
golf:type enum (see below) Access/ownership type
golf:hole:N:par integer Par for hole N (1-18)

golf:type values

Value Description
public Open to the public
private Members only
municipal Government owned, open to public
resort Resort-attached, open to guests and public
military Military installation, restricted
par3 Par-3 or executive course

Existing tags used (no changes)

Tag Notes
name=* Course name
phone=* Phone number
website=* Website URL
start_date=* Year course opened
operator=* Management company
addr:* Address tags

Examples

Minimal tagging (what most courses have today)

leisure=golf_course
name=Pebble Beach Golf Links

With proposed tags

leisure=golf_course
name=Pebble Beach Golf Links
golf:holes=18
golf:par=72
golf:type=resort
phone=+1 831 622 8723
website=https://pebblebeach.com
start_date=1919
source=OpenGolf

With per-hole par (optional)

golf:hole:1:par=4
golf:hole:2:par=5
golf:hole:3:par=4
...
golf:hole:18:par=5

Justification

Why golf:type instead of access=*?

The access tag in OSM describes legal access rights. Golf course access is more nuanced — a "private" course may allow public play on certain days, a "resort" course requires being a hotel guest but not a member. golf:type captures the golf-specific access model without conflicting with the general access tag.

Why golf:hole:N:par on the course feature?

Many OSM golf courses are mapped as a single way or node, not as detailed relations with individual hole features. Putting per-hole par on the course feature ensures the data is available even without detailed sub-feature mapping. This is analogous to how building:levels exists on building outlines even when individual floors aren't mapped.

Why not just use par=* on hole sub-features?

That approach works when courses are fully mapped with individual hole relations, but fewer than 1% of OSM golf courses have this level of detail. Adding course-level hole pars makes the data immediately useful for the other 99%.

Data Source

OpenGolfAPI has prepared a dataset of 15,667 US golf courses with these tags, available for import under ODbL. See the companion import proposal for details.

Backwards Compatibility

All proposed tags are new golf:* namespace tags. No existing tags are modified or deprecated. Existing leisure=golf_course features continue to work unchanged.

Features/Pages affected

External discussions

Comments

Please comment on the discussion page.

Voting

This proposal will be submitted for community vote after the RFC period.