Mediflo
REST APIScheduling

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`.

POST/scheduling/holds

Authorization

ApiKeyAuth
AuthorizationBearer <token>

An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.

In: header

Header Parameters

X-Mediflo-Scheduling-Session?string

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.

Match^[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"  }}