---
title: "Get a call log"
method: GET
path: "/observability/v2/call-logs/{id}/"
tags: ["observability"]
---

# Get a call log

`GET /observability/v2/call-logs/{id}/`

## Request

- Base URL: `https://api.cekura.ai`
- URL: `https://api.cekura.ai/observability/v2/call-logs/{id}/`
- Auth: one of:
  - API key in header `X-CEKURA-API-KEY`
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Retrieve a production CallLog by its integer **CallLog ID** (path parameter). This is distinct from simulation `run_id` (use `runs_retrieve` for those) and from the call log's own `call_id` string field (the provider's call identifier).

## Path parameters

- `id` integer, required

## Response `200`

- CallLogDetail
  - `id` integer
  - `duration` string: Call duration in minutes in MM:SS format. Example: `01:10`
  - `voice_recording_url` string: URL to access the voice recording. Example: `"https://storage.example.com/recordings/call_123_20240315.mp3"`
  - `critical_categories` CallLogCriticalCategories[]: Critical categories from call evaluation
    - `category_id` integer, required: Category ID
    - `category` string, required: Category name
    - `deviation` number, double, required: Deviation
    - `wrongly_marked` boolean, required: Whether the category was wrongly marked
    - `feedback` string, required: Feedback
    - `priority` 'critical' | 'non-critical' | 'not_a_bug', required: Priority * `critical` - Critical * `non-critical` - Non Critical * `not_a_bug` - Not A Bug
  - `transcript_object` CallLogTranscriptObject[]: Structured transcript data with timestamps. Example: ```json [ { "role": "Testing Agent", "content": "Hello", "start_time": 1.2, "end_time": 1.8 }, { "role": "Main Agent", "content": "Hello, how can I help you today?", "start_time": 1.8, "end_time": 2.5 } ]`
    - `role` string, required: Role of the message
    - `content` string, required: Content of the message
    - `timestamp` number, double, required: Timestamp of the message
  - `status` 'success' | 'failure' | 'reviewed_success' | 'reviewed_failure': * `success` - Success * `failure` - Failure * `reviewed_success` - Reviewed Success * `reviewed_failure` - Reviewed Failure
  - `agent_id` string: Agent ID. Example: `2142`
  - `agent_name` string: Agent name
  - `agent_version` object, nullable: The agent version (history record) that was live when this call was ingested, or null.
  - `evaluation` Evaluation
    - `metrics` CallLogListSerializerMetricsWithExplanation[], required
      - `id` integer, required: Metric ID
      - `name` string, required: Metric name
      - `type` string, required: Metric type
      - `score` number, double, required: Evaluated metric score, Present if metrictype is not enum
      - `enum` string, required: Metric enum, Present if type is enum
      - `value` string, required: Evaluated metric value, Present if metric type is enum
      - `explanation` string[], required
      - `extra` object, required: Evaluated metric extra data
  - `metadata` object: Additional call metadata. Example: ```json { "ended_reason": "customer-ended-call", "ringing_duration": 3.941, "call_type": "inbound" } ```
  - `dynamic_variables` object: Dynamic Variables used in the call. Example: ```json { "customer_name": "John Doe", "order_id": "ORD-12345", "product_type": "premium" } ```
  - `testing_channel_index` integer, nullable: The channel index of the testing agent in the audio recording
  - `waveform` object: Amplitude envelope of the recording, one array of values per audio channel, so a waveform can be drawn without downloading the audio. Null for recordings processed before peaks were stored.
  - `timestamp` string, date-time: When the call occurred. Example: `2024-03-15T10:15:45Z`
  - `success` boolean, nullable: Whether the call was successful. Example: `true` or `false`
  - `is_reviewed` boolean: Whether the call has been reviewed. Example: `true` or `false`
  - `feedback` string: Feedback about the call. Example: `"Great Call"`
  - `rubric` unknown
  - `transcript` string: Full text transcript of the call. Example: ```text [00:01] Testing Agent: Hello. [00:02] Main Agent: Hello, how can I help you today? [00:03] Testing Agent: Well, I mean, sure. What time exactly are we talking about here [00:04] Main Agent: 6 PM. [00:05] Testing Agent: Great. I'll book that for you. Just a sec. [00:06] Main Agent: Okay. ```
  - `call_ended_reason` string: Reason why the call ended. Example: - `"customer-ended-call"` - `"agent-ended-call"`
  - `dropoff_point` string: Point in conversation where user disengaged. Example: `"end of conversation as no queries remaining"`
  - `topic` string: Topic of the call. Example: - `"product_inquiry"` - `"technical_support"`
  - `customer_number` string: Customer's phone number or identifier. Example: - `"+1234567890"` - `"customer_abc123"`
  - `user_generated_transcript` unknown
  - `error_message` string, nullable
  - `created_at` string, date-time: When this record was created. Example: `2024-03-15T10:30:45Z`
  - `updated_at` string, date-time: When this record was last updated. Example: `2024-03-15T10:35:11Z`
  - `call_id` string, required: Unique identifier for the call. Example: - `"call_abc123xyz"` - `"stereo_audio_session_456"`
  - `trace_id` string: OpenTelemetry trace ID (32-char hex). Set when OTel tracing is enabled.
  - `is_log_present` boolean: Whether provider execution logs are stored for this call.
  - `agent` integer, nullable: Agent ID
  - `project` integer, nullable: Project ID (denormalized from agent for query performance)

## Other responses

- `404`

## Changes

- **2026-11-03** `a6fb6a739212`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/observability/v2/call-logs/:id/get.md)

---

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