---
title: "Export Conversations Endpoint"
method: POST
path: "/api/v1/remy/conversations/export"
tags: ["remy"]
---

# Export Conversations Endpoint

`POST /api/v1/remy/conversations/export`

## 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/export`
- Auth: HTTP bearer

Branded .xlsx (Email, Handle Name, Display Name, Status) of every conversation GET /conversations matches, not one page.

## 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.

## Response `200`

Successful Response

- ExcelExportResponseDTO
  - `url` string, required
  - `filename` string, required

## Other responses

- `422`: Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-10-02** `2a70cf5697f4`: 1 info
  - added the new optional `query` request parameter `status`
- **2026-10-01** `fff247daebe7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/remy/conversations/export/post.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)
