Hold a slot for a few minutes
A hold belongs to the REQUEST that created it, and only the same owner can book it or release it. Send `X-Mediflo-Scheduling-Session` and repeat the SAME value on the POST /scheduling/appointments that consumes this hold and on DELETE /scheduling/holds/{holdId} — without the header each request is its own owner, so the hold you just created can neither be booked nor released and simply expires. Required scope: `scheduling.book`.
/scheduling/holdsAuthorization
ApiKeyAuth An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.
In: header
Header Parameters
Your own id for ONE booking flow (letters, digits and ._:-, 1–128 chars). REQUIRED to use a hold: send the SAME value on POST /scheduling/holds, on the POST /scheduling/appointments that consumes the hold, and on DELETE /scheduling/holds/{holdId}. Without this header every request is its own owner and cannot touch another request’s hold — booking a holdId then answers SLOT_TAKEN and the hold can only expire. Booking straight from a slotToken needs no hold and no header.
^[A-Za-z0-9._:-]{1,128}$Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/scheduling/holds" \ -H "Content-Type: application/json" \ -d '{ "slotToken": "string" }'{ "data": { "holdId": "string", "expiresAt": "string" }}