---
title: "List contact conversations"
url: https://docs.gleap.ai/en/reference/rest-api/list-conversations
method: GET
path: "/s2s/contacts/{userId}/conversations"
api: "API Reference"
tag: "S2S Contacts"
operationId: "ListConversations"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# List contact conversations

`GET https://api.gleap.io/v3/s2s/contacts/{userId}/conversations`

List the contact's conversations, most recent activity first. Bot-only conversations without human interaction are hidden — exactly the widget's conversation list.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `userId` (string, required)

## Query parameters

- `cursor` (string)
- `limit` (number<double>)

## Example request

```bash
curl --request GET \
  --url 'https://api.gleap.io/v3/s2s/contacts/{userId}/conversations' \
  --header 'Authorization: Bearer <token>'
```

## Responses

### 200 (`application/json`)

Ok

- `next_cursor` (string | null, required)
- `has_more` (boolean, required)
- `items` (object[], required)
  - `id` (string, required)
  - `number` (number<double>)
  - `title` (string)
  - `type` (string)
  - `status` (string)
  - `closed` (boolean, required)
  - `archived` (boolean, required)
  - `unread` (boolean, required)
  - `rating` (number<double>): CSAT rating 0-10 given by the contact (rateconversation step or POST …/rating).
  - `workflowActive` (boolean, required)
  - `workflowId` (string)
  - `assignee` (object | null)
    - `type` (enum<string>, required): One of: `contact`, `agent`, `bot`, `system`.
    - `id` (string)
    - `name` (string)
    - `avatar` (string)
  - `attributes` (object): Construct a type with a set of properties K of type T
  - `contact` (object)
    - `userId` (string)
  - `latestMessage` (object)
    - `id` (string, required)
    - `conversationId` (string, required)
    - `text` (string)
    - `author` (object, required)
      - `type` (enum<string>, required): One of: `contact`, `agent`, `bot`, `system`.
      - `id` (string)
      - `name` (string)
      - `avatar` (string)
    - `attachments` (object[], required)
      - `url` (string, required)
      - `name` (string)
      - `contentType` (string)
    - `replyToMessageId` (string)
    - `rating` (string)
    - `unread` (boolean, required)
    - `createdAt` (string<date-time>, required)
  - `createdAt` (string<date-time>)
  - `lastActivityAt` (string<date-time>)

```json
{
  "next_cursor": "string",
  "has_more": true,
  "items": [
    {
      "id": "string",
      "number": 0,
      "title": "string",
      "type": "string",
      "status": "string",
      "closed": true,
      "archived": true,
      "unread": true,
      "rating": 0,
      "workflowActive": true,
      "workflowId": "string",
      "assignee": {
        "type": "contact",
        "id": "string",
        "name": "string",
        "avatar": "string"
      },
      "attributes": {},
      "contact": {
        "userId": "string"
      },
      "latestMessage": {
        "id": "string",
        "conversationId": "string",
        "text": "string",
        "author": {
          "type": "contact",
          "id": "string",
          "name": "string",
          "avatar": "string"
        },
        "attachments": [
          {
            "url": "string",
            "name": "string",
            "contentType": "string"
          }
        ],
        "replyToMessageId": "string",
        "rating": "string",
        "unread": true,
        "createdAt": "2026-01-01T12:00:00Z"
      },
      "createdAt": "2026-01-01T12:00:00Z",
      "lastActivityAt": "2026-01-01T12:00:00Z"
    }
  ]
}
```
