Skip to content

Overview

Mr Charles is the platform where music studios manage their rooms, prices and bookings. The public sites API exposes a studio’s rooms and live availability, and lets a guest book a room without an account, from any website.

  • Studios that want bookings on their own website (or their own domain) instead of WhatsApp and bank transfers.
  • Agencies and freelancers building a studio’s website.
  • Platforms (rehearsal-room directories, band tools, city guides) that want to show real availability and let people book.
NeedUseEffort
A website with booking, nowHosted site on slug.sites.mrcharles.app or your own domainnone
Keep my website, add bookingLinks & embed — deep links or an iframe to the hosted booking pageminutes
Full control of the UIBuild your own on the public APIhours
Read and act on bookings from another systemStudio API (authenticated)hours
  • Server-side truth. The client sends roomId, date, startTime, durationMinutes. The API computes the price (hourlyRate × minutes / 60), the deposit and validates the room’s hours, notice, horizon and buffers.
  • No double bookings. A Postgres exclusion constraint on (room, time range) plus a per-room lock mean two guests can never hold the same slot — whatever the frontend does.
  • Verified guests. A booking requires a one-time code delivered to a phone number (SMS) or email. No account, no password.
  • Money never moves outside Stripe. Card deposits are confirmed only by Stripe’s signed webhook, never by the browser.
  • It is not a general-purpose API for the whole Mr Charles platform (lessons, bands, venues, community). Those are reachable only by the official apps for now. If you need them, write to us.
  • It does not require API keys. Public endpoints are rate-limited and protected with a captcha on writes; the studio’s slug is the only identifier you need. Studio-side endpoints use the studio member’s normal sign-in.