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

# Arrowsterr API and webhooks

> Pull brands, AI visibility, prompts, your Topic Bank and Editorial Calendar from the Arrowsterr REST API, and get webhooks for daily results and alerts.

The Arrowsterr API gives your own tools read access to your brands, AI visibility, prompts, Topic Bank and Editorial Calendar, and sends webhooks when results change. It is on Pro and up.

## Authentication

Create a key in Arrowsterr under **Settings**, then **Workspace**, then **Slack, API and MCP**. Give it a **Key name** so you can tell keys apart. Keys start with `aw_live_`.

Send the key in the `X-API-Key` header, or as `Authorization: Bearer <key>`.

```bash theme={null}
curl https://app.arrowsterr.com/api/v1/brands \
  -H "X-API-Key: aw_live_your_key"
```

Base URL: `https://app.arrowsterr.com/api/v1`

| Response | Meaning |
| - | - |
| 401 | The key is missing or not valid |
| 402 | The workspace is read-only |
| 403 | The workspace's plan does not include the API |

## Endpoints

| Method | Path | Returns |
| - | - | - |
| GET | `/me` | The workspace the key belongs to. Use it to test a connection. |
| GET | `/brands` | Brands: `id`, `name`, `domain` |
| GET | `/visibility?brand_id=…&days=30` | AI visibility by day, with the top competitors and the AIs checked that day |
| GET | `/prompts?brand_id=…` | Tracked prompts and topics |
| GET | `/topic-bank?brand_id=…` | Topic Bank keywords: volume, difficulty, intent, stage, CPC, theme, job |
| GET | `/calendar?brand_id=…` | Editorial Calendar items with status, due date, brief status and live URL |
| GET | `/webhooks` | Your webhook subscriptions and the list of events |
| POST | `/webhooks` | Subscribe with `{ "url": "https://…", "event": "daily.result" }`, or `"*"` for all events. Returns `{ id }`. |
| DELETE | `/webhooks/{id}` | Stop a subscription |
| GET | `/samples/{event}` | A sample of an event, as a list of one |

When you compare visibility across days, only the AIs checked on both days count, since Claude and Perplexity are checked weekly.

## Webhooks

Each webhook gets a JSON `POST` with `event` and the fields below. Answer `410 Gone` to unsubscribe.

| Event | When it fires | Fields |
| - | - | - |
| `daily.result` | After each brand's daily check | `visibility`, `previous`, `change`, `competitors` |
| `visibility.alert` | Visibility moved by the workspace's alert size, or a competitor overtook the brand | The daily fields plus `reasons` |
| `brief.ready` | A content brief is ready | `keyword`, `item_id`, `url` |
| `post.published` | A draft was published live | `title`, `url`, `cms` |

```bash Subscribe to every event theme={null}
curl -X POST https://app.arrowsterr.com/api/v1/webhooks \
  -H "X-API-Key: aw_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/arrowsterr-hook", "event": "*"}'
```

## Zapier

Arrowsterr works with Zapier through the same key and events: a trigger for each event (Daily result, Visibility alert, Brief ready, Post published), plus searches to find a brand and get visibility. The Zapier app is invite-only for now, so [contact us](https://arrowsterr.com/contact/) for the invite link.

## Plans

| Plan | API and webhooks |
| - | - |
| Free, Starter | Not included |
| Pro, Agency, Enterprise | Included |

To let AI apps read your data instead, use the [MCP server](https://docs.arrowsterr.com/developers/mcp.md), which is on every paid plan.


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