openapi: 3.0.0 info: version: '1.176' title: API Documentation appointments facilities API description: Endpoints for booking, cancelling, and rescheduling appointments, including retrieving current appointment statuses and updated information. servers: - url: https://api-developer-sandbox.zocdoc.com description: Sandbox - url: https://api-developer.zocdoc.com description: Production tags: - name: facilities description: Endpoints to retrieve facilities within the developer's directory. x-displayName: Facilities paths: /v1-beta/facilities: get: tags: - facilities summary: Get facilities description: Get a set of facilities within the developer's network. security: - ClientCredentialsFlow: [] - AuthorizationCodeFlow: [] operationId: getFacilities parameters: - name: npis in: query description: A comma-delimited list of Provider NPI numbers. A maximum of 50 items will be accepted at a time. One of `zip_code` or `npis` is required. schema: type: string example: 1234567891,0123456789 - name: zip_code in: query description: A 5 digit zip code that will be used as the location to find facilities near by. One of `zip_code` or `npis` is required. schema: type: string example: 36925 - name: building_type in: query description: The type of facility building, which can be Clinic or Hospital. schema: $ref: '#/components/schemas/BuildingType' - name: page in: query description: The zero indexed page of results. schema: type: integer - name: page_size in: query description: The number of results to return per page. schema: type: integer - name: visit_reason_id in: query description: The Zocdoc ID of the visit reason to search by `zip_code` for. See [Reference Data](/guides/reference-data) for options. schema: type: string example: pc_FRO-18leckytNKtruw5dLR - name: insurance_plan_id in: query description: The Zocdoc ID of the patient's insurance plan to search by `zip_code` for. Use the [Get Insurance Plans](#operation/getInsurancePlans) endpoint to retrieve available plans. schema: type: string example: ip_2224 - name: max_distance_to_patient_mi in: query description: The maximum distance in miles from the facility to the search location (the center point of the given `zip_code`). Default is 50 miles. required: false schema: type: integer responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/FacilitiesResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResult' '401': description: Unauthorized '403': description: Forbidden '404': description: Not found /v1-beta/facilities/{facility_id}: get: tags: - facilities summary: Get facility by id description: Get facility by facility id. security: - ClientCredentialsFlow: [] - AuthorizationCodeFlow: [] operationId: getFacility parameters: - name: facility_id in: path required: true description: Zocdoc facility id. schema: type: string example: d04b049a-41b1-4aba-9268-d8973cf72cdd responses: '200': description: Successful content: application/json: schema: $ref: '#/components/schemas/FacilityByIdResponse' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResult' '401': description: Unauthorized '403': description: Forbidden '404': description: Not found components: schemas: ErrorType: type: string enum: - api_error - invalid_request BaseResult: required: - request_id type: object properties: request_id: type: string description: Unique request identifier for tracing FacilitiesResponse: type: object allOf: - $ref: '#/components/schemas/PaginatedBaseResult' - type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/Facility' PaginatedBaseResult: allOf: - $ref: '#/components/schemas/BaseResult' - type: object required: - page - page_size - total_count - next_url properties: page: description: The zero based index of the current page. type: integer page_size: description: The size of the current page. type: integer total_count: description: The total number of result items. type: integer next_url: description: A link to the next page of results; null if this is the last page of results. type: string FacilitySchedule: type: object required: - schedule_id - provider_location_id - booking_requirements properties: schedule_id: type: string description: Zocdoc id for bookable schedule provider_location_id: type: string description: Zocdoc provider location id for availability and booking requests booking_requirements: $ref: '#/components/schemas/BookingRequirements' BookingRequestInsuranceSource: type: string description: The types of insurance coverage that a provider accepts enum: - in_network - out_of_network - self_pay BookingRequirements: type: object required: - required_fields - accepts_booking_requests_from properties: required_fields: type: array items: type: string description: Options include `data.patient.insurance.insurance_plan_id` and `data.patient.insurance.insurance_member_id` accepts_booking_requests_from: type: array items: $ref: '#/components/schemas/BookingRequestInsuranceSource' description: Criteria for booking appointments, defines requirements and mandatory fields specified by Zocdoc providers Practice: type: object required: - practice_id - practice_name properties: practice_id: type: string practice_name: type: string BaseLocation: type: object required: - address1 - city - state - zip_code - latitude - longitude properties: address1: type: string address2: type: string city: type: string state: description: The location's two letter state code. example: NY type: string zip_code: description: The location's 5 digit zip code. type: string latitude: type: number format: float longitude: type: number format: float location_name: type: string phone_number: type: string description: Unformatted phone number for the location. Returns null for certain API products. example: '9999999999' phone_extension: type: string description: Unformatted extension digits for the location phone number. example: '123' time_zone: type: string description: IANA time zone identifier for the location, e.g., America/New_York. example: America/New_York Error: required: - message type: object properties: field: type: string message: type: string Facility: type: object required: - facility_id - name - specialties - languages - visit_reason_ids - default_visit_reason_id - location - schedule properties: facility_id: type: string description: Zocdoc id for facility name: type: string npi: type: string building_type: type: string specialties: type: array items: type: string languages: type: array items: type: string visit_reason_ids: type: array items: type: string default_visit_reason_id: type: string location: $ref: '#/components/schemas/BaseLocation' schedule: $ref: '#/components/schemas/FacilitySchedule' practice: $ref: '#/components/schemas/Practice' FacilityByIdResponse: type: object allOf: - $ref: '#/components/schemas/BaseResult' - type: object properties: data: $ref: '#/components/schemas/Facility' BuildingType: type: string description: The type of facility building, which can be clinic or hospital. enum: - clinic - hospital ErrorResult: allOf: - $ref: '#/components/schemas/BaseResult' - type: object required: - error_type - errors properties: error_type: $ref: '#/components/schemas/ErrorType' errors: type: array items: $ref: '#/components/schemas/Error' securitySchemes: ClientCredentialsFlow: type: oauth2 description: 'Machine to machine authentication (for use from client server to Zocdoc). Production: `https://auth.zocdoc.com/oauth/token` Sandbox: `https://auth-api-developer-sandbox.zocdoc.com/oauth/token` ' flows: clientCredentials: tokenUrl: https://auth.zocdoc.com/oauth/token scopes: external.credential.rotate: Rotate the authenticated client secret. external.appointment.write: Book and modify appointments. external.appointment.read: Read basic details of your appointments. external.anonymous_token.write: Create anonymous tokens used for discovery endpoints. external.provider_insurance.write: Update the insurance accepted by a provider. external.schedulable_entity.read: Read schedulable entities. AuthorizationCodeFlow: type: oauth2 description: 'Log in as a user. Client Secret is not necessary for this login flow. Production: `https://auth.zocdoc.com` Sandbox: `https://auth-api-developer-sandbox.zocdoc.com` ' flows: authorizationCode: x-usePkce: true tokenUrl: https://auth.zocdoc.com/oauth/token authorizationUrl: https://auth.zocdoc.com/authorize scopes: external.appointment.write: Book and modify appointments. external.appointment.read: Read basic details of your appointments. external.schedulable_entity.read: Read schedulable entities.