{"openapi":"3.1.0","info":{"title":"Bend The Mic availability API","version":"1.0.0","summary":"Read which private karaoke rooms are free, when, and at what price.","description":"A public, read-only view of room availability for a calendar month. Nothing here reserves anything or takes a booking; it answers the question a customer — or a customer's assistant — asks before they decide. Booking itself is completed by a person on the website.","contact":{"name":"Bend The Mic","url":"https://www.bendthemic.com"}},"servers":[{"url":"https://www.bendthemic.com"}],"paths":{"/api/booking/preview/month":{"get":{"operationId":"getMonthAvailability","summary":"Availability for a party across a calendar month","description":"Returns every night of the venue's current booking month with, for each, the rooms a party of this size fits and the start times actually bookable in them — each already priced and checked, so anything listed can be booked. Times are venue-local (America/Los_Angeles) and carry the zone. A failed read is not a full venue.","parameters":[{"name":"partySize","in":"query","required":true,"description":"How many singers, from 1 to 20. Above 20 is a private-event inquiry rather than a self-service booking.","schema":{"type":"integer","minimum":1,"maximum":20}},{"name":"durationMinutes","in":"query","required":true,"description":"How long the session runs. Only certain lengths are sold.","schema":{"type":"integer","enum":[60,90,120,180]}}],"responses":{"200":{"description":"The month, night by night.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonthAvailability"}}}},"400":{"description":"A parameter was missing or out of range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Availability could not be read. This is explicitly not the same as the venue being full.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"MonthAvailability":{"type":"object","required":["month","days"],"properties":{"month":{"type":"string","description":"The month described, YYYY-MM.","examples":["2026-12"]},"days":{"type":"array","items":{"$ref":"#/components/schemas/Day"}}}},"Day":{"type":"object","required":["date","dayOfWeek","status","tiers"],"properties":{"date":{"type":"string","description":"Service night, YYYY-MM-DD.","examples":["2026-12-12"]},"dayOfWeek":{"type":"integer","description":"ISO weekday, 1 = Monday.","minimum":1,"maximum":7},"status":{"type":"string","enum":["available","limited","full","closed","not-released","blocked"]},"recommendedTier":{"type":"string","enum":["small","medium","large"],"description":"The room the venue would steer this party to. Absent on an unavailable night."},"fittingTierCount":{"type":"integer"},"fittingStartCount":{"type":"integer"},"tiers":{"type":"array","items":{"$ref":"#/components/schemas/Tier"}}}},"Tier":{"type":"object","required":["tier","displayName","capacity","starts"],"properties":{"tier":{"type":"string","enum":["small","medium","large"]},"displayName":{"type":"string","examples":["Medium room"]},"capacity":{"type":"integer","description":"The most singers the room holds."},"starts":{"type":"array","items":{"$ref":"#/components/schemas/Start"}}}},"Start":{"type":"object","required":["start","end","serviceDate","totalCents","ageCheckRequired"],"properties":{"start":{"type":"string","description":"Venue-local start, with the time-zone annotation.","examples":["2026-12-12T19:15:00-08:00[America/Los_Angeles]"]},"end":{"type":"string"},"serviceDate":{"type":"string","description":"The night this start belongs to. A start after midnight on a Friday or Saturday belongs to the night before."},"totalCents":{"type":"integer","description":"Total price of the session in US cents."},"ageCheckRequired":{"type":"boolean","description":"Whether everyone in the room must be 21 or older for this start."},"rateBands":{"type":"array","description":"The off-peak and peak stretches the price is built from.","items":{"type":"object","properties":{"band":{"type":"string","enum":["off_peak","peak"]},"start":{"type":"string"},"end":{"type":"string"}}}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string","description":"Present on a 503, naming why the read failed."}}}}},"x-booking":{"description":"To let a person finish a booking, send them to the /book page with the night, party and length filled in.","bookingPageTemplate":"https://www.bendthemic.com/book{?date,party,duration,tier,start}","note":"The page reserves nothing until the customer confirms and pays. A held time can be gone by the time they open the link."}}