{"openapi":"3.1.0","info":{"title":"SaloonApp.lk Booking API for AI assistants","version":"1.0.0","description":"Find salons in Sri Lanka, check real availability and request bookings for a person. Bookings are held until the person confirms with an SMS code sent to their own phone. Times are Asia/Colombo (UTC+05:30). Prices are in LKR.","contact":{"url":"https://saloon.ideus.lk/developers"}},"servers":[{"url":"https://saloonbackend.ideus.lk/v1/agent"}],"paths":{"/search":{"get":{"operationId":"searchSalons","summary":"Search salons by text, city slug or category slug","parameters":[{"name":"q","in":"query","schema":{"type":"string"}},{"name":"city","in":"query","schema":{"type":"string","enum":["colombo","dehiwala-mount-lavinia","nugegoda","maharagama","battaramulla","rajagiriya","piliyandala","moratuwa","negombo","gampaha","kadawatha","wattala","kandy","galle","matara","kurunegala","panadura","kalutara","jaffna","anuradhapura","ratnapura","batticaloa","trincomalee","nuwara-eliya"]}},{"name":"category","in":"query","schema":{"type":"string","enum":["hair","barber","bridal","makeup","nails","skin","spa","brows-lashes","waxing","mehendi"]}},{"name":"limit","in":"query","schema":{"type":"integer","maximum":20}}],"responses":{"200":{"description":"Matching salons"}}}},"/salons/{slug}":{"get":{"operationId":"getSalon","summary":"Salon details, services with prices and durations, and team","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Salon"}}}},"/salons/{slug}/availability":{"get":{"operationId":"getAvailability","summary":"Free start times for one or more services on a date","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"date","in":"query","schema":{"type":"string","format":"date"}},{"name":"serviceIds","in":"query","required":true,"description":"Comma separated service ids","schema":{"type":"string"}},{"name":"staffId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Available times (HH:mm)"}}}},"/bookings":{"post":{"operationId":"requestBooking","summary":"Hold a slot and text the person a confirmation code","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["salonSlug","serviceIds","date","time","customerName","customerPhone"],"properties":{"salonSlug":{"type":"string"},"serviceIds":{"type":"array","items":{"type":"string"}},"date":{"type":"string","format":"date"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"staffId":{"type":"string"},"customerName":{"type":"string"},"customerPhone":{"type":"string","description":"Sri Lankan mobile, e.g. 0771234567"},"notes":{"type":"string"},"agentName":{"type":"string","description":"Your assistant's name, shown to the salon"}}}}}},"responses":{"200":{"description":"Handoff link when the salon doesn't take direct agent bookings"},"202":{"description":"Held; awaiting the person's SMS confirmation"}}}},"/bookings/{id}/confirm":{"post":{"operationId":"confirmBooking","summary":"Confirm a held booking with the 6-digit SMS code the person gives you","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}}}}},"responses":{"200":{"description":"Confirmed, or a deposit link when the salon needs one"}}}}}}