{"openapi":"3.1.0","info":{"title":"BookingBooster Clinic Gateway API","version":"0.1.0","description":"Read-only availability API for AI chats. Returned bookingUrl values are tracked Walaw shortlinks."},"servers":[{"url":"https://clinic-gateway.walaw.io"}],"paths":{"/api/metadata":{"get":{"operationId":"getClinicMetadata","summary":"Get KB-derived clinic metadata","description":"Returns locations, services, professionals, and public-safe Medexa identifiers extracted from the clinic KB files.","responses":{"200":{"description":"Clinic metadata"}}}},"/api/availability":{"get":{"operationId":"getClinicAvailability","summary":"Get real-time clinic availability","description":"Returns normalized appointment slots and tracked booking shortlinks. Does not create appointments.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"serviceId","in":"query","required":false,"description":"Medexa service GUID or service slug from /api/metadata.","schema":{"type":"string"}},{"name":"locationId","in":"query","required":false,"description":"Medexa point-of-service GUID or location slug from /api/metadata.","schema":{"type":"string"}},{"name":"professionalId","in":"query","required":false,"description":"Medexa employee GUID or professional name from /api/metadata.","schema":{"type":"string"}}],"responses":{"200":{"404":{"description":"Unknown locationId, serviceId, or professionalId. The message lists the valid values; retry with one of them.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"const":"not_found"},"message":{"type":"string"}}}}}},"502":{"description":"Availability is temporarily unavailable."},"description":"Availability slots","content":{"application/json":{"schema":{"type":"object","required":["clinic","slots","totalSlots","message","source"],"properties":{"clinic":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"locationName":{"type":"string"}}},"slots":{"type":"array","items":{"type":"object","required":["startsAt","serviceName","locationName","bookingUrl"],"properties":{"startsAt":{"type":"string"},"serviceId":{"type":"string"},"serviceName":{"type":"string"},"providerId":{"type":"string"},"providerName":{"type":"string"},"locationId":{"type":"string"},"locationName":{"type":"string"},"bookingUrl":{"type":"string","format":"uri"}}}},"totalSlots":{"type":"integer"},"message":{"type":"string"},"source":{"enum":["mock","medexa"]}}}}}}}}}}}