Skip to main content
GET
Get computed availability
Provider Filtering: Only providers with active=true AND hide_in_availability=false will appear in availability results. If you’ve set a provider’s hide_in_availability to true, they won’t appear here even if their status is active.
Use provider_ids and location_ids to narrow returned availability. Both parameters accept comma-separated EHR IDs, for example provider_ids=prov1,prov2 and location_ids=loc1,loc2. Location filtering is applied to generated availability windows using each slot’s facility_id; slots without a facility_id are excluded when location_ids is provided.

Example Request

Example Response

Enhanced Response with Detailed Slot Information

When using calculation_method=slots, if the EHR provides detailed slot information, the response may include additional fields for capacity management:
Key fields when detailed slot information is available:
  • visit_type: The specific appointment type that can be booked in this slot
  • available_appointments: How many more appointments can still be scheduled in this slot
  • max_visits: The total capacity of this slot (useful for understanding how many are already booked)
  • facility_id: Unique identifier for the facility/location
  • facility_name: Name of the facility/location
The availability of these enhanced fields depends on your EHR system’s capabilities. Not all EHRs provide this level of detail for slot-based availability.

Calculation Methods

The calculation_method parameter determines how availability is calculated:
  • gaps (Default): Calculates availability based on free time between a provider’s working hours and existing appointments
  • slots: Pre-defined appointment slots blocked only by appointments matching the slot’s visit type
  • equal_slots: Pre-defined appointment slots blocked by ANY appointment at that time, regardless of type

Example Scenarios

Scenario 1: A “New Patient” schedule_slot exists at 10:00 AM. A “Follow-up” appointment is already booked at 10:00 AM.
  • gaps: 10:00 AM not returned as available (appointment occupies that time)
  • slots: “New Patient” slot returned as available (different appointment type doesn’t block)
  • equal_slots: “New Patient” slot not returned (any appointment blocks all slot types)
Scenario 2: A “New Patient” schedule_slot exists at 10:00 AM. A “New Patient” appointment is already booked at 10:00 AM.
  • gaps: 10:00 AM not returned as available (appointment occupies that time)
  • slots: “New Patient” slot not returned (same appointment type blocks)
  • equal_slots: “New Patient” slot not returned (any appointment blocks all slot types)
Scenario 3: A “New Patient” schedule_slot exists at 10:00 AM. A schedule_block (e.g., “Lunch”) exists at 10:00 AM.
  • gaps: 10:00 AM not returned as available (schedule_block occupies that time)
  • slots: “New Patient” slot not returned (schedule_blocks block slots)
  • equal_slots: “New Patient” slot not returned (schedule_blocks block all slot types)
Use equal_slots when multiple parties (e.g., clinic staff and automated systems) are scheduling different appointment types into the same time slots and you need to prevent double-booking.

Authorizations

client_id
string
header
required
client_secret
string
header
required
access_token
string
header
required

Query Parameters

start_date
string
required

Range start (ISO 8601 / YYYY-MM-DD).

Example:

"2026-03-15"

end_date
string
required

Range end (ISO 8601 / YYYY-MM-DD). Must be on/after start_date and within 12 months.

Example:

"2026-03-20"

provider_ids
string

Comma-separated EMR provider IDs to filter by.

Example:

"PROV-1,PROV-2"

location_ids
string

Comma-separated EMR location IDs to filter slots by.

Example:

"LOC-1,LOC-2"

buffer
integer | null

Minutes of buffer between slots (0–59).

Required range: x >= 0
Example:

15

visit_type
string

Visit-type code to size slots for. Requires buffer.

Example:

"FOLLOW-UP"

calculation_method
enum<string>
default:gaps

Slot calculation method.

Available options:
gaps,
slots,
equal_slots
daily_appointment_limit
integer | null

Max appointments per day. Requires daily_limit_type.

Required range: x >= 1
Example:

8

daily_limit_type
string

Visit-type code the daily limit applies to. Requires daily_appointment_limit.

Example:

"all"

provider_type
enum<string>

Which provider slot to match on.

Available options:
primary,
secondary
fallback_to_default_hours
enum<string>

Use default business hours when a provider has no configured hours.

Available options:
true,
false
max_slot_duration
integer | null

Cap on slot length in minutes (5–60, multiples of 5).

Example:

30

facility_scoped_scheduling
enum<string>

Scope slots per facility rather than per provider (auto-enabled for Practice Fusion).

Available options:
true,
false
cancelled_statuses
string

Comma-separated appointment statuses to treat as cancelled, freeing the slot. When provided, this overrides the default cancelled/rescheduled detection; statuses are matched case-insensitively. Use this when your clinic uses custom status codes (e.g. "RS" for rescheduled).

Example:

"canc,rs,cancsms"

Response

Computed availability for the requested range

success
boolean
required
availability
object[]
required
timezone
string
required
warnings
string[]