Developers

A healthcare CRM you integrate with, not migrate to.

One script tag adds booking to the site you already have. External and internal API keys, callbacks and theming are documented today. The REST API and webhooks are next.

Most clinic software wants to own the front door. MedOS is built the other way round: your website stays, and the parts of MedOS a patient touches are embeddable widgets that render inside it. The booking flow, the patient portal, an enquiry form and package purchase are each one script tag, configured in a few lines, with callbacks so your page knows what happened.

Behind the widgets is one API key model. An external key lets a widget fetch practitioners and slots and create a booking, and is bound to your allowed origin. An internal key, not origin-bound, is the path for backend work. Every key begins with mk_, and all of them are created and revoked in the MedOS dashboard.

The whole install

Booking on your site in the time it takes to paste this.

<script src="https://widgets.medos.one/v2/unified.js"></script>

<!-- Inline: renders inside your page -->
<div id="booking-container" style="min-height: 600px;"></div>
<script>
  MedosBooking.init({
    apiKey: "mk_your_publishable_key",
    mode: "inline",
    containerId: "booking-container",
  });
</script>

<!-- Or modal: opens on a button -->
<script>
  MedosBooking.init({
    apiKey: "mk_your_publishable_key",
    mode: "modal",
    theme: "default",
    onSuccess: (data) => {
      console.log("Booking confirmed", data);
    },
  });
</script>
<button onclick="MedosBooking.open()">Book appointment</button>

Modal or inline, your theme, and callbacks for success and error. The widget reads each practitioner’s configuration and shows either scheduled slots or a live queue without you choosing. Full widget documentation.

Four widgets, one script

Booking widget
The full booking flow: practitioner, mode, visit type, slot, OTP and payment. Adapts on its own to a scheduled or a queue-based practice.
Patient portal (beta)
The patient’s own appointments, live status, reschedule and cancel, embedded on your site. The portal itself is live at its own URL today; the embeddable widget is in beta.
Enquiry form
A lead form that lands in MedOS with the patient record started, so a follow-up call has context.
Package purchase
Session packs and care packages sold from your own site, drawn down visit by visit afterwards.

API keys

Two kinds of key, one place to manage them.

External keys
For public-facing integrations like booking widgets and websites. Bound to one allowed origin, one key per site, and exchanged for a short-lived session token when a widget initialises. They never authorise a destructive operation directly.
Internal keys
For internal services like schedulers and background jobs. Not origin-bound. Treated as a credential: revoked instantly if it leaks, never committed to a public repository.
API keys documentation

What is documented, and what is next

Live today
  • Booking, enquiry and package widgets; patient portal widget in beta
  • Modal and inline modes, theming, playground
  • onSuccess and onError callbacks
  • External keys, origin-bound, and internal keys
  • Scheduled and queue-based booking, detected per practitioner
Landing next on docs.medos.one
  • REST API reference
  • Webhooks
  • Dashboard guide

Building against these now? Tell us in the walkthrough and we will show you what internal keys already reach.

No migration

Your website stays. Your operations get better.

You do not rebuild your digital presence to run on MedOS. Patients keep arriving through the site, the link or the QR you already share. Every route lands in the same patient experience, and every booking lands in the same operations.

  1. 01

    Embed the booking widget

    One script tag adds booking to the site you already have, themed to match it. This is the only part that lives on your website.

    Widget documentation
  2. 02

    Share a booking link

    No site changes at all. Put the link in your Google Business Profile, on WhatsApp, or in an Instagram bio.

  3. 03

    Print the QR

    At the door, on the desk, on a flyer. It opens the same booking and check-in flow.

MedOS patient experience
Book. Register. Pay. Check in.

OTP-verified, branded to your clinic, on the patient’s own phone. Self check-in, payment and Google Meet links are part of the same flow.

Existing clinic website
www.yourclinic.com
MedOS booking widget
The MedOS booking widget inside the clinic website: choose a practitioner, mode and visit type
MedOS patient experience
MedOS patient experience on a phone: book an appointment with a practitioner, mode, visit type and date
MedOS operations
The MedOS appointment board, from its top-left: header, dashboard controls, Google Calendar status row and the visit columns
CalendarPatientsPaymentsCare recordsFollow-up

Straight answers

Developers ask us.