Get a golf club by unique slug
GET
/v1/clubs/{slug}Returns language-neutral data with stable vocabulary codes and camelCase field names.
Tags: clubs
Authentication
Send the API key as a Bearer token in the Authorization header.
Parameters
| Parameter | In | Type | Required | Description | Constraints |
|---|---|---|---|---|---|
slug | path | string | Yes | min length: 1; max length: 200 |
Example request
curl --request GET \
--url 'https://api.eae.golf/v1/clubs/green-eagle-golf-courses' \
--header 'Authorization: Bearer YOUR_API_KEY'
Responses
200 · Default Response
application/json
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
data | object | Yes | ||
data.slug | string | No | ||
data.name | string | No | ||
data.location | object | No | ||
data.location.continent | string | No | ||
data.location.worldRegion | `string | null` | No | |
data.location.country | string | No | ||
data.location.locationSlug | string | No | ||
data.location.latitude | `number | null` | No | |
data.location.longitude | `number | null` | No | |
data.contact | object | No | ||
data.contact.completeAddress | `string | null` | No | |
data.contact.address | `string | null` | No | |
data.contact.postalCode | `string | null` | No | |
data.contact.town | `string | null` | No | |
data.contact.phone | `string | null` | No | |
data.contact.fax | `string | null` | No | |
data.contact.email | `string | null` | No | |
data.contact.websiteUrl | `string | null` | No | |
data.courseCount | integer | No | ||
data.courses | array<object> | No | ||
data.courses[].courseRef | string | No | pattern: ^course:\d+$ | |
data.courses[].name | `string | null` | No | |
data.courses[].holes | `integer | null` | No | |
data.courses[].publicAccess | `boolean | null` | No | |
data.courses[].opened | `integer | null` | No | |
data.courses[].architects | array<string> | No | ||
data.courses[].courseTypes | array<string> | No | ||
data.courses[].terrain | object | No | ||
data.courses[].terrain.elevation | string | No | ||
data.courses[].terrain.waterHazards | `boolean | null` | No | |
data.courses[].difficulty | `object | null` | No | |
data.courses[].scorecards | array<object> | No | ||
data.courses[].scorecards[].tees | array<object> | No | ||
data.courses[].scorecards[].tees[].color | `string | null` | No | |
data.courses[].scorecards[].tees[].playerCategory | `string | null` | No | |
data.courses[].scorecards[].tees[].par | `integer | null` | No | |
data.courses[].scorecards[].tees[].courseRating | `number | null` | No | |
data.courses[].scorecards[].tees[].slopeRating | `number | null` | No | |
data.courses[].scorecards[].tees[].length | `number | null` | No | |
data.courses[].scorecards[].tees[].lengthUnit | `string | null` | No | |
data.guestAccess | array<object> | No | ||
data.guestAccess[].courseIds | array<string> | No | ||
data.guestAccess[].allowed | `boolean | null` | No | |
data.guestAccess[].availability | string | No | ||
data.guestAccess[].registrationRequired | `boolean | null` | No | |
data.guestAccess[].membershipRequired | `boolean | null` | No | |
data.guestAccess[].golfProficiencyCertificateRequired | `boolean | null` | No | |
data.guestAccess[].handicap | object | No | ||
data.guestAccess[].handicap.required | `boolean | null` | No | |
data.guestAccess[].handicap.maximum | `number | null` | No | |
data.guestAccess[].handicap.proofRequired | `boolean | null` | No | |
data.guestAccess[].independentPlayersAllowed | `boolean | null` | No | |
data.etiquette | object | No | ||
data.etiquette.dogsAllowed | `boolean | null` | No | |
data.etiquette.dogsLeashRequired | `boolean | null` | No | |
data.etiquette.gpsDevicesAllowed | `boolean | null` | No | |
data.etiquette.softSpikesRequired | `boolean | null` | No | |
data.greenFees | object | No | ||
data.greenFees.minimum | `number | null` | No | |
data.greenFees.maximum | `number | null` | No | |
data.greenFees.currencies | array<string> | No | ||
data.greenFees.details | array<object> | No | ||
data.greenFees.details[].courseIds | array<string> | No | ||
data.greenFees.details[].holes | `integer | null` | No | |
data.greenFees.details[].prices | array<object> | No | ||
data.greenFees.details[].prices[].period | `string | null` | No | |
data.greenFees.details[].prices[].amount | `number | null` | No | |
data.greenFees.details[].prices[].currency | `string | null` | No | |
data.greenFees.discounts | array<object> | No | ||
data.greenFees.discounts[].courseIds | array<string> | No | ||
data.greenFees.discounts[].percentage | `number | null` | No | |
data.greenFees.discounts[].eligibility | array<object> | No | ||
data.greenFees.discounts[].eligibility[].group | string | No | ||
data.greenFees.discounts[].eligibility[].maximumAge | `integer | null` | No | |
data.practiceFees | array<object> | No | ||
data.practiceFees[].courseIds | array<string> | No | ||
data.practiceFees[].facility | `string | null` | No | |
data.practiceFees[].type | `string | null` | No | |
data.practiceFees[].quantity | `number | null` | No | |
data.practiceFees[].quantityUnit | `string | null` | No | |
data.practiceFees[].holes | `integer | null` | No | |
data.practiceFees[].prices | array<object> | No | ||
data.practiceFees[].prices[].period | `string | null` | No | |
data.practiceFees[].prices[].amount | `number | null` | No | |
data.practiceFees[].prices[].currency | `string | null` | No | |
data.practiceFacilities | array<string> | No | ||
data.amenities | object | No | ||
data.amenities.clubFacilities | array<string> | No | ||
data.amenities.paymentMethods | array<string> | No | ||
data.amenities.rentalEquipment | array<string> | No | ||
data.amenities.services | array<string> | No | ||
meta | object | Yes | ||
meta.apiVersion | string | No | allowed: v1 | |
meta.plan | string | No | allowed: fairway, tour | |
meta.accessStatus | string | No | allowed: trial, active, suspended | |
meta.dataAccess | string | No | allowed: core, extended | |
meta.trialEndsAt | `string | null` | No | |
meta.catalogue | `object | object` | No |
Example
{
"data": {
"slug": "string",
"name": "string",
"location": {
"continent": "string",
"worldRegion": "string",
"country": "string",
"locationSlug": "string",
"latitude": 0,
"longitude": 0
},
"contact": {
"completeAddress": "string",
"address": "string",
"postalCode": "string",
"town": "string",
"phone": "string",
"fax": "string",
"email": "string",
"websiteUrl": "string"
},
"courseCount": 0,
"courses": [
{
"courseRef": "course:0",
"name": "string",
"holes": 0,
"publicAccess": true,
"opened": 0,
"architects": [
"string"
],
"courseTypes": [
"string"
],
"terrain": {
"elevation": "slightly_hilly",
"waterHazards": null
},
"difficulty": {
"classification": "difficult",
"level": null,
"maximumLevel": null
},
"scorecards": [
{
"tees": null
}
]
}
],
"guestAccess": [
{
"courseIds": [
"string"
],
"allowed": true,
"availability": "anytime",
"registrationRequired": true,
"membershipRequired": true,
"golfProficiencyCertificateRequired": true,
"handicap": {
"required": null,
"maximum": null,
"proofRequired": null
},
"independentPlayersAllowed": true
}
],
"etiquette": {
"dogsAllowed": true,
"dogsLeashRequired": true,
"gpsDevicesAllowed": true,
"softSpikesRequired": true
},
"greenFees": {
"minimum": 0,
"maximum": 0,
"currencies": [
"string"
],
"details": [
{
"courseIds": [
null
],
"holes": null,
"prices": [
null
]
}
],
"discounts": [
{
"courseIds": [
null
],
"percentage": null,
"eligibility": [
null
]
}
]
},
"practiceFees": [
{
"courseIds": [
"string"
],
"facility": "string",
"type": "string",
"quantity": 0,
"quantityUnit": "string",
"holes": 0,
"prices": [
{
"period": null,
"amount": null,
"currency": null
}
]
}
],
"practiceFacilities": [
"putting_green"
],
"amenities": {
"clubFacilities": [
"clubhouse"
],
"paymentMethods": [
"credit_card"
],
"rentalEquipment": [
"rental_clubs"
],
"services": [
"golf_lessons"
]
}
},
"meta": {
"apiVersion": "v1",
"plan": "fairway",
"accessStatus": "trial",
"dataAccess": "core",
"trialEndsAt": "2026-08-20T12:00:00Z",
"catalogue": {
"mode": "full"
}
}
}
401 · Default Response
application/json
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
statusCode | integer | Yes | ||
error | string | Yes | ||
code | string | No | ||
message | string | Yes | ||
requestId | string | Yes |
Example
{
"statusCode": 0,
"error": "string",
"code": "trial_expired",
"message": "string",
"requestId": "req-7f3a2c"
}
404 · Default Response
application/json
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
statusCode | integer | Yes | ||
error | string | Yes | ||
code | string | No | ||
message | string | Yes | ||
requestId | string | Yes |
Example
{
"statusCode": 0,
"error": "string",
"code": "trial_expired",
"message": "string",
"requestId": "req-7f3a2c"
}
429 · Default Response
application/json
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
statusCode | integer | Yes | ||
error | string | Yes | ||
code | string | No | ||
message | string | Yes | ||
requestId | string | Yes |
Example
{
"statusCode": 0,
"error": "string",
"code": "trial_expired",
"message": "string",
"requestId": "req-7f3a2c"
}