{"openapi":"3.1.0","info":{"title":"Hostwise — Public API","version":"1.0.0","description":"Read/write access to a single hotel’s bookings, availability, and rates. Each hotel is a separate tenant — an API key only ever sees that hotel’s own data.","contact":{"email":"raj@aihotel.agency"}},"servers":[{"url":"https://ai-hotel-agency.vercel.app"}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/public/bookings":{"get":{"summary":"List bookings","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}},{"name":"status","in":"query","schema":{"type":"string"},"description":"e.g. confirmed, checked_in, cancelled"}],"responses":{"200":{"description":"Bookings list"},"401":{"description":"Invalid or missing API key"}}},"post":{"summary":"Create a booking","description":"Requires an API key with write permission. Rejects overlapping-date conflicts with 409.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["guest_name","room_number","check_in","check_out"],"properties":{"guest_name":{"type":"string"},"room_number":{"type":"string"},"check_in":{"type":"string","format":"date"},"check_out":{"type":"string","format":"date"},"phone":{"type":"string"},"amount":{"type":"number"},"source":{"type":"string"},"notes":{"type":"string"}}}}}},"responses":{"201":{"description":"Booking created"},"403":{"description":"Write permission required"},"409":{"description":"Room not available for selected dates"}}}},"/api/public/availability":{"get":{"summary":"Check room availability + rates for a date range","parameters":[{"name":"check_in","in":"query","required":true,"schema":{"type":"string","format":"date"}},{"name":"check_out","in":"query","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Available rooms with rate plans"}}}},"/api/public/rates":{"get":{"summary":"Get active rate plans and room types","responses":{"200":{"description":"Rate plans + room types"}}}},"/api/widget/{hotelId}":{"get":{"summary":"Get public hotel info (name, location, room types) — no API key","security":[],"parameters":[{"name":"hotelId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hotel name, city, state, room types"}}},"post":{"summary":"Create a booking from the embeddable widget — no API key","security":[],"parameters":[{"name":"hotelId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["guest_name","check_in","check_out"],"properties":{"guest_name":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"room_type_id":{"type":"string"},"check_in":{"type":"string","format":"date"},"check_out":{"type":"string","format":"date"}}}}}},"responses":{"201":{"description":"bookingId, nights, amount"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Hotel API key (format hapi_*). Generate one from Dashboard → System → API Keys."}}},"x-mcp-server":"https://ai-hotel-agency.vercel.app/.well-known/mcp.json","x-agent-skills":"https://ai-hotel-agency.vercel.app/.well-known/agent-skills.json"}