Zocdoc API Integration: Access, Limits and Costs (2026)
CTO & Co-Founder
CTO & Co-Founder at Nirmitee.io. Architects healthcare integrations across FHIR, SMART on FHIR, ABDM and NHCX, writing from production experience taking hospital software from sandbox to go-live.

Zocdoc runs a marketplace where patients find providers and book care. Its API lets a third party build online scheduling inside its own product. The API guides and the API reference are public at api-docs.zocdoc.com, and the reference shows version 1.183.
This guide is for a buyer or product lead who has to connect a product to Zocdoc, and for the engineer who will build it. It covers who gets access, every documented operation and the published limits. It also covers what Zocdoc leaves unpublished and what to ask before you commit. Last checked: Nov 14, 2026.
Zocdoc API at a glance
| Question | Short answer |
|---|---|
| Who grants access? | Zocdoc, after a contact form and a reply. There is no self-serve sign-up. |
| Who signs? | The developer works under a Developer Licensing agreement. Its text is not public. Zocdoc does not publish who at a practice must sign. |
| Are there public documents? | Yes. Guides, an API reference at version 1.183 and a changelog. |
| Which routes exist? | A REST API in two directions, webhooks, an SFTP file feed, a deep link, an MCP server for AI agents, and a calendar sync that Zocdoc builds itself. |
| What does it cost? | Zocdoc publishes no fee for API access or for any partner program. Practices pay a one-time fee per discovery booking, and the amount is not public. |
| How long does it take? | Zocdoc publishes no time for approval, contract or go-live. |
| What is the biggest limit? | You see and book only the providers in the directory you agree with Zocdoc. The rate limit number is not published. |
What can you build with the Zocdoc API?
Nine use cases follow, one or more for each Zocdoc program. Each points to a row in the table of what you can read and write. Zocdoc publishes no build times, so this guide gives no build estimate. Build complexity is our own rating.
1. Book appointments for patients from a care navigation app
medium
- Who it is for: care navigation, referral management and patient engagement companies that apply as Developer Partners.
- The value: your staff or your users find a provider, see live slots and book without leaving your product.
- Build complexity: medium.
- How well it works: well, inside your directory. The patient booking API covers provider search, live slots, booking, canceling and rescheduling. You see only the providers in your own directory. See row P4, P5, P6, P7 and P10.
2. Add Zocdoc booking to a health plan directory or consumer site
low to medium
- Who it is for: health plans, provider directories and consumer apps that apply to the Care Access Network.
- The value: a visitor books at the moment they find a provider on your site.
- Build complexity: low to medium.
- How well it works: well, with two ways to build it. Zocdoc says a partner can build the booking flow in its own app or hand the user to Zocdoc. Each slot carries a deep link that opens the booking on zocdoc.com. If you hand off, you do not see the result of the booking. See row P5, P6 and P26.
3. Let an AI agent find and book care
medium
- Who it is for: companies that run AI assistants and agents.
- The value: the agent searches providers, checks availability and insurance, and books for the patient.
- Build complexity: medium.
- How well it works: open, but thinly documented. Zocdoc says a registered agent receives credentials for its MCP server or its REST API. The agent page says what the MCP server does. We found no MCP page in the developer documents on Nov 14, 2026. Agents must get the patient's explicit consent before booking, changing or canceling. See row P24 and P7.
4. Publish an EHR's open slots on Zocdoc
high
- Who it is for: EHR, practice management and scheduling software companies.
- The value: your customers show accurate availability on Zocdoc and get the bookings in your calendar.
- Build complexity: high.
- How well it works: well, and the work sits on your side. Your software pushes the full set of open slots for each provider and date. A new booking arrives as pending, and your software must confirm it. After the visit you mark the patient arrived or no-show. See row P13, P11 and P22.
5. Connect a practice that runs a listed EHR
low to medium
- Who it is for: practices and groups, and the consultants who set up their systems.
- The value: the practice manages one schedule, and bookings land in its own system.
- Build complexity: low to medium.
- How well it works: well for systems Zocdoc already connects to. Zocdoc says it pulls real-time availability and writes appointments directly to the EHR. For certain practices the connection reads availability but does not write bookings back. Zocdoc does not publish a named list of the connected systems. See row P25.
6. Keep a provider's accepted insurance plans up to date
medium
- Who it is for: credentialing, payer enrollment and practice operations software companies.
- The value: patients see the right plans on the provider's Zocdoc profile.
- Build complexity: medium.
- How well it works: only for selected partners. Zocdoc says the Insurance API is for select partners. An update is queued, so the response means accepted, not finished. The mappings can be read only when the provider keeps them per provider location. See row P14 and P15.
7. Load your bookable provider list from a file feed
low to medium
- Who it is for: directories, health plans and data teams that keep a large provider list in step.
- The value: one file tells you every active provider location in your network.
- Build complexity: low to medium.
- How well it works: well for a nightly or hourly load. Zocdoc uploads the file to an SFTP server that you host. The file is JSON or tab-delimited text. Uploads can be as frequent as hourly, on a schedule you arrange with Zocdoc. See row P23 and P2.
8. React to a provider's change with webhooks
medium
- Who it is for: any partner that keeps its own copy of appointment status.
- The value: your system learns of a change without polling.
- Build complexity: medium.
- How well it works: well, with limits on what fires. In patient booking, webhooks fire only for changes the provider makes. Zocdoc does not retry when your server answers with an error code. You cannot register the address by API. See row P22 and P19.
9. Show Zocdoc ratings beside each provider
low to medium
- Who it is for: directories and booking apps that want a quality signal next to each provider.
- The value: users see a review count and average ratings without leaving your product.
- Build complexity: low to medium.
- How well it works: numbers only, and only with the scope. The endpoint returns a review count and average ratings, and no review text. It needs a scope that Zocdoc enables for your API client. See row P16.
The nine Zocdoc use cases compared
| Use case | Who it is for | Build complexity (our rating) | Row in the read and write table |
|---|---|---|---|
| 1. Book appointments for patients from a care navigation app | Care navigation, referral and patient engagement companies | Medium | P4, P5, P6, P7, P10 |
| 2. Add Zocdoc booking to a health plan directory or consumer site | Health plans, directories and consumer apps | Low to medium | P5, P6, P26 |
| 3. Let an AI agent find and book care | Companies that run AI assistants and agents | Medium | P24, P7 |
| 4. Publish an EHR's open slots on Zocdoc | EHR, practice management and scheduling software companies | High | P13, P11, P22 |
| 5. Connect a practice that runs a listed EHR | Practices, groups and their consultants | Low to medium | P25 |
| 6. Keep a provider's accepted insurance plans up to date | Credentialing and practice operations software companies | Medium | P14, P15 |
| 7. Load your bookable provider list from a file feed | Directories, health plans and data teams | Low to medium | P23, P2 |
| 8. React to a provider's change with webhooks | Any partner that keeps its own appointment status | Medium | P22, P19 |
| 9. Show Zocdoc ratings beside each provider | Directories and booking apps | Low to medium | P16 |
How do you get access to the Zocdoc API?
You apply through a contact form and wait for Zocdoc to reply. There is no self-serve sign-up, and the form you use depends on what you build.
The three programs and the agent route
| Program | Who it is for | How you apply | What Zocdoc states |
|---|---|---|---|
| Developer Partner | Software that builds online scheduling into its own interface | The form on Zocdoc's developer page | A Zocdoc representative follows up. Partners get implementation and ongoing developer support. |
| Integration Partner | Scheduling software, such as an EHR or practice management system | The form on Zocdoc's partner page | Partners sit in tiers, and Zocdoc's partnership team helps pick the tier. |
| Care Access Network | Platforms that want online booking on their own property | The form on the Care Access Network page | A partner builds the booking flow itself or hands off to Zocdoc. |
| AI agents | Companies that run an AI agent | The agent registration form | After registration the agent receives credentials for the MCP server or the REST API. The form asks whether the sender is authorized to submit partnership inquiries for its organization. |
The steps for a Developer Partner
- Send the form. The developer page asks you to fill out the form, and Zocdoc gets in touch.
- Wait for the follow-up. The only stated next step is that a Zocdoc representative follows up.
- Agree the terms. The documents name a Developer Licensing agreement in the rules for handling credentials. Its text is not public.
- Agree the directory. Each developer has a designated provider directory, defined and onboarded jointly with Zocdoc. The glossary calls it a curated subset of Zocdoc providers.
- Receive credentials. You receive one client ID and secret for sandbox and another for production.
Every API guide opens by saying you need a developer account and an access token first.
What an Integration Partner should expect
A March 2024 press release says the program places scheduling software partners into tiers on technical and commercial criteria. The release describes three levels. The lowest needs an acceptable format of calendar integration. The middle one needs the standard technical requirements to be maintained. The highest needs the full integration requirements and continuing upgrades. Zocdoc names DrChrono by EverHealth as an Advanced Integration Partner, the highest tier. The criteria themselves are not listed.
Access that is switched on per partner
Three parts of the API are not open to every approved developer.
- Insurance. The Insurance API is for select partners.
- Reviews. The reviews endpoints need a scope that Zocdoc enables for your API client.
- Deep link booking. Sending users to zocdoc.com to finish a booking suits only certain use cases and partnership arrangements.
What happens on the practice side
For a calendar connection, the practice sets it up inside its own Zocdoc account, with instructions specific to its scheduling software. One possible step is that the practice enters its scheduling software login.
Named partners describe their own steps. These are partner statements about their own products.
- Elation Health documents that at least one provider-level user at the practice needs a Zocdoc account before its integration starts. It documents that Zocdoc makes contact once the practice completes a form. The page footer shows 2023.
- Healthie documents that its integration requires a separate Zocdoc account and agreement alongside Healthie. Its help article documents that Healthie generates an API key, which the practice shares with Zocdoc to turn the integration on.
- DrChrono by EverHealth documents that the practice activates its integration from a Zocdoc page.
- Practice Fusion documents that the practice starts in the Zocdoc provider dashboard, selects Practice Fusion and logs in with its Practice Fusion credentials.
What Zocdoc does not publish about access
Zocdoc does not publish who is accepted or refused. It does not publish the text of the Developer Licensing agreement or the tier criteria. It does not publish who at a practice must sign before a third party acts for it. The reference lists scopes for "partner-connect consent grants", and no guide explains who gives that consent or how.
Ask Zocdoc:
- Which program fits our product, and can one company hold more than one?
- What are the approval criteria, and what does the Developer Licensing agreement require?
- Who at a practice has to consent before we act for it, and what is a partner-connect consent grant?
- Which providers will be in our directory, and how do we change it?
What does Zocdoc API access give you?
Access gives you credentials for a sandbox and for production, a provider directory, and the scopes Zocdoc enables for your client.
Credentials and environments
| Item | What Zocdoc documents |
|---|---|
| Server credentials | A client ID and client secret for each environment, sandbox and production. |
| User credentials | A separate single-page application credential set, if your app allows user actions. |
| Sandbox base address | https://api-developer-sandbox.zocdoc.com/ |
| Production base address | https://api-developer.zocdoc.com/ |
| Token scope | A token works in one environment only. |
| Sharing | Sandbox credentials can be distributed to developers. Production secrets belong only on secure backend services. |
What the sandbox holds
The sandbox includes predefined provider test data and special inputs that simulate edge cases. One test value returns a provider with multiple locations. Another returns an appointment that is already confirmed. Reference data in the sandbox, such as specialties and visit reasons, is sample data. In the sandbox any valid base64 string works as a webhook key.
Two test endpoints send a signed sample webhook to your own address. Both return 404 outside the sandbox.
The directory
A Zocdoc directory is a developer-managed list of Zocdoc providers. Each developer account has at least one, and more can be created. You tell Zocdoc which providers are live and bookable in your app by sending "enabled" or "disabled" for each.
Scopes
The reference lists 13 scopes for server-to-server clients. The documented user sign-in request asks for the appointment read and write scopes and offline access.
Support
Zocdoc lists implementation and ongoing developer support among the benefits for Developer Partners. In production, you can ask for maps of specialties and visit reasons to their Zocdoc IDs by email at partner-devsupport@zocdoc.com. Zocdoc describes onboarding as easy, with minimal setup, and publishes no checklist.
Zocdoc does not publish whether sandbox credentials come before or after a contract, or how production credentials are released.
What are the ways to integrate with Zocdoc?
Zocdoc offers a REST API in two directions, plus webhooks, a file feed, a deep link, an MCP server and a calendar sync that it builds itself. The words FHIR and HL7 appear nowhere in the API documents, so Zocdoc publishes no FHIR or HL7 route.
| Route | What Zocdoc documents | Fits when |
|---|---|---|
| REST API, patient booking | Search providers, read live slots, book and manage appointments. | You book on behalf of patients in your own product. |
| REST API, calendar integration | Create availability, manage appointments and manage timeslots on behalf of a provider. | You are the scheduling software and you hold the calendar. |
| REST API, insurance | Keep a provider's Zocdoc insurance configuration accurate. | You manage which plans a provider accepts, and Zocdoc has selected you. |
| OAuth 2.0 sign-in | OAuth 2.0 is a standard way for an app to get a short-lived access token. Zocdoc uses it for every call. | Always. Servers use the client credentials grant. Signed-in users use the authorization code grant. |
| Webhooks | A webhook is a call Zocdoc makes to your server when something changes. Zocdoc sends two kinds. | You keep your own copy of appointment or insurance data. |
| SFTP file feed | A file with the full list of active provider locations in your network. SFTP is a secure way to move files. | A scheduled file is enough for your directory. |
| Deep link | Each timeslot carries a link that books that slot on zocdoc.com. | You want booking without building the booking screens, and your arrangement allows it. |
| MCP server | MCP (Model Context Protocol) is a standard way for an AI agent to call an outside tool. Zocdoc's server lets an agent search providers, check availability and insurance, and book. | You run an AI agent and have registered it. |
| Calendar sync through a listed EHR | Zocdoc connects to the practice's scheduling software itself and says it integrates with over 175 systems. | The practice runs a system Zocdoc already connects to. |
| Manual upkeep | The practice keeps its availability up to date in the Zocdoc Calendar. | No integration exists for the practice's system. |
Three notes on the table.
The count of connected systems differs by page. Zocdoc's integrations page says over 175 EHR and practice management systems. Its developer page says 150+ EHRs. Zocdoc does not publish the list of names.
For a system that is not connected, Zocdoc's integrations page says it supports other systems and flexible ways to connect, including API-based options. Some scheduling software cannot be connected at all, and Zocdoc shows that to the practice as a "Not eligible" status.
The file feed can also go to a cloud storage bucket, which you arrange through your account manager.
Zocdoc's agent page names a machine-readable guide for agents at zocdoc.com/llms.txt. That file returned an error to us on Nov 14, 2026, so nothing in this guide comes from it.
Want a second opinion on the route before you apply? See our EHR integration service.
What can you read and write with the Zocdoc API?
The API reference at version 1.183 documents 32 operations. Reads are GET calls and writes are POST or PUT calls. The reference has no DELETE or PATCH operation. Paths sit under /v1, and the facilities endpoints sit under /v1-beta.
Rows P1 to P19 cover all 32 operations. Rows P20 to P26 cover what Zocdoc documents outside the reference.
| Row | Function | Method and path | Read or write | Evidence |
|---|---|---|---|---|
| P1 | List the NPIs in your directory. An NPI is the national ID number of a US provider. | GET /v1/reference/npi | Read | Returns the active provider NPIs within the developer's directory. |
| P2 | List provider locations in your directory | GET /v1/schedulable_entities | Read | Returns the schedulable entities in the directory with availability information. |
| P3 | Compare your own provider list with Zocdoc's | PUT /v1/schedulable_entities/overlaps | Write | You submit NPIs to compare your directory with providers bookable on Zocdoc. |
| P4 | Provider profile by NPI | GET /v1/providers | Read | Returns name, gender identity, specialty, locations and provider location IDs. |
| P5 | Search provider locations, and read one | GET /v1/provider_locations and GET /v1/provider_locations/{provider_location_id} | Read | Search takes ZIP code, specialty, visit reason and accepted insurance. The second call returns one provider location. |
| P6 | Open slots | GET /v1/provider_locations/availability | Read | Needs provider location IDs, a visit reason ID and a patient type. |
| P7 | Book an appointment | POST /v1/appointments | Write | Accepts only timeslots that came from the availability endpoint. |
| P8 | List appointments, and read one | GET /v1/appointments and GET /v1/appointments/{appointment_id} | Read | The list is paginated and tied to the credential. The single call returns details and status. |
| P9 | The people on an appointment | GET /v1/appointments/{appointment_id}/participants | Read | Returns the participants. It also returns documents the patient uploaded, such as insurance cards, ID cards or intake forms. |
| P10 | Cancel or move an appointment | POST /v1/appointments/cancel and POST /v1/appointments/reschedule | Write | Cancel works on any appointment that is not already canceled. Reschedule changes the time only. |
| P11 | Confirm, and mark arrived or no-show | POST /v1/appointments/confirm and PUT /v1/appointments/update-status | Write | Confirm applies to a pending booking. Update-status sets "arrived" or "no_show". |
| P12 | Upload a document for the provider | POST /v1/appointments/{appointment_id}/attachments | Write | Uploads documents related to the appointment for the provider to view. |
| P13 | A provider's calendar slots | GET /v1/providers/{provider_id}/calendar/timeslots and PUT /v1/providers/{provider_id}/calendar/timeslots | Read and write | GET returns the timeslots for a provider and date. PUT sets the complete list of slots for a provider on a date. |
| P14 | Insurance plans a provider location accepts | GET /v1/provider_locations/{provider_location_id}/insurance_mappings and POST /v1/provider_locations/{provider_location_id}/insurance_mappings | Read and write | GET returns eligible plans and current mappings. POST is asynchronous. |
| P15 | Insurance plan list | GET /v1/insurance_plans and GET /v1/insurance_plans/{insurance_plan_id} | Read | The list takes filters. The second call returns one plan. |
| P16 | Review counts and average ratings | GET /v1/providers/{provider_id}/reviews and GET /v1/providers/reviews | Read | Numbers only, on a 1 to 5 scale. The batch call takes up to 100 providers. |
| P17 | Facilities (beta) | GET /v1-beta/facilities and GET /v1-beta/facilities/{facility_id} | Read | Returns facilities in the developer's network. The second call returns one facility. |
| P18 | Reference lists | GET /v1/specialties, GET /v1/specialties/{specialty_id}, GET /v1/visit_reasons and GET /v1/visit_reasons/{visit_reason_id} | Read | Specialties, with a filter by care category. Visit reasons, with a filter by specialty. |
| P19 | Test webhooks (sandbox only) | POST /v1/webhook/mock-request and POST /v1/webhook/insurance-ref-data/mock-request | Write | Each sends one signed sample webhook to your address. |
| P20 | Token for a user who has not signed in | POST /v1/token/anonymous-user | Write | Documented in the authentication guide, for provider, provider location and reference endpoints. |
| P21 | Rotate your client secret | /v1/credentials/rotate | Write | Named in the changelog only. The method is not stated. |
| P22 | Webhooks from Zocdoc to you | The address you give Zocdoc | Zocdoc writes to you | One appointment event, appointment_updated. Two insurance events, added in October 2026. |
| P23 | Provider location file feed | An SFTP server that you host | Zocdoc writes to you | The full list of active provider locations in your network. |
| P24 | MCP server for AI agents | Not published | Read and write | Search providers, check availability and insurance, and book. No public documentation. |
| P25 | Calendar sync that Zocdoc builds | Inside Zocdoc and the practice's system | Read and write | Zocdoc pulls availability and writes appointments to the EHR. Patient details, visit reason, insurance and intake forms land in the practice's system. |
| P26 | Deep link to zocdoc.com | A link on each timeslot | Hand-off to Zocdoc | A non-PHI link that books that specific timeslot on zocdoc.com. |
Each appointment also shows the channel where it was booked, such as the Zocdoc marketplace or your website.
Scopes and data shapes with no documented path
Three things appear in the reference with no endpoint and no guide.
- Booking intents. The reference lists scopes to create, modify and read booking intents. No path for them is published.
- Patient payment method. A scope exists to read the patient payment method for an appointment. The data shape mentions a Stripe customer ID on a Stripe Connect account. No path is published.
- Patient consent records. A data shape holds consent types such as financial responsibility, terms of service and the HIPAA notice of privacy practices. It stores the consent text shown to the patient. No path is published.
Ask Zocdoc whether these are live for any partner, and under which program.
What is not possible with the Zocdoc API?
Zocdoc publishes no list of what is closed to partners. The limits below come from single statements in its documents and from what the reference leaves out.
What the reference does not expose
The reference has no endpoint to search or read patients outside an appointment, and no clinical data. It has no endpoint to create or edit a provider, practice or location. It has no review text, and no payment or eligibility-check endpoint.
What the documents rule out
- No providers outside your directory. Provider calls return providers within the developer's directory.
- No review text. Only counts and averages come back.
- No change of provider or visit reason on a reschedule. A reschedule changes the appointment time.
- No booking result on a hand-off. If the user books through the deep link, you do not see the result.
- No view of other users' appointments. A request with a user credential returns only the appointments that user created.
- No webhook for your own actions in patient booking. Webhooks there fire only for provider-initiated changes. The "created" value exists only in the provider scheduling use case.
- No webhook registration by API. You submit your address to the Zocdoc API team.
- No insurance mappings at other levels. A provider that keeps mappings at another entity level returns a 409 conflict.
- No late attachments. You cannot upload to a failed appointment, or more than 7 days after the appointment.
- No late no-show. The start time must be in the past but no older than 2 days.
- No server tokens in browsers or mobile apps. Tokens from client credentials must stay on the server.
- No phone number for some API products. The location phone field returns null for certain API products, and Zocdoc does not say which.
Rules for AI agents
Zocdoc's agent page sets rules for registered agents. Do not copy, resell or republish Zocdoc provider, review, insurance, availability or appointment data. If you use information found on Zocdoc, complete the booking on Zocdoc. Do not train on patient information. Agents that break the rules may receive lower limits or lose access.
Rules for the public website
The partner routes exist beside strict rules for the website itself. Zocdoc's Terms of Use, effective Mar 4, 2026, bar accumulating or indexing content, including appointment availability. Its Acceptable Use Policy, dated Jan 27, 2022, bars web scraping. The same policy bars booking appointments by automated means. Both pages were read as archive copies, dated Sep 25, 2026 and Aug 12, 2025.
Limits of the calendar sync that Zocdoc builds
- For certain practices the sync reads availability but does not write appointments back into the scheduling software.
- Once the sync is on, the practice cannot add or edit availability in the Zocdoc Calendar. It can still add busy blocks.
- Some scheduling software is not eligible.
The usual workarounds
- Need more providers? The directory is defined with Zocdoc, so ask Zocdoc to change it.
- Need to know about your own bookings? Update your system from the API response, and do not wait for a webhook.
- No connection for the practice's system? The practice keeps availability up to date in the Zocdoc Calendar.
- System not on Zocdoc's list? Zocdoc points to API-based options.
What are the Zocdoc API limits?
Zocdoc publishes many per-call limits, and it does not publish the rate limit number. A request over the limit fails with HTTP 429, and Zocdoc tells developers to back off exponentially. Zocdoc can reduce the limit without notice, or raise it for high-traffic applications, case by case. Its agent page promises registered agents higher rate limits and gives no number.
Published numbers
| Limit | Published value |
|---|---|
| NPIs per provider lookup | 50 per call |
| Provider locations per availability call | 50 per call |
| Availability window | 31 days at most, both dates included |
| Availability start date | Guaranteed up to 150 days ahead |
| Appointment list | 1,000 appointments at most through paging |
| Appointment list page size | 1 to 100 |
| Provider location search | Pages 0 to 10, and 1 to 50 results per page |
| Search radius | 1 to 50 miles |
| NPI list page size | Up to 60,000 |
| Provider location list page size | 5,000 by default, 10,000 at most |
| Change tracking on that list | The last 72 hours |
| Specialties, visit reasons, insurance plans | 100 per page by default, 500 at most |
| Reviews batch | 100 provider IDs per call |
| Slot push | 1,500 slots per call |
| Slot read page size | 1 to 10,000 |
| Booking notes | 100 characters |
| Attachments | jpg, png, pdf or docx, under 100MB |
| "Next available" fields | Up to 90 days ahead |
| Access token | 60 minutes |
| Refresh token | 15 days without use, 30 days at most |
| User login session | 30 minutes without use, 1 day at most |
| Webhook answer time | 5 seconds |
| Webhook retries | None on an error status code. Up to 15 attempts over about 4 days when Zocdoc gets no answer. |
| Insurance webhook size | 1 to 100 changed items per message |
| SFTP file feed | Hourly at most |
| Calendar sync that Zocdoc builds | Typical refresh of 0 to 25 minutes |
Two more points shape a design. Timeslots sit in an eventually consistent data store, so a read straight after a write can miss the change. Zocdoc suggests pulling the NPI and provider location lists once a week, or after a known directory change.
What Zocdoc does not publish about limits
Zocdoc does not publish the rate limit number, how far back appointment history goes, data retention, or an uptime commitment. On the marketplace, patients can book only times at least 2 hours ahead. The API documents do not say whether that rule applies to API bookings.
Ask Zocdoc:
- What is our rate limit, per endpoint and per client?
- How far back can we read appointments?
- Does the 2-hour lead time apply to bookings made through the API?
- Is there an uptime commitment or a status page for the API?
How much does Zocdoc API integration cost?
Zocdoc publishes no fee for API access, for the Developer Partner program or for any Integration Partner tier. It does publish how practices are charged, without amounts.
What Zocdoc states about practice fees
- There are no upfront fees or subscription costs to join. A September 2026 press release says any provider can join the network free.
- The practice pays a one-time fee for a discovery booking. That is a booking where Zocdoc helps a patient discover and book the provider, on Zocdoc or on partner sites.
- Reputation bookings are free.
- The fee varies by specialty and location.
- The fee is charged at the time of booking, whether or not the patient attends.
- Zocdoc judges "existing patient" by the patient's relationship to the provider, not to the practice.
- In some cases the practice is not charged when the patient cancels within 24 hours of booking.
- Confirming a booking has no bearing on the fee.
- Certain partners, such as insurance directories, have arranged for all bookings to be free to providers.
- On consumer sites and AI platforms the practice is charged only for discovery bookings.
- Practice Solutions carries a monthly service fee per provider. Sponsored Results carry a sponsored fee on top of the booking fee.
- Invoices are generated monthly.
Zocdoc calls the calendar integration a free tool for the practice. It also describes the DrChrono by EverHealth integration as free.
What Zocdoc states about partners
Zocdoc's agent page says eligible partners can monetize integrations, and gives no terms. It states that providers pay Zocdoc when it helps patients discover them and book care. One API search option limits results to Zocdoc-active providers with budget, and applies to syndication clients.
What named partners state
These are partner statements about their own products. None is a Zocdoc price.
- Healthie documents that its integration requires a separate Zocdoc account and agreement.
- Curve Dental describes its Zocdoc calendar integration as free.
- Practice Fusion discloses on its Zocdoc help article that it is financially compensated by the service provider.
- AdvancedMD discloses on its Zocdoc marketplace page that it may receive compensation from the company its form goes to.
What Zocdoc does not publish about cost
Zocdoc does not publish a fee or revenue share for partners, or the discovery booking fee amounts. It does not publish who pays for a booking that comes through a partner's own app. It does not publish the terms on which a partner can earn.
Ask Zocdoc:
- Is there a fee for API access, for sandbox or for production?
- Is there a fee or a revenue share for our Integration Partner tier?
- When a patient books through our app, is that a discovery booking for the practice, and what is the fee?
- On what terms can a partner earn from an integration?
How long does a Zocdoc API integration take?
Zocdoc publishes no time for developer approval, contract, certification or production go-live. After the form, the only stated next step is a follow-up from a Zocdoc representative.
The nearest statements from Zocdoc
- Practice-side calendar connection. Most integrations take one 30-minute phone call. Zocdoc scopes what each EHR supports during onboarding and gives no duration.
- Booking confirmation. After an API booking, confirmation should be expected within 24 hours.
- Insurance updates. Processing time varies with the volume of changes, and most complete at once.
- Notice of changes. Zocdoc's agent page says rate limits, terms and changes are announced ahead of time. It gives no notice period.
What named partners state
These are partner statements about switching on an existing connection for a practice. They do not cover developer approval or a new build.
| Partner | What the partner tells its customers |
|---|---|
| Curve Dental | Setting up its integration takes one 30-minute call. |
| Raintree Systems | A Zocdoc specialist makes contact within 24 business hours of the form. The page was last updated in 2023. |
Ask Zocdoc:
- How long after the form do you reply, and how long does approval take?
- When do we get sandbox credentials, before or after the contract?
- Is there a review or certification before production, and how long does it take?
- How long does a practice's calendar connection stay pending?
How do you build a Zocdoc API integration, step by step?
The build has two documented orders, one for patient booking and one for calendar integration. Both start with a token. Zocdoc does not publish whether it reviews or certifies an integration before production.
Sign-in for both flows
Zocdoc's API uses OAuth 2.0. A server gets a token with the client credentials grant. Every call then carries the token in a bearer authorization header. Zocdoc advises caching the token, to avoid generating too many.
This is the token request, copied from Zocdoc's authentication guide.
curl --request POST \
--url 'https://auth.zocdoc.com/oauth/token' \
--header 'content-type: application/json' \
--data '{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"audience": "https://api-developer.zocdoc.com/"
}'
For the sandbox, the token address is https://auth-api-developer-sandbox.zocdoc.com/oauth/token.
This is the token response example, copied from the same guide. The guide prints it under the sign-in flow for users, where the token carries the user scopes.
{
"access_token": "ACCESS_TOKEN",
"refresh_token": "REFRESH_TOKEN", // only if `offline_access was requested
"expires_in": 3600,
"token_type": "Bearer",
"scope": "external.appointment.read external.appointment.write"
}
Apps with signed-in users use the authorization code grant. Zocdoc requires PKCE with it. PKCE is a one-time proof that stops a stolen code being used. Only the S256 method is accepted. The documented sign-in request uses the audience value DeveloperApiPatient. A refresh token comes only if you request the offline access scope. Users who have not signed in each get their own anonymous token for search calls.
(a) Patient booking
- Get a token. Use the client credentials request above.
- Get the NPIs in your directory. Call
GET /v1/reference/npi. - Get provider information. There are three ways: by NPI with
GET /v1/providers, by ZIP code and specialty or visit reason withGET /v1/provider_locations, or by provider location ID. - Get availability. Call
GET /v1/provider_locations/availabilitywith a provider location ID, a visit reason ID and a patient type. A visit reason is required. - Check what the provider requires. Each provider sets booking requirements and mandatory fields.
- Book. Call
POST /v1/appointmentswith a start time from step 4. The response carries an appointment ID that you use to confirm, cancel or reschedule. - Update your system from the response. Do not wait for a webhook.
- Track the status. Read the appointment with
GET /v1/appointments/{appointment_id}. Confirmation should be expected within 24 hours. - Listen for provider changes. Give Zocdoc an HTTPS address for webhooks.
- Cancel or reschedule when the patient asks. Use
POST /v1/appointments/cancelorPOST /v1/appointments/reschedule.
(b) Calendar integration
- Get a token. Use the client credentials request above.
- Get the NPIs and the provider information. The calendar guide opens with the same two look-up steps as the booking guide.
- Push the open slots. Call
PUT /v1/providers/{provider_id}/calendar/timeslotswith the location ID and provider ID. Each call sets all slots for that provider and date and replaces the existing ones. - Receive the booking. A new booking has the status
pending_booking. The webhook update type "created" is supported only in this use case. - Confirm it. Call
POST /v1/appointments/confirm. - Read the patient. Call
GET /v1/appointments/{appointment_id}/participants. - Close the visit. After the appointment time, call
PUT /v1/appointments/update-statuswith "arrived" or "no_show". - Keep pushing. Send the full slot list again whenever the calendar changes, because each push replaces the day.
Webhook handling for both flows
Build an HTTPS endpoint and submit its address to the Zocdoc API team. Check the signature, which is an HMAC SHA256 hash that arrives in the webhook-signature header. Check that the timestamp is within a few minutes of the current time. The default is 5 minutes. Return a 2xx status within 5 seconds. Make processing idempotent, meaning safe to repeat, because a retry can deliver a notification you already processed.
Compression is optional. To send a compressed request, add the Content-Encoding: gzip header.
The appointment event is appointment_updated, and its update type is updated, cancelled or created.
Insurance updates
Read the current mappings, send the change, then read the mappings again once the update has had time to process.
Which Zocdoc API quirks should you know?
Fifteen details from the documents can change a design or a test plan. Each one below carries its source.
The provider location ID contains a pipe character
It is a provider ID and a location ID joined by a pipe, as in the documented example. It must be URL-encoded in a query string.
Time formats differ by endpoint
A booking start time carries a time zone offset and must match a slot from the availability endpoint. A pushed slot uses local time with no offset, plus an IANA time zone name. The webhook timestamp is in Unix seconds.
The default availability start date is today in US Eastern Time
The dates themselves are in the provider's local time. The slot read filter also matches the local date part of the start time.
A slot push replaces the whole day
An empty request body removes every slot for that date. On a slot, an excluded visit reason takes precedence over an allowed one.
The documents and the limits change without a new version
A September 2026 changelog entry says the availability end date must be 30 days or less after the start date, where the documents used to say 31. The reference states the same rule as a maximum span of 31 days with both dates included. In June 2026 the default page size on the provider location list went from 60,000 to 5,000. The reference still shows a single version number.
The first availability value can fall outside your dates
It is not limited to the requested date range, and it is null when no upcoming availability exists.
Webhook retries ignore your status code
Zocdoc does not retry based on the status code your endpoint returns. It makes up to 15 delivery attempts, and the last comes about 4 days after the first. Zocdoc says the insurance event ID is for support requests and is not a key for spotting duplicates. It also says it may modify the webhook schema at any time.
Real webhooks carry the practice ID only for Partner Connect apps
The mock webhook always includes it. No guide explains Partner Connect.
The credential that booked decides who can change the booking
An appointment booked with a machine-to-machine credential can be viewed and modified by any of the developer's machine-to-machine credentials.
Patient fields have strict formats
The phone number is 10 unformatted digits, and its first and fourth digits cannot be 0 or 1. Two gender values must be used on their own. Zocdoc stores your own patient ID and does not use it.
New or existing patient is Zocdoc's judgment
The glossary calls it Zocdoc's best assessment of whether a patient has previously received care from a provider. Each appointment also states its confirmation approach, which can still be pending evaluation. The status list starts with pending_booking, a request received but not yet confirmed. It also holds failed and pending states for both booking and rescheduling.
Two Zocdoc pages disagree about webhooks
The agent page says "Webhooks coming soon." The developer documents describe webhooks as live, with two kinds of notification. Ask Zocdoc which statement applies to your route.
The sandbox sign-in address is printed as the token address
The authentication guide lists the sandbox "auth url" for the user sign-in flow as the token endpoint. Ask Zocdoc for the right address before you debug a failed sign-in.
Some fields need care when you map them
Provider photo addresses are protocol-relative. One attachment type is required for VA referrals to Community Care Providers. Visit types include a video visit hosted by the provider. A merged insurance plan holds the ID of the plan it was merged into.
Errors carry a request ID
Every response has a unique request identifier for tracing. For a 401 or 403, Zocdoc's FAQ says to check that the token's environment matches the base address. A 409 Conflict response was documented for two read endpoints in July 2026.
What should you check before you sign with Zocdoc?
Check four things before you sign: consent, security, testing and support. Then put the ten questions at the end of this section to Zocdoc in writing.
Consent
Zocdoc's agent page says an agent should obtain explicit patient consent before booking, changing or canceling anything. It says to use patient information only for the patient's requested task. Zocdoc sends booking confirmations directly to patients. Agents must also preserve ranking and sponsored labels.
For website users, the Terms of Use, effective Mar 4, 2026, say that what an AI agent does counts as actions performed by the user.
Zocdoc does not publish the consent wording a partner must show the patient.
Security and compliance
- Production secrets belong only on secure backend services. Do not distribute secrets to browsers or mobile apps.
- Webhooks support HTTPS only, except for testing in the sandbox.
- Zocdoc's integrations page carries the labels "HIPAA-compliant" and "SOC 2 certified", with no detail.
- Zocdoc's help center says it undergoes annual security audits such as SOC 2 and HITRUST.
- Zocdoc's privacy policy describes cases where Zocdoc acts as a Business Associate, the HIPAA term for a company that handles patient data for a provider. It says the policy does not apply to PHI, which HIPAA regulates. PHI is protected health information.
- The Care Access Network page says HIPAA compliance is handled by Zocdoc, and gives no detail.
No page says whether a developer or partner signs a Business Associate Agreement, or with whom. Settle that before any patient data moves.
Testing
Test in the sandbox with the predefined providers and special inputs. Use the two mock webhook endpoints to check your signature code. They do not exist in production. Zocdoc does not publish whether there is a test practice in production.
Support
Developer Partners are promised implementation and ongoing developer support. Zocdoc does not publish a deprecation policy, a list of error messages or a status page for the API.
For the calendar sync, named partners point their customers to Zocdoc. Elation Health documents that issues with its integration go to Zocdoc. DrChrono by EverHealth documents the hours of Zocdoc's service team as it states them to its customers. Practice Fusion documents that a practice contacts Zocdoc to cancel its integration.
What partners document about their own sync
These statements show what one live integration does. None is a Zocdoc specification.
- Elation Health documents that the Zocdoc calendar pulls real-time availability from provider calendars in Elation. It documents that its sync covers appointments, insurance and basic patient demographics. It documents that a status change made in Elation shows in Zocdoc. It documents that the integration can be set up for some providers in a practice and not others. It documents that a new chart is created when no exact patient match is found. It documents that appointment edits must be made in Elation. It documents that working hours must also be set in Zocdoc before the integration is turned on.
- Healthie documents that its integration syncs availability to Zocdoc and creates the appointment, and the patient record if needed, in Healthie. It labels the integration "Built by Partner". It documents a buffer setting that aligns odd appointment durations with clean start times.
- Practice Fusion documents that Zocdoc can create, update and cancel appointments in its schedule, and cannot delete them or create blocks.
- AdvancedMD documents that every Zocdoc booking is reflected in AdvancedMD and the reverse.
Questions to ask Zocdoc before you sign
- Which program are we in, and which API products and scopes come with it?
- Which providers are in our directory, and how is it changed?
- What does the Developer Licensing agreement require of us?
- Do we sign a Business Associate Agreement, and with whom?
- What is our rate limit, and how much notice do we get before it changes?
- What are the fees, and who is billed for a booking that starts in our product?
- How long do approval, sandbox access and production access take?
- Is there a review before production, and what is on the checklist?
- How are the webhook key and the client secret issued and rotated?
- What is the deprecation policy, and where do you announce breaking changes?
Next step
Planning a Zocdoc API integration? We scope the route, the access steps and the build with you. Start at our EHR integration service.
Ready to scale?
Talk to our healthcare engineering team about building, integrating, and shipping faster.
Frequently Asked Questions
Does Zocdoc have a public API?
How do I get Zocdoc API access?
Is the Zocdoc API free?
What are the Zocdoc API rate limits?
What authentication does the Zocdoc API use?
Does Zocdoc have an MCP server?
Does the Zocdoc API support FHIR or HL7?
Can I get Zocdoc reviews through the API?
How does Zocdoc integrate with an EHR?
Does the Zocdoc API send webhooks?


