Caretta · AsyncAPI Specification

Caretta Webhooks

Version

View Spec View on GitHub CompanyArtificial IntelligenceSalesSales IntelligenceReal-TimeConversation IntelligenceRevenue OperationsY CombinatorModel Context ProtocolWebhooksAgentsAsyncAPIWebhooksEvents

AsyncAPI Specification

caretta-webhooks.yml Raw ↑
generated: '2026-08-13'
method: searched
source: https://www.caretta.so/docs/webhooks
spec_type: none
spec_note: >-
  Caretta publishes NO AsyncAPI document. This artifact is the webhook catalog
  transcribed from the provider's own published webhook reference; type Webhooks
  is emitted, type AsyncAPI is not. Nothing here is inferred — every event,
  header, payload field and delivery rule below is stated in the docs.

surface: outbound-webhooks
direction: caretta-to-customer
transport: HTTPS POST
configuration:
  location: Settings -> Webhooks (Caretta app)
  required_role: organisation administrator
  endpoint_requirement: public HTTPS URL
  management_api: false
  management_api_note: >-
    Provider states verbatim: "Endpoint management through a public REST API is
    planned but is not currently available." Endpoints are managed only in the UI.

delivery_modes:
- mode: per-event
  default: true
  description: >-
    Any combination of call.completed, call.notes_ready and call.metrics_ready;
    each component is sent as soon as it is ready. Lowest latency.
- mode: bundled
  default: false
  description: >-
    One call.ready event after all selected components are ready. Transcript is
    always included; notes and metrics are optional.
  caveat: >-
    If a bundle requires notes and notes never generate (roughly 3-4% of calls,
    usually because the desktop app is closed before generation completes), the
    bundle is never delivered. Provider recommends a second per-event
    call.completed endpoint as a safety net.

eligibility:
  included: real calls longer than 60 seconds that have not been deleted
  excluded: calls of 60 seconds or less; deleted calls

events:
- event: call.completed
  sent_when: A captured call finishes processing.
  key_data: Call envelope and transcript.
  payload_fields: [event, schema_version, event_id, delivery_id, occurred_at, data.call.id, data.call.title, data.call.duration_seconds, data.call.owner, data.call.participants, data.transcript]
- event: call.notes_ready
  sent_when: AI-generated notes become available.
  key_data: Markdown notes, summary, and next steps.
  payload_fields: [event, schema_version, event_id, delivery_id, occurred_at, data.call.id, data.notes_markdown, data.summary, data.next_steps]
  reliability: best-effort
- event: call.metrics_ready
  sent_when: Metric evaluation finishes.
  key_data: Evaluated metrics, or an empty list with a skip reason.
  payload_fields: [event, schema_version, event_id, delivery_id, occurred_at, data.call.id, data.metrics]
  note: >-
    A completed evaluation can return an empty metrics array with a skip reason.
    Metrics can be re-evaluated; use evaluated_at to identify the latest result.
- event: call.ready
  sent_when: Every selected bundled component is ready.
  key_data: Transcript plus the selected notes and/or metrics.
- event: webhook.test
  sent_when: An administrator sends a test from Settings.
  key_data: A test message.

envelope:
  common_fields: [event, schema_version, event_id, delivery_id, occurred_at]
  schema_version: 1
  forward_compatibility: >-
    Provider instructs consumers to tolerate additional fields so they remain
    compatible as Caretta adds data.

signing:
  algorithm: HMAC-SHA256
  signed_payload: '{timestamp}.{raw request body}'
  key: per-endpoint signing secret, displayed once at creation, rotatable
  rotation_note: Rotating the secret invalidates the previous secret immediately.
  verification_warning: >-
    Verify against the ORIGINAL raw request body. Parsing JSON and
    re-serialising can change whitespace or key order and will break
    verification. Provider publishes a Node.js reference verifier using
    crypto.timingSafeEqual.
  headers:
  - header: X-Caretta-Signature
    description: 'v1= followed by the hexadecimal HMAC-SHA256 signature.'
  - header: X-Caretta-Timestamp
    description: Unix timestamp in seconds. Reject requests more than five minutes old.
  - header: X-Caretta-Delivery-Id
    description: Identifier for one delivery attempt. Network retries reuse it.
  - header: X-Caretta-Event-Id
    description: Stable idempotency key for the event. Retries reuse it.

delivery_semantics:
  guarantee: at-least-once
  deduplication_key: X-Caretta-Event-Id
  ordering: not guaranteed
  correlation_key: data.call.id
  ack_status: any 2xx
  ack_timeout_seconds: 10
  retry_policy: retried with backoff for approximately two hours
  recommended_handler: >-
    Verify the signature, store or queue the event, return 2xx, then perform
    slower processing asynchronously.

endpoint_management_ui:
  capabilities:
  - enable or disable delivery
  - change the URL, subscribed events, or delivery mode
  - send a test event
  - inspect the delivery log
  - rotate the signing secret
  - delete the endpoint

x-evidence:
- url: https://www.caretta.so/docs/webhooks
  http_status: 200
  fetched: '2026-08-13'