---
title: "List call logs"
method: GET
path: "/observability/v2/call-logs/"
tags: ["observability"]
---

# List call logs

`GET /observability/v2/call-logs/`

## Request

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

List **production** call logs for an agent or project. Production-only — test/simulation runs triggered via `run_scenarios_*` do NOT create call logs; use `results_list` + `runs_bulk_retrieve` for simulation data instead.

Always pass `agent_id` or `project_id` to scope results — without one, the response may be very large. **`project_id` is required when using an organization-level API key.**

**Time window:** results default to the **last 30 days** when no timestamp range is given. A supplied range must not exceed **33 days** (wider ranges return `400`); pass `timestamp_from`/`timestamp_to` (ISO 8601) to select a window within that limit.

**Filtering:**
- `timestamp_from` / `timestamp_to` — ISO 8601 date range filter
- `call_ids` — comma-separated **CallLog IDs** (integer DB IDs of call logs in this list response), e.g. `"123,456"`. Distinct from simulation `run_id`s and from each call log's own `call_id` field (which holds the provider's call identifier string).
- `filters_v2` — structured JSON filter (same format as dashboard filters). Simple: `{"field": "success", "op": "eq", "value": true}`. Compound: `{"operator": "and", "conditions": [{...}, {...}]}`. Supported operators: `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `contains`, `startswith`, `in`, `isnull`.

## Query parameters

- `page` integer
- `page_size` integer
- `timestamp_from` string, date-time
- `timestamp_to` string, date-time
- `call_ids` string
- `agent_id` integer
- `project_id` integer
- `assistant_id` string
- `filters_v2` string
- `ql` string
- `include_count` boolean

## Response `200`

- PaginatedCallLogListList
  - `count` integer: Only present when the request passes `include_count=true`. Capped at 10000: when `count_capped` is true, the true total exceeds 10000.
  - `count_capped` boolean: Only present alongside `count`.
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `results` CallLogList[], required
    - `id` integer
    - `duration` string: Call duration in minutes in MM:SS format. Example: `01:10`
    - `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`
    - `status` 'success' | 'failure' | 'reviewed_success' | 'reviewed_failure': Status of the call or conversation. Example: `"completed"` or `"failed"` * `success` - Success * `failure` - Failure * `reviewed_success` - Reviewed Success * `reviewed_failure` - Reviewed Failure
    - `feedback` string: Feedback about the call. Example: `"Great Call"`
    - `metrics` CallLogListSerializerMetrics[]: Metrics of the call
      - `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
    - `call_ended_reason` string: Reason why the call ended. Example: - `"customer-ended-call"` - `"agent-ended-call"`
    - `customer_number` string: Customer's phone number or identifier. Example: - `"+1234567890"` - `"customer_abc123"`
    - `agent` integer, nullable: Agent ID
    - `agent_name` string: Agent name
    - `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.
    - `timestamp` string, date-time: When the call occurred. Example: `2024-03-15T10:15:45Z`
    - `error_message` string, nullable
    - `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"`
    - `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`
    - `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. ```
    - `transcript_object` string: 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 } ]`
    - `evaluation` string: Evaluation of the call

## Changes

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

[Operation history](https://skmtc.dev/cekura/apis/cekura-api/changes/observability/v2/call-logs/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)
