Hi. We are building a multi-tenant practice platform on hosted Medplum, and spoke with Reshma on the 24th. One blocking question.
Our front door is a public booking page with no account required. Tested against api.medplum.com on 2026-09-20: Appointment/$find, Appointment/$book and Schedule all return 401 to a visitor with no token, and a public page cannot hold a client secret.
What is the recommended pattern?
- a Bot behind an unauthenticated HTTP endpoint that calls find and book for the visitor. Is that supported on hosted, and how would we rate-limit it?
- our own small server holding client credentials under a narrow access policy?
- or something built in that we have missed?
Two related things. Does $book reject a slot another visitor has already taken, or is there a hold operation we should use? And which resource should carry a deposit payment reference taken before the appointment is confirmed?
Until this is settled our booking app runs on a stub calendar, so an answer unblocks real work. Happy to share the project id in a DM. Thanks.