Skip to content

API Documentation (1.22)

Download OpenAPI description
Languages
Servers
Sandbox
https://api-developer-sandbox.zocdoc.com
Production
https://api-developer.zocdoc.com

NPIs

Endpoints to retrieve information about the developer's directory.

Operations

Schedulable entities

Endpoints to retrieve schedulable entities with availability information.

Operations

Insurance

Endpoints to retrieve insurance plans supported by Zocdoc.

Operations

Providers

Endpoints to retrieve providers within the developer's directory.

Operations

Provider locations

Endpoints for retrieving and modifying provider location objects and their related insurance plans and availability.

Operations

Facilities

Endpoints to retrieve facilities within the developer's directory.

Operations

Calendar integration timeslots

Endpoints to manage timeslots for providers.

Operations

Get timeslots for provider on date

Request

Get timeslots for a provider and date.

Security
ClientCredentialsFlow
Path
provider_idstringrequired
Example: pr_abc123-def456_wxyz7890
Query
datestring(date)required

The date for which to get timeslots in YYYY-MM-DD format. This parameter will match against the local date part of the time slot's start_time. For example, a timeslot with start_time of 2024-10-01T22:00 and time_zone of America/New_York is considered 2024-10-01 when querying timeslots, even though it resolves to 2024-10-02 in UTC.

Example: date=2024-10-26
limitinteger[ 1 .. 1000 ]

The limit of objects to get in the response. For this endpoint, this is equivalent to page_size.

Default 500
next_page_tokenstring

A token to get the next set of results.

curl -i -X GET \
  'https://api-developer-sandbox.zocdoc.com/v1/providers/pr_abc123-def456_wxyz7890/calendar/timeslots?date=2024-10-26&limit=500&next_page_token=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
request_idstringrequired
limitinteger
next_page_tokenstring
next_urlstring
dataArray of objects(CalendarIntegrationTimeslot)required
data[].​timeslot_idstringrequired

Timeslot id

Example: "slot:ab123"
data[].​provider_idstringrequired

Provider id

Example: "pr_abc123-def456_wxyz7890"
data[].​location_idstring

Location id

Example: "lo_abc123-def456_wxyz7890"
data[].​start_timestringrequired

The local date and time within the timezone. The seconds may be omitted.

Example: "2024-09-03T09:30:00"
data[].​time_zonestring

The IANA time zone id of the timeslot's start time.

Example: "America/New_York"
data[].​allowed_visit_reason_idsArray of strings

Restrict the timeslot to these visit reasons. Both null and an empty array will not restrict the timeslot.

Can work in conjunction with excluded_visit_reason_ids. allowed_visit_reason_ids are superceded by excluded_visit_reason_ids. So if a visit reason is included in both allowed_visit_reason_ids and excluded_visit_reason_ids, the net effect is that visit reason being excluded.

allowedexcluded=> Result
nullnullall visit reasons allowed
[A,B]nullonly A & B are allowed
null[A,B]all visit reasons except A & B are allowed
[A,B][B,C]only A is allowed (C is irrelevant)
[A,B][A,B]No visit reasons allowed, unbookable timeslot
Example: ["pc_FRO-18leckytNKtruw5dLR"]
data[].​excluded_visit_reason_idsArray of strings

Exclude these visit reasons. Both null and an empty array means no visit reasons will be excluded.

Can work in conjunction with allowed_visit_reason_ids. allowed_visit_reason_ids are superceded by excluded_visit_reason_ids. So if a visit reason is included in both allowed_visit_reason_ids and excluded_visit_reason_ids, the net effect is that visit reason being excluded.

allowedexcluded=> Result
nullnullall visit reasons allowed
[A,B]nullonly A & B are allowed
null[A,B]all visit reasons except A & B are allowed
[A,B][B,C]only A is allowed (C is irrelevant)
[A,B][A,B]No visit reasons allowed, unbookable timeslot
Example: ["pc_TlZW-r06U0W3pCsIGtSI5B"]
data[].​patient_typestring(PatientTypeForTimeslot)

A filter on the patient type allowed for a timeslot.

Enum"existing""new"
Example: "new"
data[].​created_utcstringrequired

the time this timeslot was created in Zocdoc's system.

Example: "2024-01-01T09:30:00Z"
Response
application/json
{ "request_id": "string", "limit": 0, "next_page_token": "string", "next_url": "string", "data": [ {} ] }

Put provider calendar timeslots

Request

This endpoint sets the complete list of available slots for a specific provider on a specific date. Each request must include the entire set of slots for that date. If a provider wishes to list times at multiple locations for a single date, each location must have its own timeslot object added to the array. A new request made for the same provider and date will overwrite the previous set of slots. If you send an empty array, all slots for that provider across all locations on that date will be deleted.

Note: The timeslots are stored in an eventually consistent data store. This means there is a small possibility that a fetch might not include recently created slots if you fetch timeslots immediately after inserting them.

Parameter Validations:

  • The user must have access to the specified provider_id.

Validations for each timeslot in the request body:

  • slot.provider_id:
    • Must match the provider_id specified in the endpoint parameter.
  • slot.start_time:
    • Must be a valid "local date-time" string in ISO 8601 format, e.g., 2024-09-15T12:13:00. The seconds component is optional.
    • The date component must match the date parameter.
  • slot.time_zone:
    • Must be a valid IANA time zone ID (e.g., America/New_York or America/Denver).
Security
ClientCredentialsFlow
Path
provider_idstringrequired
Example: pr_abc123-def456_wxyz7890
Query
datestring(date)required

The date for which to put timeslots in YYYY-MM-DD format.

Example: date=2024-10-16
Bodyapplication/json
timeslotsArray of objects(TimeslotBaseRequest)[ 0 .. 1500 ] items
curl -i -X PUT \
  'https://api-developer-sandbox.zocdoc.com/v1/providers/pr_abc123-def456_wxyz7890/calendar/timeslots?date=2024-10-16' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "timeslots": [
      {
        "provider_id": "pr_abc123-def456_wxyz7890",
        "location_id": "lo_abc123-def456_wxyz7890",
        "start_time": "2024-10-16T09:30:00",
        "time_zone": "America/New_York",
        "allowed_visit_reason_ids": [
          "pc_TlZW-r06U0W3pCsIGtSI5B"
        ],
        "excluded_visit_reason_ids": [
          "pc_TAZW-r16U0B3pZeIutSI3L"
        ],
        "patient_type": "new"
      }
    ]
  }'

Responses

OK

Response
No content

Appointments

Endpoints for booking, cancelling, and rescheduling appointments, including retrieving current appointment statuses and updated information.

Operations

Webhook

Sandbox endpoints to mock webhook behavior

Operations