{"schemaVersion":"0.1.0","name":"GolfKit Booking API","description":"Discover golf venues, read tee-time availability and prices, and build a prefilled handoff link for the customer to complete the booking on the venue's storefront. Read + quote only — no machine booking creation or payment.","provider":{"organization":"GolfKit"},"url":"https://book.golfkit.io/integrations","documentationUrl":"https://book.golfkit.io/openapi.json","authentication":{"schemes":["bearer"],"credentialIssuance":"https://book.golfkit.io/public-api/keys","scopes":[{"scope":"directory:read","description":"List and look up the platform venues that have opted into the public API, matched by name or slug, returning the org id the availability and quote calls need. Lists only live, opted-in tenants (never paused shadow-blocked, or non-participating venues); returns only public venue metadata already on the tenant record — no customer data."},{"scope":"availability:read","description":"Read-only, cache-backed access to a venue's availability through the public API (/integrations/availability, /teetimes, /changes, /catalog): day summaries, slot-level tee times with resolved public prices, availability deltas, and the course/player-type/product catalog. Never triggers a live provider call; never exposes member pricing or customer data."},{"scope":"bookings:quote","description":"Produce a server-authoritative price quote for a slot and assemble a prefilled handoff link that lands the customer on the venue's storefront at the final payment/confirm step. Read-and-assemble only: this scope never creates, pays for, or cancels a booking — completion always happens on the storefront. Public rates only (no member assertion)."}]},"capabilities":["dev.golfkit.booking.discovery","dev.golfkit.booking.quote"],"skills":[{"id":"find_venues","name":"Find venues","description":"List and search bookable venues by name/slug or by place (lat/lng + optional radiusKm, or region/country); returns the org id and, when published, coarse location + coordinates.","endpoint":{"method":"GET","path":"/integrations/directory/venues"}},{"id":"search_venues","name":"Search venues by date and place","description":"Find venues with availability on a date (or date range) across the platform, filtered by place (lat/lng + radiusKm, or region/country) and ranked by distance or open slots. Cache-backed day-level availability; drill into a venue with get_tee_times for slot prices.","endpoint":{"method":"GET","path":"/integrations/search"}},{"id":"get_availability","name":"Get availability","description":"Day-level availability summaries for a venue over a date range.","endpoint":{"method":"GET","path":"/integrations/availability/{orgId}"}},{"id":"get_tee_times","name":"Get tee times","description":"Slot-level tee times with real prices for a venue on a date.","endpoint":{"method":"GET","path":"/integrations/teetimes/{orgId}/{date}"}},{"id":"quote_booking","name":"Quote booking","description":"Server-authoritative price for a slot + players (public rates).","endpoint":{"method":"POST","path":"/integrations/bookings/{orgId}/quote"}},{"id":"get_handoff_link","name":"Get handoff link","description":"Prefilled storefront URL for the customer to complete the booking.","endpoint":{"method":"GET","path":"/integrations/bookings/{orgId}/handoff-link"}}]}