{"openapi":"3.1.0","info":{"title":"Blowing Rock Cabin public API","version":"1.0.0","description":"Read-only facts, availability, and quotes for Blowing Rock Cabin, a whole-house rental in Headwaters near Blowing Rock, NC. No authentication. Availability and quotes are cached 15 minutes.","contact":{"email":"TODO@blowingrockcabin.com","url":"https://blowingrockcabin.com/for-agents"}},"servers":[{"url":"https://blowingrockcabin.com"}],"paths":{"/api/property.json":{"get":{"operationId":"getProperty","summary":"All property facts","responses":{"200":{"description":"Property facts","content":{"application/json":{}}}}}},"/api/availability.json":{"get":{"operationId":"checkAvailability","summary":"Whether a date range is open","parameters":[{"name":"start","in":"query","required":true,"description":"First night, YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-15"}},{"name":"end","in":"query","required":true,"description":"Day after the last night (check-out), YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-18"}}],"responses":{"200":{"description":"Availability and blocked ranges","content":{"application/json":{}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/quote.json":{"get":{"operationId":"getQuote","summary":"Price a stay from the published rates","parameters":[{"name":"checkin","in":"query","required":true,"description":"Check-in date, YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-15"}},{"name":"checkout","in":"query","required":true,"description":"Check-out date, YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-18"}},{"name":"guests","in":"query","required":false,"description":"Number of guests.","schema":{"type":"integer","minimum":1,"maximum":14}}],"responses":{"200":{"description":"Nightly breakdown, fees, taxes, total","content":{"application/json":{}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/book":{"get":{"operationId":"openBooking","summary":"Redirect a guest to the booking widget with dates filled in","parameters":[{"name":"checkin","in":"query","required":false,"description":"Check-in date, YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-15"}},{"name":"checkout","in":"query","required":false,"description":"Check-out date, YYYY-MM-DD.","schema":{"type":"string","format":"date","example":"2027-10-18"}},{"name":"guests","in":"query","required":false,"description":"Number of guests.","schema":{"type":"integer","minimum":1,"maximum":14}}],"responses":{"307":{"description":"Redirect to /rates#check-dates"}}}},"/calendar.ics":{"get":{"operationId":"getCalendar","summary":"Booked dates as iCal","responses":{"200":{"description":"iCal","content":{"text/calendar":{}}}}}},"/feed/availability.xml":{"get":{"operationId":"getFeed","summary":"Openings and rate changes","responses":{"200":{"description":"Atom feed","content":{"application/atom+xml":{}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}