Skip to main content
GET
Get Slots
Replaces Get Appointment Slots (Legacy). Every schedule mapped against that doctor and clinic: patient, front desk or IPD.

Query keys

mode is set on each service, not on the schedule.
  • Service schedule: every service is in-clinic, tele. mode=tele gives only the tele services’ slots. in service based schedules are mapped on the service
  • Duration schedule: it has no services, so its slots are for both in-clinic and tele. mode is ignored.

bookable_by

Whatever you send, only regular services get slots. Follow-up services (appointment_type other than REGULAR) and archived services never do.

Which schedules come back

With mode, service_id or bookable_by=patient, a service schedule that never offers a matching service is left out. Example: mode=tele leaves out a schedule that only has in-clinic services. A schedule that offers it but has no slots between startTime and endTime stays, with empty slots and next. Duration schedules always stay. If nothing is left: 404.

Clinic slots (no doctor)

Put the clinic id in both doc_id and cid:?doc_id=c-cc6a93720d7445af890c4cc0&cid=c-cc6a93720d7445af890c4cc0You get the clinic’s own schedules and services. doctor_oid comes back null. Clinic schedules are read in IST.To make one, call Create Schedule with the clinic id in both entity_id and location_id.

Service schedules vs duration schedules

A duration schedule has no services. Its slots are plain time cut at one length, so conf_id is null, it has no services list, and it adds nothing to the top-level services. A reply with only duration schedules has services: []. Service slots also follow each service’s booking window: none sooner than book_before_mins from now, none later than book_ahead_days ahead. Past slots never come back.

Slot length in a duration schedule

A schedule with slot_durations: [15, 30, 60]:
A duration the schedule doesn’t have is not an error. You get 200 with slots at the shortest length. Read slot_duration before you show or book a slot, so a 15-minute slot is not shown as a 40-minute one.

Dates

Send startTime and endTime as full ISO with Z. One day in India is startTime=2026-11-13T18:30:00.000Z&endTime=2026-11-14T18:29:59.999Z.A date alone (2026-11-14) means 00:00 UTC, which is 05:30 IST, so early-morning slots get cut.

Errors

Every error body carries empty data: { "schedules": [], "services": [] }.

Coming from Get Appointment Slots (Legacy)

Headers

auth
string
required
Example:

"auth"

time-zone
string

Time zone for s and e in the reply, e.g. Asia/Dubai. Defaults to Asia/Kolkata.

Example:

"Asia/Kolkata"

Query Parameters

doc_id
string
required

Doctor id. For clinic slots, use the clinic id in its place (send the same id in cid).

Example:

"174368482468425"

startTime
string
required

Window start, ISO-8601 with Z. A date alone (2026-11-14) means 00:00 UTC, which is 05:30 in India.

Example:

"2026-11-13T18:30:00.000Z"

endTime
string
required

Window end, same format. Must not be before startTime.

Example:

"2026-11-14T18:29:59.999Z"

cid
string

Clinic id. Leave it out to get every clinic of the doctor.

Example:

"67ee84d9087b41001de0cfb1"

bookable_by
enum<string>

Only schedules this group can book on: patient (patients book by themselves), front_desk (anyone booking from the clinic side: your reception, front desk, doctor, clinic staff, or your own EMR) or ipd (admitted patients). Leave it out to get every schedule.

Available options:
patient,
front_desk,
ipd
schedule_id
string

Only this schedule, whoever can book on it. bookable_by=patient still hides services patients can't book.

Example:

"6a7b046c1cf45d28c2c308b3"

service_id
integer

Only services of this service type, e.g. Consultation. A service schedule that never offers it is left out. Duration schedules ignore it.

Example:

444895

mode
enum<string>

Only services offered in this mode. A service schedule that never offers this mode is left out. Duration schedules ignore it.

Available options:
in-clinic,
tele
duration
integer

Slot length in minutes, for duration schedules only. If it is in the schedule's slot_durations, slots are cut at it. If it is not, or you leave it out, slots are cut at the shortest length in slot_durations (not an error). slot_duration in the reply is the length used.

Example:

15

Response

OK

success
boolean
Example:

true

data
object