Search for golf tee times and deals near any location. Find cheapest rounds, compare prices across platforms, and get discount tips. Use when asked about golf, tee times, courses, or booking a round.
Find and compare golf tee times using the GolfNow API (reverse-engineered). Works for any location.
The GolfNow website uses a POST API to fetch tee times. This is the only reliable method — web_fetch returns empty shells (JS-rendered SPA).
POST https://www.golfnow.com/api/tee-times/tee-time-results
Content-Type: application/json
Accept: application/json
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
Origin: https://www.golfnow.com
Requires a FacilityId. Returns all tee times for that course on a given date.
{
"Radius": 50,
"Latitude": 26.1224,
"Longitude": -80.1373,
"PageSize": 50,
"PageNumber": 0,
"SearchType": 1,
"SortBy": "Date",
"SortDirection": 0,
"Date": "Feb 16 2026",
"BestDealsOnly": false,
"PriceMin": "0",
"PriceMax": "10000",
"Players": "2",
"Holes": "3",
"FacilityType": 0,
"RateType": "all",
"TimeMin": "10",
"TimeMax": "42",
"FacilityId": 5744,
"SortByRollup": "Date.MinDate",
"View": "Grouping",
"ExcludeFeaturedFacilities": true,
"TeeTimeCount": 50,
"PromotedCampaignsOnly": "false",
"CurrentClientDate": "2026-02-16T05:00:00.000Z"
}
Returns 0 results without a FacilityId. The API requires facility-specific queries.
| Param | Values | Notes |
|---|---|---|
Players | "1"-"4" | String, not int |
Holes | "1"=9h, "2"=18h, "3"=any | String |
TimeMin/TimeMax | 10-42 | Maps to time ranges. 10=5AM, 42=9PM+ |
Date | "Feb 16 2026" | Human-readable format |
FacilityType | 0=any, 1=course, 2=simulator | |
BestDealsOnly | true/false | Hot deals filter (but returns 0 for area search) |
SearchType | 1 | Must be 1 (facility). 0/2/3 don't work |
ttResults.teeTimes[] → array of tee time groups
├── formattedTime: "7:18"
├── formattedTimeMeridian: "AM"
├── time: "2026-02-16T07:18:00" (ISO timestamp)
├── displayRate: 35.0 (price per player)
├── multipleHolesRate: 18 (hole count)
├── maxPriceTransactionFee: 2.99
├── facility.name, facility.address.city, facility.averageRating, facility.reviewCount
├── facility.seoFriendlyName (for building URLs)
├── facility.latitude, facility.longitude
└── teeTimeRates[] → rate options for this time slot
├── rateName: "Prepaid - Online Rate" / "Hot Deal" / "Twilight" / etc.
├── isHotDeal: true/false 🔥
├── isTradeOffer: true/false 💳 (credit-bookable)
├── isCartIncluded: true/false
├── singlePlayerPrice.greensFees.value: 35.0
└── rateSetTypeId: 1=prepaid, other=pay at course