Teladoc · AsyncAPI Specification

Teladoc Webhooks

Version

View Spec View on GitHub CompanyHealth TechTelehealthTelemedicineVirtual CareHealthcareBehavioral HealthWebhookAsyncAPIWebhooksEvents

AsyncAPI Specification

teladoc-webhooks.yml Raw ↑
generated: '2026-07-21'
method: searched
source: https://intouchhealth.github.io/solo-slate/
spec_type: Webhooks
api: Teladoc Health Solo External API
registration:
  endpoint: POST /qapi/v1/webhooks
  manage:
  - GET /qapi/v1/webhooks
  - GET /qapi/v1/webhooks/{webhookId}
  - DELETE /qapi/v1/webhooks/{webhookId}
  model: >-
    Subscribers register a callback URL and select event types. On creation the
    API returns an encryption key used to decrypt delivered payloads.
security:
  payload_encryption: >-
    Webhook payloads are encrypted with AES-256-CBC; the key is derived as a
    sha256 hash from a salted secret supplied at webhook creation time.
events:
- name: patient:created
  category: patient
- name: patient:updated
  category: patient
- name: patient:deactivated
  category: patient
- name: appointment:scheduled
  category: appointment
- name: appointment:rescheduled
  category: appointment
- name: appointment:cancelled
  category: appointment
- name: appointment:completed
  category: appointment
- name: appointment:incompleted
  category: appointment
- name: appointment:no-show
  category: appointment
- name: appointment:lwbs
  category: appointment
  note: left without being seen
- name: episode:created
  category: episode
- name: episode:updated
  category: episode
- name: intake:completed
  category: intake
  subscription_note: >-
    Subscribing to intake:completed additionally requires an intakeQuestionIds[]
    array on the webhook registration body, selecting which intake questions are
    delivered.
  payload_shape: fhir-diagnostic-report
  payload_note: >-
    Unlike every other event — which delivers a minimal {"event": ..., "data":
    {"patientId"|"appointmentId": int}} envelope — intake:completed delivers a
    FHIR-shaped resource: a DiagnosticReport with status, subject.identifier
    (system "SPID"), encounter.identifier (system "SAID"), issued, and a
    contained[] array of Observation resources, each carrying an id (the
    question id), code.text (the question) and valueString (the answer). The
    documentation never uses the word FHIR and names no version or profile.
payload_envelopes:
- scope: patient events
  example: '{"event": {"type": "string"}, "data": {"patientId": {"type": "int"}}}'
- scope: appointment events
  example: '{"event": {"type": "string"}, "data": {"appointmentId": {"type": "int"}}}'
- scope: intake:completed
  example: FHIR DiagnosticReport with contained Observation resources (see payload_note).
registration_body:
  endpoint: string — the subscriber callback URL
  events: array of event names
  intakeQuestionIds: array — only when intake:completed is subscribed
delivery:
  retries: undocumented
  signature_header: none
  note: >-
    No delivery-retry policy, no HMAC signature header and no replay endpoint are
    documented; authenticity rests entirely on the AES-256-CBC payload
    encryption key returned at subscription time.
last_verified: '2026-08-15'

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/teladoc-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 email required.

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