---
title: "List the conversations"
method: GET
path: "/conversations"
tags: ["Chat"]
---

# List the conversations

`GET /conversations`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/conversations`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.hypamoon.com/oauth/authorize`, token URL `https://api.hypamoon.com/oauth/token`, scopes: `chat:read`)

The project's chat conversations, newest first, without messages. Follow next_cursor while has_more is true.

## Query parameters

- `limit` integer
- `cursor` string
- `status` 'open' | 'closed'

## Response `200`

A page of conversations.

- ConversationList
  - `data` Conversation[], required
    - `id` string, uuid, required: The id of the conversation.
    - `channel` 'chat' | 'widget', required: The channel: chat when your app started it with an API key, widget when a visitor started it in the chat widget on a website (public chat token).
    - `status` 'open' | 'closed', required: open: takes messages. closed: takes no more messages; the summary follows.
    - `reference` string, nullable, required: Your own id for this conversation, as you sent it.
    - `metadata` object, required: Your metadata, as you sent it. The assistant never sees it.
    - `customer` object, required: What your app told us about the customer when the conversation started.
      - `name` string, nullable, required
      - `phone` string, nullable, required
      - `email` string, nullable, required
    - `language` string, required: The language the assistant opened in (nl, en, de, fr or es). It replies in the customer's language when that is one of its languages.
    - `turns` integer, required: Customer messages answered so far.
    - `max_turns` integer, required: After this many turns the conversation closes (close_reason turn_limit).
    - `created_at` string, date-time, required: When the conversation started.
    - `last_message_at` string, date-time, nullable, required: When the last message was sent.
    - `closed_at` string, date-time, nullable, required: When the conversation closed.
    - `close_reason` 'closed' | 'inactive' | 'turn_limit' | 'null', nullable, required: closed: POST /conversations/{id}/close. inactive: no message for 30 minutes. turn_limit: max_turns reached.
    - `has_summary` boolean, required: Whether the summary is ready. Fetch it with GET /conversations/{id}.
    - `summary_ready_at` string, date-time, nullable, required: When the summary was ready.
    - `test` boolean, required: true for a conversation in test mode (hm_test_): real replies, free, with a low daily limit.
  - `has_more` boolean, required: Whether there is another page.
  - `next_cursor` string, nullable, required: Pass this as cursor to get the next page.

## Other responses

- `400`: Bad Request: invalid_parameter.
- `401`: Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, project_deleted.
- `403`: Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, verification_required.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.
- `503`: Service Unavailable: service_unavailable.

---

[API](https://skmtc.dev/hypamoon/apis/hypamoon-api.md) · [All operations](https://skmtc.dev/hypamoon/apis/hypamoon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hypamoon/apis/hypamoon-api/revisions/9f0b90004c06?raw)
