Tee Times
TeeTime availability
List Tee Times
GET /api/v5/teetimes/{facilityId}/{courseId}
-
Path Parameters
- facilityId:
e.g. 2
(Integer, required) - ID of the facility - courseId:
e.g. 7
(Integer, required) - ID of the course
- facilityId:
-
Query Parameters
- bookingDate:
e.g. 19-03-2023
(string, required) - Date - players:
e.g. 4
(Integer, required) - Number of free slots required (between 1 and 4) - holes:
e.g. 9
(Integer, required) - Number of holes (9 or 18)
- bookingDate:
This can be done with a curl command like so :
$curl -X GET -H 'Content-Type:application/json' --user [[username]]:[[password]] '[[base-url]]/api/v5/teetimes/2/7/?bookingDate=19-03-2023&players=4&holes=18'
- Successful Response (application/json)
{ "success": true, "data": { "teeTimeV3": [ { "teeid": 38766, "time": "2023-03-19T09:00:00", "course": "18 holes", "holes": 18, "extraProducts": [ { "mid": 274, "name": "New Extra Transfer Product", "category": "Transfer", "price": { "amount": 15, "currency": "EUR" }, "netRate": { "amount": 15, "currency": "EUR" }, "publicRate": { "amount": 20, "currency": "EUR" } }, { "mid": 259, "name": "buggy trail 2", "category": "Buggy", "price": { "amount": 11.5, "currency": "EUR" }, "netRate": { "amount": 10, "currency": "EUR" }, "publicRate": { "amount": 100, "currency": "EUR" } } ], "products": [ { "mid": 42, "name": "multiple-rate", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 50, "currency": "EUR" }, "netRate": { "amount": 45, "currency": "EUR" }, "publicRate": { "amount": 50, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 110, "currency": "EUR" }, "netRate": { "amount": 99, "currency": "EUR" }, "publicRate": { "amount": 110, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 180, "currency": "EUR" }, "netRate": { "amount": 162, "currency": "EUR" }, "publicRate": { "amount": 180, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 260, "currency": "EUR" }, "netRate": { "amount": 234, "currency": "EUR" }, "publicRate": { "amount": 260, "currency": "EUR" } } ], "players": null, "linkedProducts": [] }, { "mid": 39, "name": "p3", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 45, "currency": "EUR" }, "netRate": { "amount": 40.5, "currency": "EUR" }, "publicRate": { "amount": 45, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 100, "currency": "EUR" }, "netRate": { "amount": 90, "currency": "EUR" }, "publicRate": { "amount": 100, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 165, "currency": "EUR" }, "netRate": { "amount": 148.5, "currency": "EUR" }, "publicRate": { "amount": 165, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 240, "currency": "EUR" }, "netRate": { "amount": 216, "currency": "EUR" }, "publicRate": { "amount": 240, "currency": "EUR" } } ], "players": null, "linkedProducts": [] } ] } ], "facilityCancellationPolicyRange": [ { "minimumPlayer": 1, "maximumPlayer": 4, "timePeriod": 24 } ] } }
The cancellation policy is defined by the facility in the booking rule under the agreement policy. Channels can access and view the applicable cancellation policy in the tee time response under the heading facilityCancellationPolicyRange.
Below is a sample representation of the cancellation policy:
"facilityCancellationPolicyRange": [
{
"minimumPlayer": 1,
"maximumPlayer": 4,
"timePeriod": 48
},
{
"minimumPlayer": 5,
"maximumPlayer": 10,
"timePeriod": 24
}
]
Explanation:
TimePeriod: The time period is expressed in hours.
Example:
For bookings made for 1 to 4 players, cancellations are allowed up to 48 hours before the tee time.
For bookings made for 5 to 10 players, cancellations are allowed up to 24 hours before the tee time.
Note: If a cancellation request is made in violation of the cancellation policy, the request will be denied.
List Tee Times for Multiple Facilities over a specified Date Range
To receive the data, please provide the callback url on which Zest System will Post the data.
GET /api/v5/teetimes
- Query Parameters
- facilityIds:
e.g. 7,2,15
(String, required) - List of Facility Ids - fromDate:
e.g. 19-03-2025
(String, required) - Start Date of Date Range - toDate:
e.g. 27-03-2025
(String, required) - End Date of Date Range - players:
e.g. 4
(Integer, required) - Number of free slots required (between 1 and 4) - holes:
e.g. 9
(Integer, required) - Number of holes (9 or 18) - callbackUrl:
e.g. https://www.anycallbackurl
(String, required) - CallBack Url
- facilityIds:
This can be done with a curl command like so :
$curl -X GET -H 'Content-Type:application/json' --user [[username]]:[[password]] '[[base-url]]/api/v5/teetimes?facilityIds=7,2,15&fromDate=2025-03-19&toDate=2025-03-27&callbackUrl=https://www.anycallbackurl&players=1&holes=18'
Zest immediately returns the success response as follows.
- Successful Response (application/json)
{
"success": true,
"data": null
}
In the background, Zest process the request and will send the response payload using Post Request on the callback url.
- Response Payload (application/json)
{ "success": true, "data": [ { "facilityId": 2, "teeTimeV3": [ { "teeid": 38766, "time": "2023-03-19T09:00:00", "course": "18 holes", "holes": 18, "extraProducts": [ { "mid": 274, "name": "Transfer Product", "category": "Transfer", "price": { "amount": 15, "currency": "EUR" }, "netRate": { "amount": 15, "currency": "EUR" }, "publicRate": { "amount": 20, "currency": "EUR" } }, { "mid": 259, "name": "buggy cart", "category": "Buggy", "price": { "amount": 12, "currency": "EUR" }, "netRate": { "amount": 10, "currency": "EUR" }, "publicRate": { "amount": 12, "currency": "EUR" } } ], "products": [ { "mid": 42, "name": "GF 18H", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 50, "currency": "EUR" }, "netRate": { "amount": 45, "currency": "EUR" }, "publicRate": { "amount": 50, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 110, "currency": "EUR" }, "netRate": { "amount": 99, "currency": "EUR" }, "publicRate": { "amount": 110, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 180, "currency": "EUR" }, "netRate": { "amount": 162, "currency": "EUR" }, "publicRate": { "amount": 180, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 260, "currency": "EUR" }, "netRate": { "amount": 234, "currency": "EUR" }, "publicRate": { "amount": 260, "currency": "EUR" } } ], "players": null, "linkedProducts": [] }, { "mid": 49, "name": "Hotel GF 18H", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 45, "currency": "EUR" }, "netRate": { "amount": 40.5, "currency": "EUR" }, "publicRate": { "amount": 45, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 100, "currency": "EUR" }, "netRate": { "amount": 90, "currency": "EUR" }, "publicRate": { "amount": 100, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 165, "currency": "EUR" }, "netRate": { "amount": 148.5, "currency": "EUR" }, "publicRate": { "amount": 165, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 240, "currency": "EUR" }, "netRate": { "amount": 216, "currency": "EUR" }, "publicRate": { "amount": 240, "currency": "EUR" } } ], "players": null, "linkedProducts": [] } ] } ] }, { "facilityId": 7, "teeTimeV3": [ { "teeid": 38766, "time": "2023-03-26T12:00:00", "course": "TEE 1", "holes": 18, "extraProducts": [ { "mid": 529, "name": "Extra Transfer", "category": "Transfer", "price": { "amount": 8, "currency": "EUR" }, "netRate": { "amount": 8, "currency": "EUR" }, "publicRate": { "amount": 10, "currency": "EUR" } }, { "mid": 541, "name": "buggy for two", "category": "Buggy", "price": { "amount": 20, "currency": "EUR" }, "netRate": { "amount": 15, "currency": "EUR" }, "publicRate": { "amount": 20, "currency": "EUR" } } ], "products": [ { "mid": 21, "name": "18 Hol", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 100, "currency": "EUR" }, "netRate": { "amount": 90, "currency": "EUR" }, "publicRate": { "amount": 100, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 180, "currency": "EUR" }, "netRate": { "amount": 160, "currency": "EUR" }, "publicRate": { "amount": 180, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 250, "currency": "EUR" }, "netRate": { "amount": 220, "currency": "EUR" }, "publicRate": { "amount": 250, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 300, "currency": "EUR" }, "netRate": { "amount": 260, "currency": "EUR" }, "publicRate": { "amount": 300, "currency": "EUR" } } ], "players": null, "linkedProducts": [] }, { "mid": 39, "name": "18 Hol Junior", "category": "Greenfee", "available": 4, "pricing": [ { "quantity": 1, "price": { "amount": 45, "currency": "EUR" }, "netRate": { "amount": 40.5, "currency": "EUR" }, "publicRate": { "amount": 45, "currency": "EUR" } }, { "quantity": 2, "price": { "amount": 100, "currency": "EUR" }, "netRate": { "amount": 90, "currency": "EUR" }, "publicRate": { "amount": 100, "currency": "EUR" } }, { "quantity": 3, "price": { "amount": 165, "currency": "EUR" }, "netRate": { "amount": 148.5, "currency": "EUR" }, "publicRate": { "amount": 165, "currency": "EUR" } }, { "quantity": 4, "price": { "amount": 240, "currency": "EUR" }, "netRate": { "amount": 216, "currency": "EUR" }, "publicRate": { "amount": 240, "currency": "EUR" } } ], "players": null, "linkedProducts": [] } ] } ] } ] }