> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salessequencer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Responses

> How reads and actions answer, and how to tell success from refusal.

## Reads return JSON

`GET` endpoints return the data directly, for example:

```json theme={null}
{ "stages": [ { "key": "interested", "label": "Interested", "is_positive": true } ] }
```

## Actions return `ok` and `messages`

Most `POST` actions answer the same way the app does after you click a button: a result flag, the messages the app would show, and where the app would go next.

```json theme={null}
{
  "ok": true,
  "messages": [ { "category": "success", "message": "Campaign launched" } ],
  "redirect": "/campaigns/42"
}
```

* `ok` is `false` when the action was refused. The reason is in `messages`.
* `redirect` often carries a new id. For example, creating a campaign redirects to `/campaigns/<new id>`.
* Some actions return JSON data directly instead. Each endpoint's page says what it returns.

> [!WARNING]
>
> A refused action can come back as `200` with `"ok": false`. Always check `ok`, not just the status code.

## Sending data

Write endpoints take a JSON body. Booleans, numbers, lists and objects are all fine; the API converts them for you. File uploads (CSV leads, profile picture) use `multipart/form-data`.

## Reply stages

Replies are sorted into stages. `GET /inbox/stages` lists them in board order, and `is_positive` marks the ones that count as a positive reply (interested, meeting request, more info needed, pricing question).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.