Skip to main content
This page documents Bota webhook event types, triggers, and payload shapes.

Event Structure

All webhook requests use the same envelope:
Webhook payloads are notifications, not full resource snapshots. Fetch the recording, transcription, or summary by ID if your handler needs fields that are not included in the webhook.

Recording Events

Recording events include data.recording.

recording.created

Triggered when a recording is created.

recording.uploaded

Triggered when audio upload completes successfully.

recording.deleted

Triggered when a recording is deleted.

recording.integrity_failure

Triggered when uploaded audio fails server-side SHA-256 verification.

Transcription Events

Transcription events include data.transcription.

transcription.started

Triggered when transcription processing begins.

transcription.completed

Triggered when transcription processing completes successfully.

transcription.failed

Triggered when transcription processing fails.

Summary Events

Summary events include data.summary.

summary.started

Triggered when summary generation begins.

summary.completed

Triggered when summary generation completes successfully.

summary.failed

Triggered when summary generation fails.

Device Events

Device claim events include data.device.

device.claimed

Triggered when a device is claimed through app-less registration.

device.activated

Triggered when a claimed device is activated.

Subscribing to Events

When creating a webhook, specify which events to receive:

Event Delivery Order

Events are delivered in the order they occur, but network conditions may cause out-of-order arrival. Design your handlers to be order-independent. Example Timeline:
  1. recording.created — Recording entry created
  2. recording.uploaded — Audio upload completed
  3. transcription.started — Transcription processing begins
  4. transcription.completed — Transcription finished
  5. summary.started — Summary generation begins
  6. summary.completed — Summary generated
Each event is independent. You may receive transcription.completed before your handler has finished processing recording.uploaded.

Handling Tips

Async Processing

Process events asynchronously to avoid timeouts:

Type-Safe Handlers

Use TypeScript or schema validation:

Webhooks Overview

Setup, verification, and best practices

Create Webhook

API endpoint reference