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

# One uniform surface

> Every capability is defined once and exposed identically over REST and MCP — same names, same inputs, same errors.

Boom's public platform is a single set of **capabilities**. Each one — say,
*create a WhatsApp template* — is defined once, with one input schema, one
output shape, and one set of error codes, and then exposed everywhere:

* **REST** — as an endpoint under `/api/v1`, authenticated with an
  [organization API key](/authentication).
* **MCP** — as a tool with the same name and schema, authenticated with
  your Boom login ([set up in two steps](/use-mcp)).

Whatever you learn on one surface transfers to the other: the field names,
the validation rules, the pagination cursors, and the
[error codes](/rate-limits-and-errors) are identical. An integration you
prototype by chatting with an AI tool over MCP behaves the same when you
port it to server-side REST calls.

<Note>
  This documentation is generated from the same schemas the API validates
  against — the reference pages cannot drift from what the platform
  actually does.
</Note>

## How names map

MCP tool names are the REST resource and action joined with underscores.
A few representative rows per domain (the **API** and **CDP** tabs list every
endpoint):

| Domain               | REST endpoint                                                        | MCP tool                                |
| -------------------- | -------------------------------------------------------------------- | --------------------------------------- |
| CDP — People         | `POST /api/v1/cdp/people`                                            | `cdp_people_upsert`                     |
| CDP — People         | `GET /api/v1/cdp/people/{externalId}`                                | `cdp_people_get`                        |
| CDP — Events         | `POST /api/v1/cdp/events`                                            | `cdp_events_record`                     |
| CDP — Custom objects | `POST /api/v1/cdp/custom-objects`                                    | `cdp_custom_objects_upsert`             |
| CDP — Relationships  | `POST /api/v1/cdp/relationships`                                     | `cdp_relationships_link`                |
| Segments             | `GET /api/v1/segments`                                               | `segments_list`                         |
| Segments             | `POST /api/v1/segments/preview`                                      | `segments_preview`                      |
| Segments             | `POST /api/v1/segments/{slug}/evaluate`                              | `segments_evaluate`                     |
| Initiatives          | `POST /api/v1/initiatives`                                           | `initiatives_create`                    |
| Initiatives          | `POST /api/v1/initiatives/{id}/launch`                               | `initiatives_launch`                    |
| Initiatives          | `GET /api/v1/initiatives/{id}/data/summary`                          | `initiatives_summary`                   |
| Participants         | `POST /api/v1/initiatives/{id}/participants`                         | `initiatives_participants_add`          |
| Participants         | `GET /api/v1/initiatives/{id}/participants/{participantId}/messages` | `initiatives_participant_messages_list` |
| Participants         | `POST /api/v1/initiatives/{id}/participants/{participantId}/stop`    | `initiatives_participants_stop`         |
| Journeys             | `GET /api/v1/journeys`                                               | `journeys_list`                         |
| WhatsApp templates   | `GET /api/v1/whatsapp-numbers`                                       | `whatsapp_numbers_list`                 |
| WhatsApp templates   | `POST /api/v1/templates`                                             | `templates_create`                      |

## What differs per surface

Only the transport-level concerns:

|                    | REST                                               | MCP                                                      |
| ------------------ | -------------------------------------------------- | -------------------------------------------------------- |
| **Auth**           | Organization API key (Bearer token)                | Your Boom login (OAuth)                                  |
| **Access control** | The organization API key                           | Your role — destructive/outreach tools need an org admin |
| **Rate limits**    | [Per key](/rate-limits-and-errors)                 | Per user                                                 |
| **Errors**         | `{ "error": { "code", "message" } }` + HTTP status | Tool error with the same `code: message`                 |

## Related

<CardGroup cols={2}>
  <Card title="Use MCP" icon="plug" href="/use-mcp">
    Connect Claude, Cursor, or any AI tool to Boom.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/quickstart">
    The same capabilities over REST, end to end.
  </Card>
</CardGroup>
