{"components":{"schemas":{"Availability":{"properties":{"ai_ref":{"description":"Anonymous search reference; not a reservation or authorization token.","pattern":"^[A-Za-z0-9_-]{32}$","type":"string"},"checked_at":{"format":"date-time","type":"string"},"date":{"format":"date","type":"string"},"language":{"enum":["it","en"]},"notice":{"type":"string"},"options":{"items":{"properties":{"booking_url":{"format":"uri","type":"string"},"date":{"format":"date","type":"string"},"pax":{"type":"integer"},"room_id":{"type":["integer","null"]},"room_name":{"type":"string"},"service_id":{"type":"string"},"service_name":{"type":"string"},"time":{"type":"string"}},"required":["date","time","pax","room_id","room_name","service_id","service_name","booking_url"],"type":"object"},"type":"array"},"pax":{"type":"integer"},"reason":{"enum":["group","special_day"]},"request_url":{"format":"uri","type":"string"},"requests":{"items":{"properties":{"reason":{"const":"special_day"},"request_url":{"format":"uri","type":"string"},"service_id":{"type":"string"},"title":{"type":"string"}},"required":["reason","service_id","title","request_url"],"type":"object"},"type":"array"},"status":{"enum":["available","unavailable","request_required"]},"success":{"const":true},"timezone":{"type":"string"}},"required":["success","status","date","pax","language","timezone","checked_at","options","requests","notice"],"type":"object"},"Error":{"properties":{"error":{"type":"string"},"error_code":{"type":"string"},"status":{"const":"error"},"success":{"const":false}},"required":["success","error"],"type":"object"}}},"info":{"description":"Check Camillo Piazza Navona restaurant availability for one party and date. Return the supplied booking_url unchanged to the guest. Availability is a snapshot, not a hold or reservation; the guest must complete the booking on the website. request_required means staff confirmation is needed. Never claim a booking was made or infer seats remaining from the number of options.","title":"Camillo agent availability","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/site/agent/availability":{"get":{"description":"No authentication or cookies required. No reservation is created. Search one date at a time; there is no separate future-date horizon beyond the booking engine. The restaurant timezone is returned. Preserve booking URLs including ai_ref for anonymous tool attribution. MCP is available at /api/site/agent/mcp (supported protocol 2025-11-25; also 2025-03-26 and 2025-06-18). Non-JavaScript form: /api/site/agent/availability.html.","operationId":"search_availability","parameters":[{"in":"query","name":"date","required":true,"schema":{"description":"Restaurant-local date, YYYY-MM-DD; today or later.","format":"date","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},{"in":"query","name":"pax","required":true,"schema":{"description":"Guests in one party. Groups over the online limit require staff confirmation.","maximum":1000,"minimum":1,"type":"integer"}},{"in":"query","name":"room_id","required":false,"schema":{"description":"Optional public room id from /api/site/config. Omit to search every public room.","maximum":2147483647,"minimum":1,"type":"integer"}},{"in":"query","name":"service_id","required":false,"schema":{"description":"Optional configured service id or event service id from /api/site/config.","maxLength":100,"minLength":1,"type":"string"}},{"in":"query","name":"time","required":false,"schema":{"description":"Optional exact local start time; omit to get all available times.","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","type":"string"}},{"in":"query","name":"language","required":false,"schema":{"default":"it","enum":["it","en"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Availability"}}},"description":"Availability snapshot, or staff request required"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid date, party size, time, language, room or service"},"429":{"description":"Rate limit exceeded. Wait for Retry-After before retrying.","headers":{"Retry-After":{"schema":{"type":"integer"}}}},"503":{"description":"Availability temporarily unavailable; do not claim the restaurant is fully booked."}},"summary":"Read live availability and receive booking links"}}},"servers":[{"description":"Same origin as this document","url":"/"}]}
