{"openapi":"3.1.0","info":{"title":"F1 Penthouse Florence — Direct Booking API","description":"Direct booking API for F1 Penthouse Florence — a Ferrari-themed penthouse for up to 7 guests in central Florence. Walk to Ponte Vecchio (8 min), Uffizi (9 min), SMN station (7 min). 3 bedrooms, 3 bathrooms, 2 terraces. Rated 4.94/5 from 48 reviews. GET /api/v1/property for full details, GET /api/v1/availability for pricing, POST /api/v1/quote for total price, POST /api/v1/reservations to book.","contact":{"email":"info@f1penthouse.com"},"version":"1.0.0"},"paths":{"/":{"get":{"summary":"Homepage","operationId":"homepage__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/penthouse-florence":{"get":{"summary":"Property Page","operationId":"property_page_penthouse_florence_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/availability":{"get":{"summary":"Availability Page","operationId":"availability_page_availability_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/reviews":{"get":{"summary":"Reviews Page","operationId":"reviews_page_reviews_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/location":{"get":{"summary":"Location Page","operationId":"location_page_location_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/faq":{"get":{"summary":"Faq Page","operationId":"faq_page_faq_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/booking-policies":{"get":{"summary":"Policies Page","operationId":"policies_page_booking_policies_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/book":{"get":{"summary":"Book Page","operationId":"book_page_book_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/contact":{"get":{"summary":"Contact Page","operationId":"contact_page_contact_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api":{"get":{"summary":"Api Landing","operationId":"api_landing_api_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/mcp":{"get":{"summary":"Mcp Page","operationId":"mcp_page_mcp_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog":{"get":{"summary":"Blog Index","operationId":"blog_index_blog_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/{slug}":{"get":{"summary":"Blog Article","operationId":"blog_article_blog__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/property":{"get":{"tags":["API v1"],"summary":"Full property data","description":"Return complete property details for F1 Penthouse Florence.","operationId":"get_property_api_v1_property_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/availability":{"get":{"tags":["API v1"],"summary":"Check availability and pricing","operationId":"check_availability_api_v1_availability_get","parameters":[{"name":"check_in","in":"query","required":true,"schema":{"type":"string","description":"Check-in date YYYY-MM-DD","title":"Check In"},"description":"Check-in date YYYY-MM-DD"},{"name":"check_out","in":"query","required":true,"schema":{"type":"string","description":"Check-out date YYYY-MM-DD","title":"Check Out"},"description":"Check-out date YYYY-MM-DD"},{"name":"guests","in":"query","required":false,"schema":{"type":"integer","maximum":7,"minimum":1,"default":2,"title":"Guests"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calendar":{"get":{"tags":["API v1"],"summary":"Get calendar availability for the booking UI","operationId":"get_calendar_api_v1_calendar_get","parameters":[{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Month anchor YYYY-MM-DD","title":"Start"},"description":"Month anchor YYYY-MM-DD"},{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":18,"minimum":1,"default":12,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/quote":{"post":{"tags":["API v1"],"summary":"Get price quote","description":"Return full price breakdown for the requested dates.","operationId":"get_quote_api_v1_quote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reservations":{"post":{"tags":["API v1"],"summary":"Create reservation hold","description":"Create a reservation hold. Dates are blocked; payment link returned.","operationId":"create_reservation_api_v1_reservations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reservations/{reservation_id}":{"get":{"tags":["API v1"],"summary":"Get reservation status","operationId":"get_reservation_api_v1_reservations__reservation_id__get","parameters":[{"name":"reservation_id","in":"path","required":true,"schema":{"type":"string","title":"Reservation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/checkout-session":{"post":{"tags":["API v1"],"summary":"Create Stripe checkout session","description":"Create a Stripe checkout session for the reservation.","operationId":"create_checkout_session_api_v1_payments_checkout_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/airbnb/status":{"get":{"tags":["API v1"],"summary":"Get Airbnb sync status","description":"Return runtime status for Airbnb iCal sync and listing probe.","operationId":"get_airbnb_status_api_v1_airbnb_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"Ai Plugin","operationId":"ai_plugin__well_known_ai_plugin_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/agent-card.json":{"get":{"summary":"Agent Card","operationId":"agent_card__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/health":{"get":{"summary":"Health Check","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"CheckoutSessionCreate":{"properties":{"reservation_id":{"type":"string","title":"Reservation Id"},"success_url":{"type":"string","title":"Success Url"},"cancel_url":{"type":"string","title":"Cancel Url"}},"type":"object","required":["reservation_id","success_url","cancel_url"],"title":"CheckoutSessionCreate"},"GuestInfo":{"properties":{"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"}},"type":"object","required":["first_name","last_name","email"],"title":"GuestInfo"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"QuoteRequest":{"properties":{"check_in":{"type":"string","format":"date","title":"Check In"},"check_out":{"type":"string","format":"date","title":"Check Out"},"guests":{"type":"integer","title":"Guests","default":2},"currency":{"type":"string","title":"Currency","default":"EUR"}},"type":"object","required":["check_in","check_out"],"title":"QuoteRequest"},"ReservationCreate":{"properties":{"check_in":{"type":"string","format":"date","title":"Check In"},"check_out":{"type":"string","format":"date","title":"Check Out"},"guests":{"type":"integer","title":"Guests","default":2},"guest":{"$ref":"#/components/schemas/GuestInfo"},"special_requests":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Special Requests"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"}},"type":"object","required":["check_in","check_out","guest"],"title":"ReservationCreate"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}