---
title: "Retrieve the figures of the conversation logs"
description: "Retrieve the conversations, questions, people, credits and thumbs of the conversation logs over the same filters as the list. Free."
canonical: "https://lookio.app/docs/api/logs/get-log-conversation-stats"
updated: "2026-10-18"
---

# Retrieve the figures of the conversation logs

Requires `assistants:write`.

The totals behind [the list of conversations](/docs/api/logs/list-log-conversations), over the same filters (`channel`, `widget_id`, `api_key_id`, `assistant_id`, `rating`, `end_user`, `q`, `from`, `to`) and without `cursor` or `limit`. With no filter it covers every conversation still kept, which is the last 90 days.

`people` counts distinct `end_user` values, and a conversation without one counts as one person. `by_channel` gives the conversations of each channel, with zero for a channel that has none.

This endpoint was `GET /v1/logs/stats` before 18 October 2026. The same permissions as the list apply. See [Logs](/docs/platform/logs).

```http
GET https://api.lookio.app/v1/logs/conversations/stats
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Query parameters

- `channel` (`string`, length: `≥ 1 chars`): Only the conversations from these channels, comma-separated: `widget` (visitors of a widget), `api` (an API key through REST, the CLI or the SDK), `mcp` (an API key through the MCP server). Default: all three.
- `widget_id` (`string`, pattern: `^wdg_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`): Only this widget's visitors.
- `api_key_id` (`string`, length: `1–64 chars`): Only the conversations asked with this API key (the `api_key.id` of a conversation in these logs).
- `assistant_id` (`string`, pattern: `^ast_[abcdefghjkmnpqrstuvwxyz23456789]{12}$`): Only the conversations with this assistant.
- `rating` (`enum<string>`, one of: `up, down, rated, unrated`): `down`: at least one thumbs down (where the assistant failed). `up`: at least one thumbs up. `rated`: any thumb. `unrated`: none.
- `end_user` (`string`, length: `1–200 chars`): Only this person: a widget visitor's random id, or the `end_user` your product sends with its questions.
- `q` (`string`, length: `1–200 chars`): Words in the title or in any question or answer, without regard to case.
- `from` (`string`): Only conversations with activity since this ISO 8601 date or timestamp.
- `to` (`string`): Only conversations started before this ISO 8601 date or timestamp.

## Response

**200**: Retrieve the figures of the conversation logs

- `data` (`object`, required)
- `data.conversations` (`integer`, required)
- `data.questions` (`integer`, required): Questions asked, so answers given.
- `data.people` (`integer`, required): Distinct `end_user` values. A conversation without one counts as one person.
- `data.credits` (`integer`, required)
- `data.thumbs_up` (`integer`, required)
- `data.thumbs_down` (`integer`, required)
- `data.by_channel` (`object`, required): Conversations per channel.
- `data.by_channel.widget` (`integer`, required)
- `data.by_channel.api` (`integer`, required)
- `data.by_channel.mcp` (`integer`, required)
- `request_id` (`string`, required)

```json
{
  "data": {
    "conversations": 120,
    "questions": 310,
    "people": 64,
    "credits": 9300,
    "thumbs_up": 41,
    "thumbs_down": 7,
    "by_channel": {
      "widget": 80,
      "api": 35,
      "mcp": 5
    }
  },
  "request_id": "req_01K9X7M2Q4"
}
```

**400**: Possible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request GET \
  --url 'https://api.lookio.app/v1/logs/conversations/stats' \
  --header 'Authorization: <api-key>'
```
