Endpoints to retrieve information about the developer's directory.
API Documentation (1.22)
https://api-developer-sandbox.zocdoc.com/
https://api-developer.zocdoc.com/
Request
This endpoint is used for creating new appointments. Developers should gather the necessary information to pass in the request body as inputs for this endpoint. Only timeslots retrieved from the /v1/provider_locations/availability endpoint will be accepted. After an /appointments call is successfully processed, the system will return an appointment ID.
The appointment_id
returned is used in the endpoint /v1/appointments/{appointment_id} to track the status of the appointment, and in the endpoint /v1/appointments/cancel to cancel an appointment.
Date & time of the appointment in ISO-8601 format with a timezone offset. Must be a valid start time from the /v1/provider_locations/availability endpoint.
The Zocdoc visit reason ID for the appointment. Must be accepted by the provider.
The Zocdoc provider-location ID for the appointment.
The patient's date of birth in the format, YYYY-MM-DD.
The patient's sex assigned at birth.
The patient's unformatted 10 digit phone number. The first and fourth digits cannot be a 0 or 1.
The patient's email address.
The patient's address, line 1.
The patient's address, two letter state code.
The patient's address, 5 digit zip code.
none_apply and prefer_not_to_say must be used independently, all other gender identities can be used in combination with each other.
Whether or not the patient has been to the provider's practice.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments
- Production
https://api-developer.zocdoc.com/v1/appointments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api-developer-sandbox.zocdoc.com/v1/appointments \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"appointment_type": "providers",
"data": {
"start_time": "2022-04-27T09:00:00-04:00",
"visit_reason_id": "pc_FRO-18leckytNKtruw5dLR",
"provider_location_id": "pr_abc123-def456_wxyz7890|lo_abc123-def456_wxyz7890",
"patient": {
"patient_id": "string",
"developer_patient_id": "string",
"first_name": "string",
"last_name": "string",
"date_of_birth": "2019-08-24",
"sex_at_birth": "male",
"phone_number": "9999999999",
"email_address": "test@example.com",
"patient_address": {
"address1": "string",
"city": "string",
"state": "NY",
"zip_code": 36925,
"address2": "string"
},
"insurance": {
"insurance_plan_id": "ip_2224",
"insurance_group_number": "string",
"insurance_member_id": "string",
"is_self_pay": true
},
"gender": [
"female_at_birth"
]
},
"patient_type": "new",
"notes": "string"
}
}'
Successful
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
Whether the appointment will be performed by a professional under the supervision of the booked provider.
The appointment location's unformatted 10 digit phone number
The appointment location's unformatted extension number, as digits
Patient facing url that can be used to navigate to Zocdoc video service appointments
Specifies how the appointment confirmation will be handled.
- auto: means the system will automatically confirm.
- manual: means confirmation requires user action.
- pending_evaluation: indicates that the confirmation approach is pending evaluation.
The appointment's visit type
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string", "is_provider_resource": true, "location_phone_number": "9999999999", "location_phone_extension": "string", "waiting_room_path": "string", "confirmation_type": "auto", "visit_type": "in_person", "notes": "string" } }
Request
This endpoint retrieves the paginated list of appointment details and statuses for the given credential. By default, appointments will be returned in descending order of start time.
A maximum of 1,000 total appointments will be returned via pagination; if more are expected, use filters and batch requests.
If the request comes from a Zocdoc user credential, only appointments that user has created will be returned. If the request comes from a machine-to-machine credential, any appointments that were booked with that developer will be returned.
The zero indexed page of results. A mimimum value of 0 and a maximum of 10 will be accepted.
The number of results to return per page. A mimimum value of 1 and a maximum of 100 will be accepted.
A comma-delimited list of Zocodc appointment statuses to filter appointments by.
The patient identifier provided by 3P developer to filter appointments by.
The field to sort appointments by. Default is start_time.
The direction to sort appointments by. Default is descending.
The comma separated values of provider ids to filter appointments by
The comma separated values of location ids to filter appointments by
The comma separated values of practice ids to filter appointments by
The minimum UTC start time of the appointments to fetch. Exclude appointments that start before this time.
The maximum UTC start time of the appointments to fetch. Exclude appointments that start after this time.
The minimum UTC created time of the appointments to fetch. Exclude appointments that were created before this time.
The maximum UTC created time of the appointments to fetch. Exclude appointments that were created after this time.
The minimum UTC last modified time of the appointments to fetch. Exclude appointments that were last modified before this time.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments
- Production
https://api-developer.zocdoc.com/v1/appointments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://api-developer-sandbox.zocdoc.com/v1/appointments?page=0&page_size=10&statuses=pending_booking%2Cconfirmed&developer_patient_id=string&sort_by=start_time_utc&sort_direction=ascending&provider_ids=pr_abc123-def456_wxyz7890%2Cpr_ghi123-jkl456_mnop7890&location_ids=lo_abc123-def456_wxyz7890%2Clo_ghi123-jkl456_mnop7890&practice_ids=pt_abc123-def456_wxyz7890%2Cpt_ghi123-jkl456_mnop7890&start_time_utc_min=2024-01-01T00%3A00%3A00Z&start_time_utc_max=2024-01-01T00%3A00%3A00Z&created_time_utc_min=2024-01-01T00%3A00%3A00Z&created_time_utc_max=2024-01-01T00%3A00%3A00Z&last_modified_time_utc_min=2024-01-01T00%3A00%3A00Z&last_modified_time_utc_max=2024-01-01T00%3A00%3A00Z' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
Successful
The status of the appointment. See Appointment Status definitions.
Whether the appointment will be performed by a professional under the supervision of the booked provider.
The appointment location's unformatted 10 digit phone number
The appointment location's unformatted extension number, as digits
Patient facing url that can be used to navigate to Zocdoc video service appointments
Specifies how the appointment confirmation will be handled.
- auto: means the system will automatically confirm.
- manual: means confirmation requires user action.
- pending_evaluation: indicates that the confirmation approach is pending evaluation.
Date & time of the appointment
UTC date & time of the appointment creation
UTC date & time of the appointment last modification
The appointment's visit type
Whether or not the patient has been to the provider's practice.
Optional free text description for the appointment cancellation. Only use this field when cancellation_reason_type is set to 'other_patient_reason' or 'other_provider_reason'.
Enum field describing why the appointment was cancelled. This field is optional but recommended when known for metrics purposes. If the cancellation reason does not match any predefined enum values, use 'other_patient_reason' or 'other_provider_reason' and provide a free text explanation in the cancellation_reason field.
{ "request_id": "string", "page": 0, "page_size": 0, "total_count": 0, "next_url": "string", "data": [ { … } ] }
Request
This endpoint retrieves updated appointment details and the status of a single existing appointment. Developers must send a valid appointment_id
as input in the request body, and Zocdoc returns the appointment details and status for that appointment. See Appointment Status definitions.
If the appointment was booked with a Zocdoc user credential, only that user will have access to view or modify the appointment. If the appointment was booked with a machine-to-machine credential, the appointment can be viewed and modified by any of the developer's machine-to-machine credentials.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/{appointment_id}
- Production
https://api-developer.zocdoc.com/v1/appointments/{appointment_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api-developer-sandbox.zocdoc.com/v1/appointments/d04b049a-41b1-4aba-9268-d8973cf72cdd \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
Successful
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
Whether the appointment will be performed by a professional under the supervision of the booked provider.
The appointment location's unformatted 10 digit phone number
The appointment location's unformatted extension number, as digits
Patient facing url that can be used to navigate to Zocdoc video service appointments
Specifies how the appointment confirmation will be handled.
- auto: means the system will automatically confirm.
- manual: means confirmation requires user action.
- pending_evaluation: indicates that the confirmation approach is pending evaluation.
Date & time of the appointment
UTC date & time of the appointment creation
UTC date & time of the appointment last modification
The appointment's visit type
Whether or not the patient has been to the provider's practice.
Optional free text description for the appointment cancellation. Only use this field when cancellation_reason_type is set to 'other_patient_reason' or 'other_provider_reason'.
Enum field describing why the appointment was cancelled. This field is optional but recommended when known for metrics purposes. If the cancellation reason does not match any predefined enum values, use 'other_patient_reason' or 'other_provider_reason' and provide a free text explanation in the cancellation_reason field.
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string", "is_provider_resource": true, "location_phone_number": "9999999999", "location_phone_extension": "string", "waiting_room_path": "string", "confirmation_type": "auto", "start_time": "2022-04-27T09:00:00-04:00", "created_time_utc": "2024-01-01T09:30:00Z", "last_modified_time_utc": "2024-01-01T09:30:00Z", "provider_location_id": "string", "practice_id": "string", "visit_reason_id": "string", "visit_type": "in_person", "patient_type": "new", "notes": "string", "cancellation_reason": "string", "cancellation_reason_type": "patient_no_longer_needs_appointment" } }
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/{appointment_id}/participants
- Production
https://api-developer.zocdoc.com/v1/appointments/{appointment_id}/participants
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://api-developer-sandbox.zocdoc.com/v1/appointments/d04b049a-41b1-4aba-9268-d8973cf72cdd/participants \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
Success
The patient's date of birth in the format, YYYY-MM-DD.
The patient's sex assigned at birth.
The patient's unformatted 10 digit phone number. The first and fourth digits cannot be a 0 or 1.
The patient's email address.
The patient's address, line 1.
The patient's address, two letter state code.
The patient's address, 5 digit zip code.
none_apply and prefer_not_to_say must be used independently, all other gender identities can be used in combination with each other.
Documents and files that have been uploaded by the patient for this appointment, such as insurance cards, ID cards, or intake forms.
Types of attachments that patients have uploaded and are returned in participant data.
A full URL to download the attachment pointing to one of auxiliary endpoints in the same API. To access the url the same authentication must be used as the one used to make the request to /participants endpoint.
{ "request_id": "string", "data": { "patient": { … }, "provider_id": "string", "location_id": "string" } }
Request
This endpoint is used to request the cancellation of an appointment in a non-cancelled status. (Non-cancelled statuses include: pending_booking, booking_failed, confirmed, pending_reschedule, reschedule_failed and rescheduled)
Developers must send a valid appointment_id
as input in the request body and may choose to pass a cancellation reason using the standardized cancellation_reason_type
field. The optional cancellation_reason
field should only be used when the cancellation reason type is 'other_patient_reason' or 'other_provider_reason' to provide additional context.
If the appointment was booked with a Zocdoc user credential, only that user will have access to view or modify the appointment. If the appointment was booked with a machine-to-machine credential, the appointment can be viewed and modified by any of the developer's machine-to-machine credentials.
The Zocdoc ID of the appointment.
Optional free text description for the appointment cancellation. Only use this field when cancellation_reason_type is set to 'other_patient_reason' or 'other_provider_reason'.
Enum field describing why the appointment was cancelled. This field is optional but recommended when known for metrics purposes. If the cancellation reason does not match any predefined enum values, use 'other_patient_reason' or 'other_provider_reason' and provide a free text explanation in the cancellation_reason field.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/cancel
- Production
https://api-developer.zocdoc.com/v1/appointments/cancel
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api-developer-sandbox.zocdoc.com/v1/appointments/cancel \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"appointment_id": "d04b049a-41b1-4aba-9268-d8973cf72cdd",
"cancellation_reason": "string",
"cancellation_reason_type": "patient_no_longer_needs_appointment"
}'
Successful
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string" } }
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/confirm
- Production
https://api-developer.zocdoc.com/v1/appointments/confirm
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api-developer-sandbox.zocdoc.com/v1/appointments/confirm \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"appointment_id": "d04b049a-41b1-4aba-9268-d8973cf72cdd"
}'
Success
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string" } }
Request
This endpoint is used to only modify the appointment time and request the reschedule of an appointment in pending_booking, confirmed, pending_reschedule, or rescheduled status. Developers must send a valid appointment_id
and a new start time as input in the request body.
If the appointment was booked with a Zocdoc user credential, only that user will have access to view or modify the appointment. If the appointment was booked with a machine-to-machine credential, the appointment can be viewed and modified by any of the developer's machine-to-machine credentials.
The Zocdoc id of the appointment
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/reschedule
- Production
https://api-developer.zocdoc.com/v1/appointments/reschedule
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://api-developer-sandbox.zocdoc.com/v1/appointments/reschedule \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"appointment_id": "63f995c2-49c4-40c8-a93a-140fb32e913b",
"start_time": "2022-04-27T09:00:00-04:00"
}'
Successful
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
Whether the appointment will be performed by a professional under the supervision of the booked provider.
The appointment location's unformatted 10 digit phone number
The appointment location's unformatted extension number, as digits
Patient facing url that can be used to navigate to Zocdoc video service appointments
Specifies how the appointment confirmation will be handled.
- auto: means the system will automatically confirm.
- manual: means confirmation requires user action.
- pending_evaluation: indicates that the confirmation approach is pending evaluation.
The appointment's visit type
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string", "is_provider_resource": true, "location_phone_number": "9999999999", "location_phone_extension": "string", "waiting_room_path": "string", "confirmation_type": "auto", "visit_type": "in_person", "notes": "string" } }
Request
This endpoint is used to upload attachment documents related to the appointment for the provider to view.
Only documents of type jpg, png, pdf, and docx are supported. Documents must be less than 10MB. You may not upload attachments to appointments in a failed state or over 7 days after the appointment.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/{appointment_id}/attachments
- Production
https://api-developer.zocdoc.com/v1/appointments/{appointment_id}/attachments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://api-developer-sandbox.zocdoc.com/v1/appointments/{appointment_id}/attachments' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F attachment=string \
-F attachment_type=community_care_packet
{ "request_id": "string", "data": { "appointment_id": "string", "attachments": [ … ] } }
Request
Use this endpoint to update the status of an appointment to either 'arrived' or 'no_show'.
arrived
: Indicates the patient has arrived at the office.no_show
: Indicates the patient did not show up for their scheduled appointment. Appointment start time should be in the past but no older than 2 days to be marked as no_show.
The Zocdoc ID of the appointment.
- Sandbox
https://api-developer-sandbox.zocdoc.com/v1/appointments/update-status
- Production
https://api-developer.zocdoc.com/v1/appointments/update-status
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://api-developer-sandbox.zocdoc.com/v1/appointments/update-status \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"appointment_id": "d04b049a-41b1-4aba-9268-d8973cf72cdd",
"appointment_status": "arrived"
}'
Successful status update
Data that will be returned upon a sucessful booking request
The status of the appointment. See Appointment Status definitions.
{ "request_id": "string", "data": { "appointment_id": "string", "appointment_status": "pending_booking", "developer_patient_id": "string" } }