---
title: "Search conversation logs by call IDs"
method: POST
path: "/conversation/search"
tags: ["Logs"]
---

# Search conversation logs by call IDs

`POST /conversation/search`

Fetch specific conversation logs by their callIds. This endpoint allows you to retrieve up to 100 specific calls at once.
Only returns calls that belong to agents in your organization (security check enforced).
Unlike the GET /conversation endpoint, this endpoint can also return retry calls (non-root calls).

**Differences from GET /conversation response:** each log item has the same base structure but
the following three fields are **not** included here:
- `dispositionMetrics` — not enriched
- `agentDispositionConfig` — not enriched
- `versionNumber` — not enriched

## Request body

- object
  - `callIds` string[], required — Array of callIds to fetch. Format: `CALL-{13-digit-timestamp}-{6-char-hex}` (e.g. `CALL-1737000000000-abc123`). Minimum 1, maximum 100 per request.

## Response `200`

Successful response

- object
  - `status` boolean
  - `data` object
    - `logs` object[]
      - `_id` string — The database ID of the call log
      - `callId` string — The unique call identifier
      - `status` 'pending' | 'in_progress' | 'in_queue' | 'processing' | 'active' | 'completed' | 'failed' | 'no_answer' | 'cancelled' — The status of the call
      - `duration` number — The duration of the call in seconds
      - `from` string — The phone number the call was made from
      - `to` string — The phone number the call was made to
      - `type` 'telephony_inbound' | 'telephony_outbound' | 'webcall' — The type of call
      - `agentId` string — The ID of the agent that handled the call
      - `recordingUrl` string — URL to the call recording (if available)
      - `recordingDualUrl` string — URL to the dual-channel call recording (if available)
      - `disconnectionReason` string — The reason the call was disconnected
      - `retryCount` integer — Number of retry attempts for this call
      - `createdAt` string, date-time — When the call was created
      - `callFailureReason` string — Reason the call failed, if applicable
      - `callCost` number — Discounted total cost of the call
      - `versionId` string — ID of the agent version that handled this call
      - `isTest` boolean — Whether this was a test call
      - `retryCallId` string — ID of the retry call if this call was retried
      - `retryAttemptNumber` number — Which retry attempt this was (0 = initial)
      - `postCallAnalytics` object — Post-call analytics results evaluated against the call transcript
        - `summary` string
        - `dispositionMetrics` object[]
          - `identifier` string
          - `value` string
          - `confidence` number
      - `turnLatencyMetrics` object — Per-turn latency statistics for the call
        - `avgLatency` number
        - `medianLatency` number
        - `minLatency` number
        - `maxLatency` number
        - `turns` number
        - `latencies` number[]
        - `transitions` object[]
          - `turn` number
          - `user_end` number
          - `bot_start` number
          - `latency` number
        - `processedAt` string, date-time
    - `total` integer — Number of logs returned
    - `requestedCount` integer — Number of callIds requested

## Other responses

- `400` — Invalid input
- `401` — Unauthorized access
- `500` — Internal server error

---

[API](https://skmtc.net/smallest-inc/apis/agent-management-api.md) · [All operations](https://skmtc.net/smallest-inc/apis/agent-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smallest-inc/agent-management-api/revisions/c2d0eb64b01a/schema)
