Read AI · AsyncAPI Specification

Read Ai Webhooks

Version

View Spec View on GitHub CompanyMeeting IntelligenceArtificial IntelligenceTranscriptionProductivityCollaborationModel Context ProtocolAgentsWebhooksSaaSAsyncAPIWebhooksEvents

AsyncAPI Specification

read-ai-webhooks.yml Raw ↑
generated: '2026-08-05'
method: searched
source: https://support.read.ai/hc/en-us/articles/16352415827219-Getting-Started-with-Webhooks
spec_type: null
spec_note: >-
  Read AI publishes no AsyncAPI document. This is the webhook catalog captured
  verbatim from the provider's own webhook guide — the event surface exists and is
  fully documented in prose, but there is no machine-readable event contract.
description: >-
  Read AI pushes meeting reports to a customer HTTPS endpoint when a report is
  generated (and, for workspace webhooks, when a meeting starts). Webhooks are
  configured in the app at https://app.read.ai/analytics/integrations/webhooks and
  are a paid-plan feature.
transport: HTTPS POST with a raw JSON body
availability:
  plans: [Pro, Enterprise, 'Enterprise+']
  prerequisites:
    - User must have a verified email address.
    - Only workspace admins and owners can create or edit workspace webhooks.
  configuration_url: https://app.read.ai/analytics/integrations/webhooks
webhook_types:
  - type: user
    who_can_create: any user
    reports_pushed: only the creating user's reports
    triggers: [meeting_end]
    limit: 20 per user
  - type: workspace
    who_can_create: workspace admins and owners
    reports_pushed: reports for every member of the workspace
    triggers: [meeting_start, meeting_end]
    limit: 20 per workspace (separate cap)
events:
  - name: meeting_end
    trigger_field: trigger
    description: >-
      Fired when the meeting report is successfully generated after a meeting ends.
      Also the trigger value used when a user manually pushes a report from the
      report page. Carries the full standard payload.
    payload: standard
  - name: meeting_start
    trigger_field: trigger
    description: >-
      Workspace webhooks only. Fired at the start of a meeting, before any report
      exists, so it carries a reduced subset of the standard payload.
    payload: subset
    fields:
      [session_id, trigger, title, start_time, owner, platform, platform_meeting_id, request_id]
payload:
  content_type: application/json
  properties:
    - {name: session_id, description: A unique identifier for the meeting session.}
    - {name: trigger, description: 'meeting_end or meeting_start.'}
    - {name: title, description: The title of the meeting.}
    - {name: start_time, description: Start time of the meeting in UTC format.}
    - {name: end_time, description: End time of the meeting in UTC format.}
    - {name: participants, description: An array of participants in the meeting.}
    - {name: owner, description: The meeting owner.}
    - {name: summary, description: The high-level meeting summary.}
    - {name: action_items, description: Array of action items discussed during the meeting.}
    - {name: key_questions, description: Array of key questions raised during the meeting.}
    - {name: topics, description: Array of topics covered in the meeting.}
    - {name: report_url, description: URL to the meeting report in Read's web UI.}
    - {name: chapter_summaries, description: Sequential chapter summaries with their associated topics.}
    - {name: transcript, description: 'Full transcript with speaker_blocks and speakers; timestamps in Unix milliseconds.'}
    - {name: platform_meeting_id, description: The meeting ID from Teams, Zoom or Meet.}
    - {name: platform, description: The platform the meeting was recorded from.}
    - {name: request_id, description: Unique ID per delivery, used to discard duplicate payloads and prevent replay.}
security:
  signature:
    header: X-Read-Signature
    algorithm: HMAC-SHA256
    computed_over: the raw request body, unmodified and unparsed
    key_encoding: >-
      The signing key is base64; decode it to bytes before computing the HMAC. The
      header value is a lowercase hex digest.
    per_endpoint_key: true
    available_since: '2026-03-17'
    legacy_note: >-
      Webhooks created before March 2026 carry no signature and must be deleted and
      re-created to gain one.
    sample_code_languages: [python, javascript]
  replay_protection:
    field: request_id
    method: reject a payload whose request_id has already been processed
  transport: HTTPS endpoint required
delivery:
  expected_response: any 2xx status
  retry: exponential backoff on any status above 299
  retries_per_delivery: up to 5 retries (6 attempts total)
  disable_after: 25 consecutive failures, after which the webhook is marked "Stopped"
  test_mechanism: >-
    "Send test request" in the webhook configuration UI delivers a dummy payload
    matching the standard schema; an existing report can also be pushed manually.
limitations:
  - >-
    Webhooks fire only for reports a member had DIRECT access to at report-creation
    time — not for reports reached through Team Report Access or Global Report Access.
  - Reports generated from file uploads do not trigger webhooks.
  - >-
    Signature verification is unavailable on webhooks created before March 2026.
alternatives:
  no_code: https://support.read.ai/hc/en-us/articles/18847506033171-Getting-Started-with-Zapier
  pull: https://support.read.ai/hc/en-us/articles/49381161088659-API-Reference
x-evidence:
  fetched: '2026-08-05'
  url: https://support.read.ai/hc/en-us/articles/16352415827219-Getting-Started-with-Webhooks
  http_status: 200
  retrieved_via: >-
    support.read.ai/api/v2/help_center/en-us/articles/16352415827219.json — the
    Zendesk Help Center API that Read AI's own llms.txt names as the canonical
    machine-readable source. The human HTML URL is Cloudflare bot-challenged (403).