---
title: "List Conversations Endpoint"
method: GET
path: "/api/v1/remy/conversations"
tags: ["remy"]
---

# List Conversations Endpoint

`GET /api/v1/remy/conversations`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/remy/conversations`
- Auth: HTTP bearer

Conversations this user owns, paginated (?page=&size=), with a last-message preview for the list view.

Pass kind=campaign for the negotiation inbox: roster-invite threads live here too, and they
have no brand, budget or deliverable to negotiate over.

## Query parameters

- `campaign_id` string, nullable: Scope to one campaign; omit for all of this user's.
- `kind` string, nullable: campaign | invite. Omitted = both.
- `search` string, nullable: Handle, display name or email substring, case-insensitive.
- `status` 'contacted' | 'negotiating' | 'closed' | 'rejected': Four stable states — legacy's fifth value ("replied") was a transient step that its own auto-advance logic immediately overwrote with "negotiating" on the same call, so it never actually persisted as a stable state. Not carried over here.
- `page` integer
- `size` integer

## Response `200`

Successful Response

- ConversationListPageDTO
  - `items` ConversationListItemDTO[]
    - `id` string, required
    - `creator_id` string, required
    - `platform` string, required
    - `channel` string, required
    - `status` string, required
    - `agreed_price` number, nullable
    - `handle` string, nullable
    - `display_name` string, nullable
    - `profile_pic_url` string, nullable
    - `followers` integer, nullable
    - `last_message_at` string, date-time, nullable
    - `last_message_preview` string, nullable
    - `last_message_role` string, nullable
    - `has_email` boolean
    - `email_id` string, nullable
    - `has_dm_handle` boolean
  - `total` integer
  - `page` integer
  - `size` integer
  - `pages` integer
  - `counts` object
  - `agreed_value` number

## Other responses

- `422`: Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-10-02** `2a70cf5697f4`: 4 breaking, 11 info
  - the response property `items` became optional for the status `200`
  - the response property `page` became optional for the status `200`
  - the response property `size` became optional for the status `200`
  - the response property `total` became optional for the status `200`
  - …11 more
- **2026-10-01** `fff247daebe7`: 1 breaking, 8 info
  - the response's body type changed from `array` to `object` for status `200`
  - added the new optional `query` request parameter `page`
  - added the new optional `query` request parameter `search`
  - added the new optional `query` request parameter `size`
  - …5 more
- **2026-09-21** `a6cea1834b97`: 3 info
  - added the optional property `items/email_id` to the response with the `200` status
  - added the optional property `items/has_dm_handle` to the response with the `200` status
  - added the optional property `items/has_email` to the response with the `200` status
- **2026-09-11** `163530d84bc1`: 1 info
  - added the new optional `query` request parameter `kind`

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/remy/conversations/get.md)

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/02d28bde684c?raw)
