> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.lumenia.net/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.lumenia.net/_mcp/server.

# Call logs

**Call logs** are the record of voice calls answered by your [voice integrations](/documentation/core-concepts/voice-integration). Each log captures who called, a summary, how long it lasted, and what it cost — and, per call, the full transcript. Call logs are **read-only**: they are produced by the platform as calls happen; there is no create, update, or delete.

Logs are scoped to the account in `X-Account-Id`.

## Listing call logs

```
GET /v1/call-logs
```

Returns the account's calls, newest first. Optional query filters narrow the results (an unknown filter value simply returns nothing rather than erroring):

| Filter             | Effect                                          |
| ------------------ | ----------------------------------------------- |
| `organizationId`   | Only calls for workspaces in this organization. |
| `workspaceId`      | Only calls for this workspace.                  |
| `after` / `before` | Restrict to a time range.                       |
| `limit` / `offset` | Page through the results.                       |

Each row contains:

| Field             | Meaning                                                                               |
| ----------------- | ------------------------------------------------------------------------------------- |
| `id`              | The call id — also how you address the detail route below.                            |
| `customerNumber`  | The caller's phone number.                                                            |
| `summary`         | An auto-generated summary of the call.                                                |
| `durationSeconds` | Call length in seconds.                                                               |
| `cost`            | Cost breakdown: `total`, `speechToText`, `languageModel`, `textToSpeech`, `platform`. |
| `workspaceId`     | The workspace that handled the call.                                                  |
| `assistant`       | The underlying assistant id, included only when present.                              |
| `createdAt`       | When the call took place.                                                             |

Any numeric field can be `null` when the call legitimately has no value for it.

## Getting a single call

```
GET /v1/call-logs/{callId}
```

Returns the same fields as the list row, plus the live **`transcript`** fetched at request time.

The turn-by-turn **`messages`** array can be large, so it is omitted by default. Request it explicitly:

```
GET /v1/call-logs/{callId}?include=messages
```

> **Info**
>
> `transcript` and `messages` are fetched live from the voice provider when you read a single call. If the provider cannot be reached, the request **fails** rather than returning partial data — `502` when the provider is unreachable or errors, `500` when it is not configured on our side. On a successful response these fields may still be `null` (or `messages` an empty array) when the call legitimately has none — for example a very short call — which is real data, not an error.