Skip to main content

Find golf clubs

Use the clubs endpoint to discover golf clubs using text, location and access filters:

GET /v1/clubs

All protected requests require an API key:

Authorization: Bearer YOUR_API_KEY

List golf clubs

Request the first page of available clubs:

curl 'https://api.eae.golf/v1/clubs?limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept: application/json'

Search by name

Use name to search specifically within club names:

curl 'https://api.eae.golf/v1/clubs?name=Green%20Eagle&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

The name search is case-insensitive and can match partial names.

Use search for a broader text search across club name, town and postal code:

curl 'https://api.eae.golf/v1/clubs?search=Hamburg&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

Search near a place

Use near for the location behavior most people expect. The API resolves the place to coordinates and searches within 50 km by default:

curl 'https://api.eae.golf/v1/clubs?near=Hamburg&country=DE&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

Add radius_km to override the default radius. Results are ordered by distance.

Filter by exact town

Use town to filter by the postal town stored for each club:

curl 'https://api.eae.golf/v1/clubs?town=Hamburg&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

This is not a geographic search. Clubs located near Hamburg but registered in surrounding towns will not match the filter.

Filter by postal code

Use postal_code to find clubs by postal code:

curl 'https://api.eae.golf/v1/clubs?postal_code=24629&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

Postal codes are handled as strings because they may contain leading zeroes, spaces or letters.

Search by coordinates

Provide latitude, longitude and a radius to discover clubs near a geographic location:

curl 'https://api.eae.golf/v1/clubs?lat=53.5511&lon=9.9937&radius_km=50&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

The parameters are:

ParameterDescription
latLatitude of the search centre
lonLongitude of the search centre
radius_kmSearch radius in kilometres
limitMaximum number of results returned

radius_km requires near or both lat and lon.

Location-based results include the calculated distance:

{
"location": {
"distanceMeters": 32147
}
}

Filter by access characteristics

Access filters can be combined with location or text searches:

curl 'https://api.eae.golf/v1/clubs?near=Hamburg&country=DE&radius_km=100&public=true&independent_players=true&dogs=true&limit=20' \
--header 'Authorization: Bearer YOUR_API_KEY'

Common access filters include:

ParameterDescription
publicClubs with confirmed public access
independent_playersClubs that accept independent players
dogsClubs where dogs are allowed
dogs_leash_requiredClubs where dogs must remain on a leash
membership_availableClubs offering membership

Consult the API reference for the current list of supported filters.

Combine filters

Filters are combined using AND.

For example:

?near=Hamburg&country=DE&public=true

returns clubs near Hamburg whose public access is confirmed.

Do not combine town=Hamburg with near=Hamburg when the intention is to find every nearby club. The exact town filter would exclude clubs in surrounding municipalities.

Pagination

List responses use cursor-based pagination:

{
"pagination": {
"hasMore": true,
"nextCursor": "NEXT_CURSOR_VALUE"
}
}

When hasMore is true, pass nextCursor as the cursor parameter:

curl 'https://api.eae.golf/v1/clubs?limit=20&cursor=NEXT_CURSOR_VALUE' \
--header 'Authorization: Bearer YOUR_API_KEY'

Continue until hasMore is false or nextCursor is null.

Treat cursors as opaque values. Applications should not parse, modify or construct them.