# Get schedulable entities

Get the list of schedulable entities within the developer's Zocdoc directory (provider-locations, etc.) with availability information.
NPIs can be used to search for providers in the /v1/providers endpoint to facilitate availability, discovery, and booking. Schedulable entity ids can be used to find provider-locations in the /v1/provider_locations/{provider_location_id} endpoint to facilitate availability, discovery, and booking.
Developers can fetch the schedulable entities list and cache in their system. The available schedulable entities do not change frequently. Pulling this data once a week and/or after known directory change events should be sufficient. However, you may use the `recent_changes_72hrs` parameter and the `recent_change_summary` field to get the list of entities that have changed in the last 72 hours.

Endpoint: GET /v1/schedulable_entities
Version: 1.177
Security: ClientCredentialsFlow, AuthorizationCodeFlow

## Query parameters:

  - `page` (integer)
    The zero indexed page of results. A mimimum value of 0 will be accepted.

  - `page_size` (integer)
    The number of results to return per page. The default value is 5000. A mimimum value of 1 and a maximum of 10000 will be accepted.

  - `schedule_types` (string)
    The comma-delimited list of schedule types to include. Will return all schedule types if not provided.

  - `recent_changes_72hrs` (boolean)
    When true, only includes entities added or updated in the last 72 hours

## Response 200 fields (application/json):

  - `data` (object, required)

  - `data.recent_change_summary` (object, required)

  - `data.recent_change_summary.schedulable_entities_added` (array, required)
    A provider location was activated

  - `data.recent_change_summary.schedulable_entities_removed` (array, required)
    A provider location was deactivated

  - `data.recent_change_summary.schedulable_entities_profile_updated` (array, required)
    provider or location profile data changed (NPI, name, specialty, address, default visit reason)

  - `data.schedulable_entities` (array, required)

  - `data.schedulable_entities.id` (string, required)

  - `data.schedulable_entities.npi` (string)

  - `data.schedulable_entities.type` (string, required)
    Enum: "provider_location"

  - `data.schedulable_entities.go_live_timestamp_utc` (string, required)
    The timestamp when the schedulable entity became available in the developer's directory.

  - `data.schedulable_entities.profile_last_modified_timestamp_utc` (string, required)
    The timestamp when the schedulable entity's profile was last modified in the developer's directory. This includes basic information on the provider and location records.

  - `data.schedulable_entities.new_patient_availability` (object, required)

  - `data.schedulable_entities.new_patient_availability.next_available_utc` (string)
    The next available date and time in UTC, across all visit reasons, up to 90 days in the future.

  - `data.schedulable_entities.new_patient_availability.next_28_days` (string, required)
    The availability status of the schedulable entity for the next 28 days. Limited availablility means that the entity has less than 20 timeslots available for the next 28 days.
    Enum: "none", "limited", "available"

  - `data.schedulable_entities.new_patient_availability.url` (string, required)
    The GET URL to receive the schedulable entity's availability in this API for their default visit reason and the corresponding patient type.

  - `data.schedulable_entities.time_zone` (string)
    IANA time zone identifier for the location, e.g., America/New_York.
    Example: America/New_York

  - `data.schedulable_entities.main_specialty_id` (string)
    Zocdoc specialty ID of the provider's main specialty (format `sp_<id>`). Omitted when the provider has no main specialty.
    Example: sp_123

  - `data.schedulable_entities.main_specialty_name` (string)
    Display name of the provider's main specialty. Omitted when the specialty id is absent or cannot be resolved.
    Example: Cardiologist

## Response 400 fields (application/json):

  - `request_id` (string, required)
    Unique request identifier for tracing

  - `error_type` (string, required)
    Enum: "api_error", "invalid_request"

  - `errors` (array, required)

  - `errors.field` (string)

  - `errors.message` (string, required)

