---
title: "Call analyzed"
method: POST
path: "callAnalyzed"
tags: ["Callbacks"]
---

# Call analyzed

`POST callAnalyzed` (webhook)

This webhook uses Telnyx headers (telnyx-timestamp, telnyx-signature-ed25519) that are compatible with Standard Webhooks specification for SDK generation. Custom validation logic can map these to standard webhook-timestamp and webhook-signature equivalents. See https://github.com/standard-webhooks/standard-webhooks for details.

Delivered after an AI assistant conversation ends and post-call processing completes. The payload consolidates the conversation's generated insights, its recordings, and the call's full cost breakdown (AI Voice Assistant engine minutes, LLM inference, call control, SIP trunking, recording).

## Headers

- `telnyx-timestamp` integer, required: Unix timestamp for replay attack prevention
- `telnyx-signature-ed25519` string, required: Ed25519 signature of timestamp|payload for verification

## Payload

- CallAnalyzedEvent
  - `data` CallAnalyzed
    - `record_type` 'event': Identifies the type of the resource.
    - `event_type` 'call.analyzed': The type of event being delivered.
    - `id` string, uuid: Unique identifier for the event.
    - `occurred_at` string, date-time: ISO 8601 datetime of when the event occurred.
    - `payload` object
      - `assistant_id` string: Unique identifier of the assistant involved in the call.
      - `call_control_id` string: Call ID used to issue commands via Call Control API.
      - `connection_id` string: Call Control App ID (formerly Telnyx connection ID) used in the call.
      - `call_leg_id` string: ID that is unique to the call leg.
      - `call_session_id` string: ID that is unique to the call session (group of related call legs).
      - `client_state` string: Base64-encoded state received from a command.
      - `conversation_id` string: ID unique to the conversation generated for the call.
      - `llm_model` string: The large language model used during the conversation.
      - `stt_model` string: The speech-to-text model used in the conversation.
      - `tts_provider` string: The text-to-speech provider used in the call.
      - `tts_model_id` string: The model ID used for text-to-speech synthesis.
      - `tts_voice_id` string: Voice ID used for TTS.
      - `duration_sec` integer: Duration of the conversation in seconds.
      - `from` string: The caller's number or identifier.
      - `to` string: The callee's number or SIP address.
      - `reason` string, nullable: Reason the conversation ended.
      - `conversation_insights` object[], nullable: The conversation's generated insights, when insight generation was enabled for the assistant and has completed. Each entry carries a `status` and the generated `conversation_insights` results. An empty array when the conversation has no generated insights; null when insight data could not be retrieved.
        - `status` string: Status of insight generation for this entry.
        - `conversation_insights` object[], nullable: Generated insight results.
          - `insight_id` string: Identifier of the insight template the result was generated from.
          - `result` string: The generated insight result.
      - `cost` union: The session's cost breakdown from Session Analysis, covering every product billed on the call: the AI Voice Assistant engine minutes (`ai-voice-assistant`), LLM inference tokens (`inference`), and call-control, SIP trunking, and recording lines. If cost data could not be retrieved after retries, this field carries the placeholder string `No cost data available.` instead of an object.
        - object
          - `total` string: The total cost of the call, summed across every product in the breakdown.
          - `currency` string: The currency of the cost amounts.
          - `breakdown` object[]: Cost lines grouped by product.
            - `product` string: The Telnyx product the cost line belongs to (for example `ai-voice-assistant`, `inference`, `callcontrol-cdrs`, `siptrunking-cdrs`, `recording-cdrs`).
            - `cost` string: Total cost for this product across the call, in the currency given by `cost.currency`.
        - string
      - `recordings` object[], nullable: Recordings created for the call. An empty array when the call had no recordings; null when recording data could not be retrieved.
        - `id` string: Unique identifier of the recording.
        - `start_time` string, date-time: ISO 8601 datetime of when the recording started.
        - `end_time` string, date-time: ISO 8601 datetime of when the recording ended.
        - `format` string: The recording file format.
        - `channels` string: The recording channel configuration.
        - `download_urls` object: Download URL per format. URLs are pre-signed and expire.
          - `mp3` string: Pre-signed URL for the mp3 recording file.
          - `wav` string: Pre-signed URL for the wav recording file.

## Acknowledgement `200`

The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL.

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) - [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) - [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/f82938f53ff4?raw)
