Zocdoc · AsyncAPI Specification
Zocdoc Webhooks
Version
View Spec
View on GitHub
HealthcareAppointmentsBookingProvidersInsuranceTelehealthSchedulingAsyncAPIEvents
AsyncAPI Specification
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.
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.