> For the complete documentation index, see [llms.txt](https://docs.customer-alliance.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.customer-alliance.com/introduction.md).

# Introduction

## Customer Alliance API

Review management, surveys, and feedback for hospitality, as an API. Pull your reviews, surveys and responses, analytics and AI insights, and subscribe to events with outbound webhooks.

### What you can do

* **Reviews** — list and fetch collected reviews and your published replies.
* **Surveys** — read published surveys, their responses and answers (PII-free).
* **Analytics** — aggregate reputation and rating scores for any part of your hierarchy.
* **Insights** — AI recommendations, topic mentions and the topic taxonomy.
* **Guests —** Update or create new guests per connected property.
* **Nodes** — discover the business-unit / property hierarchy your key can see.
* **Webhooks** — register endpoints and receive signed event deliveries.

### Base URL

All endpoints are relative to:

[https://app.customer-alliance.com/api/v4<br>](<https://indigo-v2.vercel.app/api/v4&#xA;&#xA;&#xA;>)

### Authentication

Every request needs your API key as a Bearer token. Create and scope keys in the Customer Alliance dashboard under **Settings → API** — the key (`ca_live_…`) is shown once, so store it somewhere safe.

`curl https://app.customer-alliance.com/api/v4/reviews`\
`-H "Authorization: Bearer ca_live_your_key_here"`

### Your first request

Call `/whoami` to confirm your key resolves to the account, node and scopes you expect:

`curl https://app.customer-alliance.com/api/v4/whoami`\
`-H "Authorization: Bearer ca_live_your_key_here"`

`{`\
`"account_id": "a1b2c3d4-…",`\
`"node_id": "e5f6a7b8-…",`\
`"scopes": ["reviews:read", "surveys:read", "webhooks:manage"]`\
`}`

### Scopes

Each key holds only the scopes you grant it — `reviews:read`, `surveys:read`, `analytics:read`, `insights:read`, `nodes:read`, `webhooks:manage`. A request missing its scope returns `403`.

### Pagination

List endpoints are cursor-paginated. Pass the previous response's `next_cursor` as `?cursor=`, up to `?limit=` (max 100), and stop when `has_more` is `false`.

### Rate limits

Requests are rate-limited per key. If you exceed the limit you'll get a `429` with a `Retry-After` header — wait that many seconds before retrying.

### Webhooks

Rather than polling, register a webhook endpoint and we'll POST signed events to you — new reviews, completed survey responses, alerts and more. See **Webhook Events** for every payload, and verify the `X-CA-Signature` header on each delivery. Manage endpoints under **Webhooks**.

### Need help?

Email support[@customer-alliance.com](mailto:info@customer-alliance.com) or visit [customer-alliance.com](https://www.customer-alliance.com/).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.customer-alliance.com/introduction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
