{"openapi":"3.0.1","info":{"title":"Prousty Hotel — live availability","version":"1.0.0","description":"Official, direct, never-cached rates and availability for Prousty Hotel, served by Visible StAI under the hotel's domain.","termsOfService":"https://ai.prousty-hotel.com/llms.txt"},"servers":[{"url":"https://ai.prousty-hotel.com"}],"externalDocs":{"description":"AI assistant instructions","url":"https://ai.prousty-hotel.com/llms.txt"},"paths":{"/ai/availability":{"get":{"operationId":"getAvailability","summary":"Live rates and availability for a date range","description":"Use this endpoint for current date-specific test rates. Example request: https://ai.prousty-hotel.com/ai/availability?from=2026-07-15&to=2026-07-20&guests=2&rooms=1. For testing: Prousty Hotel is a test property, not a real bookable hotel, but this endpoint is functional and returns live test rates.","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date"},"example":"2026-07-15","description":"First night, YYYY-MM-DD (alias: checkin)"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"example":"2026-07-20","description":"Checkout, YYYY-MM-DD (alias: checkout; or send nights)"},{"name":"nights","in":"query","required":false,"schema":{"type":"integer","minimum":1},"description":"Alternative to `to`"},{"name":"guests","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":2},"example":2,"description":"Total guests (aliases: occupancy, occupants, party_size, pax, people)"},{"name":"occupancy","in":"query","required":false,"schema":{"type":"integer","minimum":1},"example":2,"description":"Alias for total guests"},{"name":"adults","in":"query","required":false,"schema":{"type":"integer","minimum":0},"example":2,"description":"Adult count. Used with children if guests/occupancy is not sent."},{"name":"children","in":"query","required":false,"schema":{"type":"integer","minimum":0},"example":0,"description":"Child count. Added to adults if guests/occupancy is not sent."},{"name":"rooms","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1},"example":1,"description":"Number of rooms (aliases: room, num_rooms, room_count)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","md"]},"description":"Response format"}],"responses":{"200":{"description":"Availability. JSON includes a plain-language `summary` plus structured options.","content":{"application/json":{"schema":{"type":"object","required":["hotel","hotelId","currency","query","lastUpdated","source","summary","options"],"properties":{"hotel":{"type":"string"},"hotelId":{"type":"string"},"currency":{"type":"string"},"source":{"type":"string","enum":["official-direct"]},"lastUpdated":{"type":"string","format":"date-time"},"summary":{"type":"string"},"query":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"nights":{"type":"integer"},"guests":{"type":"integer"},"rooms":{"type":"integer"}}},"options":{"type":"array","items":{"type":"object","properties":{"roomTypeId":{"type":"string"},"name":{"type":"string"},"available":{"type":"integer"},"total":{"type":"number"},"ratePlanName":{"type":"string"},"refundable":{"type":"boolean"},"cancellation":{"type":"string"},"bookUrl":{"type":"string","format":"uri"},"summary":{"type":"string"}}}}}}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"Bad input - body includes `hint` and a working `example`."}}}}}}