{"openapi":"3.1.0","info":{"title":"Hotel Am Lindenberg Booking API","version":"1.0.0","description":"Read room types, check availability and pricing, and create bookings. Machine-readable contract for script-based agents; see \/llms.txt and \/.well-known\/mcp-server for an equivalent MCP server."},"servers":[{"url":"https:\/\/fixed.kvinz.com"}],"paths":{"\/api\/rooms":{"get":{"operationId":"listRooms","summary":"List all room types","responses":{"200":{"description":"OK","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RoomList"}}}}}}},"\/api\/availability":{"get":{"operationId":"checkAvailability","summary":"Check availability and price for every room type over a date range","parameters":[{"name":"checkIn","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"checkOut","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"guests","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":5,"default":1}}],"responses":{"200":{"description":"OK","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AvailabilityList"}}}},"400":{"description":"Invalid input","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/api\/price":{"get":{"operationId":"getPrice","summary":"Get the price for one room type over a date range","parameters":[{"name":"roomTypeId","in":"query","required":true,"schema":{"type":"string"}},{"name":"checkIn","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"checkOut","in":"query","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"OK","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Price"}}}},"400":{"description":"Invalid input","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/api\/bookings":{"post":{"operationId":"createBooking","summary":"Create a booking for one room type over a date range","requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["roomTypeId","checkIn","checkOut","guests","guestName","email"],"properties":{"roomTypeId":{"type":"string"},"checkIn":{"type":"string","format":"date"},"checkOut":{"type":"string","format":"date"},"guests":{"type":"integer","minimum":1,"maximum":5},"guestName":{"type":"string"},"email":{"type":"string","format":"email"}}}}}},"responses":{"201":{"description":"Booking created","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Booking"}}}},"400":{"description":"Invalid input or sold out","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}}},"components":{"schemas":{"RoomList":{"type":"object","properties":{"rooms":{"type":"array","items":{"type":"object"}}}},"AvailabilityList":{"type":"object","properties":{"rooms":{"type":"array","items":{"type":"object"}}}},"Price":{"type":"object","properties":{"roomTypeId":{"type":"string"},"totalPrice":{"type":"number"},"currency":{"type":"string"}}},"Booking":{"type":"object","properties":{"bookingId":{"type":"string"},"status":{"type":"string"}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}