{"openapi":"3.1.0","info":{"title":"PishPash — Art Lounge & Music Salon | Venue API","version":"1.0.0","description":"Public API for AI venue-search agents: venue facts, real availability against the venue diary, and event enquiries. Availability is privacy-safe: occupied windows and the public evening programme are exposed without event names or client data. Pricing is always on request; bookings are confirmed by the human PishPash team only."},"servers":[{"url":"https://corporate.pishpashbar.com"}],"paths":{"/api/chat":{"post":{"operationId":"chat","summary":"Chat with the PishPash concierge in a single request/response — the simplest agent-to-agent option. Send {\"message\": \"...\"} and receive {\"sessionId\", \"reply\"}. Pass the sessionId back on follow-up calls to continue the conversation. The concierge answers venue questions, recommends event formats, checks live availability, and can hand off to the human team. It never quotes prices.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The user or agent message to the concierge"},"sessionId":{"type":"string","description":"Omit to start a new conversation; include to continue one"}}}}}},"responses":{"200":{"description":"The concierge reply","content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string"},"reply":{"type":"string"}}}}}},"400":{"description":"Missing message"},"502":{"description":"Concierge unavailable"}}}},"/eve/v1/session":{"post":{"operationId":"chatWithConcierge","summary":"Chat with the PishPash concierge agent. Send a message, receive a sessionId, then stream the agent's reply from GET /eve/v1/session/{sessionId}/stream (newline-delimited JSON events; the agent's text arrives as message.appended events with messageDelta chunks). Send follow-up messages by POSTing again with {\"sessionId\", \"message\"}. The concierge answers venue questions, recommends event formats, checks live availability, and can hand off to the human team. It never quotes prices.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The user or agent message to the concierge"},"sessionId":{"type":"string","description":"Omit to start a new conversation; include to continue one"}}}}}},"responses":{"200":{"description":"Session created or message accepted","content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string"}}}}}}}}},"/api/venue":{"get":{"operationId":"getVenue","summary":"Venue facts: capacity, capabilities, event types, address","responses":{"200":{"description":"Venue facts","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"city":{"type":"string"},"address":{"type":"string"},"capacity":{"type":"object"},"capabilities":{"type":"array","items":{"type":"object"}},"eventTypes":{"type":"array","items":{"type":"string"}},"pricing":{"type":"string","enum":["on_request"]}}}}}}}}},"/api/availability":{"get":{"operationId":"checkAvailability","summary":"Check real availability for a date and time window. The public evening programme (usually 22:00) does not block earlier windows.","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","example":"15:00"}},{"name":"end","in":"query","required":true,"schema":{"type":"string","example":"21:00"}}],"responses":{"200":{"description":"Availability result","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["available","partially_available","unavailable","needs_confirmation"]},"requestedWindow":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}}},"publicProgramme":{"type":["object","null"],"properties":{"startsAt":{"type":"string"}}},"conflictingWindows":{"type":"array","items":{"type":"object"}},"latestPossibleEndTime":{"type":["string","null"]},"alternativeWindows":{"type":"array","items":{"type":"object"}},"bookingStatus":{"type":"string","enum":["not_reserved"]},"pricing":{"type":"string","enum":["on_request"]}}}}}},"400":{"description":"Missing parameters"}}}},"/api/inquiries":{"post":{"operationId":"submitInquiry","summary":"Submit a qualified event enquiry for the PishPash team","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"company":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"preferredContactMethod":{"type":"string"},"brief":{"type":"object","properties":{"eventType":{"type":"string"},"guests":{"type":"integer"},"date":{"type":"string"},"timing":{"type":"string"},"objective":{"type":"string"},"businessContent":{"type":"array","items":{"type":"string"}},"experience":{"type":"array","items":{"type":"string"}},"suggestedFlow":{"type":"array","items":{"type":"string"}},"availabilitySummary":{"type":"string"},"notes":{"type":"string"}}}}}}}},"responses":{"201":{"description":"Inquiry received; returns a reference. This never reserves a slot — there is no booking-write endpoint; only the human PishPash team confirms a booking."},"400":{"description":"Invalid body or no contact method"},"429":{"description":"Rate limited: the same contact (email/phone), or the calling source, has submitted too many enquiries recently. Do not retry immediately."}}}}}}