Zocdoc reference API

Endpoints to retrieve information about the developer's directory.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zocdoc-reference-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zocdoc-reference-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: '1.177'
  title: API Documentation reference API
  description: Endpoints to retrieve active provider NPIs within the developer's directory.
servers:
- url: https://api-developer-sandbox.zocdoc.com
  description: Sandbox
- url: https://api-developer.zocdoc.com
  description: Production
tags:
- name: reference
  description: Endpoints to retrieve active provider NPIs within the developer's directory.
  x-displayName: NPIs
paths:
  /v1/reference/npi:
    get:
      tags:
      - reference
      summary: Get active provider NPIs
      description: 'Retrieves the list of active provider NPIs within the developer''s Zocdoc directory.
        The NPIs retrieved here can be used to search for providers in the /v1/providers endpoint to facilitate
        availability, discovery, and booking.


        Developers can fetch the NPI list and cache in their system. The available NPIs do not change
        frequently. Pulling this data once a week and/or after known directory change events should be
        sufficient.

        '
      security:
      - ClientCredentialsFlow: []
      - AuthorizationCodeFlow: []
      operationId: getProviderNpis
      parameters:
      - name: page
        in: query
        description: The zero indexed page of results. A mimimum value of 0 will be accepted.
        schema:
          type: integer
      - name: page_size
        in: query
        description: The number of results to return per page. A mimimum value of 1 and a maximum of 60000
          will be accepted.
        schema:
          type: integer
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderNpiResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
components:
  schemas:
    BaseResult:
      required:
      - request_id
      type: object
      properties:
        request_id:
          type: string
          description: Unique request identifier for tracing
    Error:
      required:
      - message
      type: object
      properties:
        field:
          type: string
        message:
          type: string
    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'
    ErrorType:
      type: string
      enum:
      - api_error
      - invalid_request
    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
    ProviderNpiResponse:
      allOf:
      - $ref: '#/components/schemas/PaginatedBaseResult'
      - type: object
        required:
        - data
        properties:
          data:
            $ref: '#/components/schemas/ProviderNpis'
    ProviderNpis:
      type: object
      properties:
        npis:
          type: array
          items:
            type: string
  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.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.
            external.booking_intent.write: Create and modify booking intents.
            external.booking_intent.read: Read booking intents.
            external.consent.read: Read your partner-connect consent grants.
            external.partner_consent.write: Revoke your partner-connect consent grants.
    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.