Skip to content

Site payload

One call returns the studio, its rooms with their booking policy, and the site’s presentation settings.

Terminal window
curl -s https://api.mrcharles.app/api/v1/public/sites/studio-uno-madrid
Authnone
Cachepublic, max-age=60
Errors404 RESOURCE_NOT_FOUND (no such slug) · 404 SITE_NOT_LIVE (exists, not published)

Same payload, looked up by hostname — <slug>.sites.mrcharles.app or a verified custom domain.

Terminal window
curl -s "https://api.mrcharles.app/api/v1/public/sites/resolve?host=studiouno.com"
{
"studio": { … },
"rooms": [ { … } ],
"site": { … },
"bookingOnline": true,
"cardPayments": true,
"captchaSiteKey": "0x4AAA…",
"stripePublishableKey": "pk_live_…"
}
FieldTypeNotes
bookingOnlinebooleanAt least one room is bookable online
cardPaymentsbooleanCard deposits available on this platform
captchaSiteKeystring?Present when holds require a captcha
stripePublishableKeystring?Present when cardPayments — use it to mount Stripe
FieldTypeNotes
name, slugstringslug is the public identifier
description, shortDescriptionstring, string?
studioTypestring?recording, rehearsal, teaching, …
logoUrl, coverImageUrlstring?
addressLine1, addressLine2, city, postalCode, countrystringcountry is ISO 3166-1 alpha-2
latitude, longitudenumber?
phone, email, websitestring?, string, string?
timezonestringIANA name — every date and time belongs to this zone
isVerifiedbooleanOwnership confirmed by us
averageRating, totalReviewsnumber?, number
operatingHoursarray{ dayOfWeek: 0–6 (Sun–Sat), openTime: "10:00", closeTime: "22:00", isClosed }
socialLinks, amenitiesarray
FieldTypeNotes
iduuidUse in availability and holds
name, descriptionstring, string?
capacitynumberPeople
roomTypestring?
hourlyCents, currencynumber, stringMinor units; 2500 = €25.00/h
bookablebooleanOnly these accept online bookings
minMinutes, maxMinutes, stepMinutesnumberAllowed durations
paymentModesstring[]card, on_site
depositPercentnumberShare charged now when paying by card
cancelNoticeHoursnumberGuest self-cancellation window
instructionsobject{ es, ca, en }, shown after booking
photosstring[]
equipment, facilitiesarray
FieldTypeNotes
templatestringstage or daylight
themeobjectprimary, accent, font, radius, mode, logoUrl
sectionsobjectWhich blocks the studio enabled
contentobjecttagline, about, bookingNote (localised), whatsapp, instagram, gallery
legalobjectlegalName, taxId, address, email, phone
seoobjecttitle, description
defaultLocale, localesstring, string[]es · ca · en
statusstringAlways live on public responses
customDomainstring?
canonicalHoststringWhere the site should live — redirect to it if you mirror content

Localised fields are objects keyed by locale: {"es":"Locales de ensayo","ca":"Locals d'assaig"}. A missing key means “fall back to defaultLocale”.