Skip to content

Available Appointment

You may search for a maximum of 7 days of appointment availability per request.

All availability searches must specify a single appointment_type_id.

Availability may be filtered using any combination of business, practitioner, profession, or resource. When multiple filters are supplied, only times matching all provided criteria will be returned.

PracSuite users define daily practitioner availability using Rosters. Users can apply three availability flags to control which tools can book at particular times:

  • Manual - Allows staff to manually book appointments during these times
  • Online Booking - Allows these times to be booked through the PracSuite online booking system
  • Waiting List - Allows the PracSuite waiting list to offer these times to patients

Use the manual, online, and waiting_list query parameters to filter available times based on these roster flags. If none of these parameters are supplied, only times available for manual bookings will be returned.

Users define default appointment duration rules per Appointment Type. These defaults may vary based on business, profession, practitioner, and client fee category, which is determined by the combination of client_id and account_id.

When available, client_id and account_id should be provided to ensure the correct Appointment Type default configuration is applied.

List available appointment times

Request

Security
x-api-key and a-api-key
Query
fromstring, (date)required

Cannot be more than 7 days before the to parameter and cannot be before the current date in the tenant's time zone.

Example:from=2026-01-01
tostring, (date)required

Cannot be more than 7 days after the from parameter and cannot be before the current date in the tenant's time zone.

Example:to=2026-01-07
appointment_type_idintegerrequired
client_idinteger

Required if account_id is not null

account_idinteger
business_idsArray of integers
practitioner_idsArray of integers
profession_idsArray of integers
resource_idsArray of integers
requires_single_resourceboolean

Determines how availability is evaluated when multiple resource_ids are provided.

  • When true, the system returns time slots where only one of the specified resources is available.
  • When false, the system returns time slots where all specified resources are available simultaneously.
manualboolean
Default:true
onlineboolean
Default:false
waiting_listboolean
Default:false
distinct_timesboolean

Controls whether the same appointment time is returned when it is available with multiple practitioners.

When true, appointment times are deduplicated so each time is returned once, even if multiple practitioners are available at that time. One practitioner is selected automatically.

When false, the same time may be returned multiple times, once for each available practitioner.

Default:true
bufferinteger

Minutes added to the current time when searching for availability. Only appointment times starting after now + buffer are returned.

Default:60
durationinteger

Overrides the default duration for the appointment as defined in Get Appointment Type

pageinteger, >= 1
Example:page=1
page_sizeinteger, [ 1 .. 200 ]
Example:page_size=50
GET
/available_appointments
curl -i -X GET \
  'https://api.pracsuite.com/v1/available_appointments?from=2026-01-01&to=2026-01-07&appointment_type_id=0&client_id=0&account_id=0&business_ids=0&practitioner_ids=0&profession_ids=0&resource_ids=0&requires_single_resource=true&manual=true&online=false&waiting_list=false&distinct_times=true&buffer=60&duration=0&page=1&page_size=50' \
  -H 'a-api-key: YOUR_API_KEY_HERE' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

Successful

Bodyapplication/json
available_timesArray of objects(Available Appointment)
total_entriesinteger
Response
{ "available_times": [ {} ], "total_entries": 0, "links": { "self": "https://api.pracsuite.com/v1/available_appointments?page=2&appointment_type_id=1&from=2025-01-01&to=2025-01-07", "previous": "https://api.pracsuite.com/v1/available_appointments?page=1&appointment_type_id=1&from=2025-01-01&to=2025-01-07", "next": "https://api.pracsuite.com/v1/available_appointments?page=3&appointment_type_id=1&from=2025-01-01&to=2025-01-07" } }