Zocdoc · AsyncAPI Specification

Zocdoc Webhooks

Version

View Spec View on GitHub HealthcareAppointmentsBookingProvidersInsuranceTelehealthSchedulingAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-15'
method: searched
source: https://api-docs.zocdoc.com/guides/webhooks
spec_type: webhook-catalog
asyncapi_published: false
note: >-
  Zocdoc publishes NO AsyncAPI document. Searched the docs host, the llms.txt
  index, /asyncapi.yaml and /asyncapi.json on every host, and the
  github.com/Zocdoc organization — nothing. What Zocdoc DOES publish is a real,
  detailed webhook contract with HMAC signing, a documented payload, a retry
  policy and a sandbox mock endpoint, so this file captures that event surface
  as a catalog rather than fabricating an AsyncAPI. `webhooks:` is also absent
  from the OpenAPI 3.0.0 document (3.0 has no webhooks keyword).
transport: https
subscription:
  self_serve: false
  mechanism: >-
    The receiving URL is submitted to the Zocdoc API team out of band — there is
    no registration endpoint and no subscription management API. HTTP is
    permitted for sandbox receivers only.
security:
  scheme: hmac-sha256
  header_signature: webhook-signature
  header_timestamp: webhook-timestamp
  timestamp_format: unix epoch seconds
  timestamp_tolerance: 5 minutes (default)
  signed_payload: '<webhook_timestamp>.<json payload>'
  encoding: UTF-8 bytes, key supplied base64-encoded
  signature_format: 'v1:<base64>;v2:<base64> — version-prefixed, semicolon-separated'
  key_distribution: shared secret issued by the Zocdoc API team; any base64 string works in sandbox
  note: >-
    Zocdoc explicitly states the client MUST verify the signature manually, and
    warns the payload schema may change at any time.
delivery:
  retries: true
  strategy: exponential backoff
  max_duration: 48 hours from first attempt
  timeout: 5 seconds
  retry_triggers:
    - connection could not be established
    - no response within 5 seconds
    - connection severed before a response
  status_code_based_retry: false
  note: >-
    Zocdoc does NOT retry based on the status code the receiver returns — a
    receiver that answers 500 quickly gets no redelivery. Only transport-level
    failures and timeouts are retried. Ordering and exactly-once are not
    guaranteed or discussed.
events:
  - event_type: appointment_updated
    data_type: appointment_data
    description: >-
      Fires on changes to appointments booked via /v1/appointments. For the
      patient booking use case, notifications are sent ONLY for
      provider-initiated changes — a partner must update its own state from the
      API response for its own actions and must not wait for a webhook.
    payload_fields:
      - event_type
      - webhook_timestamp
      - data.data_type
      - data.appointment_data.appointment_id
      - data.appointment_data.appointment_updated_timestamp
      - data.appointment_data.appointment_update_type
      - data.appointment_data.changed_attributes[]
    update_types:
      - value: updated
      - value: cancelled
      - value: created
        note: provider scheduling use case only
    changed_attributes:
      required_when: the webhook fires due to attribute changes
      fields:
        - attribute_path
        - attachment_type
      note: >-
        Every object must carry at least `attribute_path`
        (e.g. `appointment.start_time`); objects for
        `patient.uploaded_attachments` must also carry `attachment_type`.
    schemas:
      - openapi/zocdoc-webhook-api-openapi.yml#/components/schemas/WebhookMockAppointmentData
      - openapi/zocdoc-webhook-api-openapi.yml#/components/schemas/ChangedAttribute
      - openapi/zocdoc-webhook-api-openapi.yml#/components/schemas/AppointmentUpdateType
testing:
  mock_endpoint: POST /v1/webhook/mock-request
  operation_id: mockWebhookRequest
  environment: sandbox
  detail: sandbox/zocdoc-sandbox.yml
event_count: 1
gaps:
  - Single event type — no provider, location, insurance or directory events.
  - No AsyncAPI document, so the payload has no machine-readable schema outside the sandbox mock operation.
  - No subscription management API; endpoints are registered by email.
  - No delivery log, replay, or dead-letter surface.
  - No documented event id, so receiver-side deduplication has nothing stable to key on.

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/zocdoc-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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