List bookable visit types
Only types the clinic opened to online booking. `price` is present only for privately paid visits that have one. Required scope: `scheduling.read`.
/scheduling/appointment-typesAuthorization
ApiKeyAuth An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.
In: header
Query Parameters
uuiduuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/scheduling/appointment-types"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "durationMin": 0, "price": "string", "description": "string", "specialistIds": [ "0b8c2d31-246e-4705-a5e5-7f8d40a4a350" ] } ]}Release a hold DELETE
Idempotent: releasing an already-expired hold succeeds, because the caller's goal is satisfied either way. Pass the same `X-Mediflo-Scheduling-Session` value you held the slot with — a hold is released only by its own owner, and without the header this request is a different owner, so the hold stays until it expires. Required scope: `scheduling.book`.
Upcoming appointments for a phone number (deprecated) GET
Each entry carries an `actionToken` — the handle the `scheduling.modify` endpoints require — and the patient’s masked name. **Deprecated:** the phone number travels in the query string, where proxy logs and error trackers keep it. Use POST /scheduling/appointments/search, which takes the same number in a body and answers identically. This form keeps working. Required scope: `scheduling.read`.