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

# Cloud API and connectors

> Opt in to hosted REST and remote MCP access for your Anarlog meetings.

The Cloud API lets remote agents read your Anarlog meetings while the desktop app is closed. It requires Anarlog Pro and stays off until you enable it.

<Warning>
  Enabling Cloud API & Connectors uploads a separate server-readable copy of
  your meeting titles, notes, summaries, participants, action items, and
  transcripts. Your normal cloud sync data stays end-to-end encrypted. Turning
  the feature off deletes the server-readable copies.
</Warning>

## Enable cloud access

1. Open **Settings → Developers → Cloud API & Connectors**.
2. Review the disclosure and turn the feature on.
3. Wait for Anarlog to upload your existing meetings.
4. Create a cloud API key and copy it. The key is shown once.

Keys start with `anl_` and are stored hashed. Revoke a key from the same settings page when you no longer use it.

## REST API

The base URL is `https://api.anarlog.so/v1`. Send your cloud key as a bearer token:

```bash theme={null}
curl \
  -H "Authorization: Bearer anl_..." \
  https://api.anarlog.so/v1/meetings
```

The read endpoints are:

| Endpoint                                   | Returns                                                                                                                |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| `GET /v1/meetings`                         | Meeting list. Accepts `query`, `series_id`, `limit` (default 20, clamped to `1..200`), and `offset`.                   |
| `GET /v1/meetings/{meeting_id}`            | Meeting metadata, the canonical note, summaries, participants, and action items. Note and summary bodies are markdown. |
| `GET /v1/meetings/{meeting_id}/transcript` | Joined `text`, the raw `words`, and `pagination`. Accepts `offset` and `limit` (default 200, clamped to `1..500`).     |
| `GET /v1/meetings/{meeting_id}/history`    | Meetings in the same recurring series, newest first. Accepts `limit` and `offset`.                                     |
| `GET /v1/meetings/{meeting_id}/export`     | Full export including transcripts. `format=json` (default) or `format=markdown`.                                       |

List responses carry a `pagination` object with `offset`, `limit`, `returned`, `total`, and `next_offset`; a missing `next_offset` means the page reached the end. See the [OpenAPI document](https://api.anarlog.so/openapi.json) for the complete hosted schema.

Errors use this envelope:

```json theme={null}
{ "error": { "code": "not_found", "message": "meeting 'x' not found" } }
```

Codes: `unauthorized`, `not_found`, `invalid_request`, `internal_error`. The hosted API can also return:

* `403 subscription_required` when the account does not have an active Pro subscription.
* `403 cloud_api_not_enabled` when the account has opted out.
* `429` with a plain-text `rate limit exceeded` body and `retry-after` header when you exceed the hosted request limit.

The request limit allows a burst of 10 requests per account, then refills one request every 200 milliseconds.

<Note>
  Meeting snapshots are limited to 2 MB. When a snapshot is larger, Anarlog removes word-level transcript timing before upload but keeps the transcript text. If the snapshot is still larger than 2 MB, that meeting cannot upload. A hosted transcript without word timing returns the retained text with an empty `words` array.
</Note>

## Remote MCP

The Streamable HTTP endpoint is:

```text theme={null}
https://api.anarlog.so/mcp
```

It exposes the same four read-only tools as the local MCP server:

* `list_meetings`
* `get_meeting`
* `get_meeting_transcript`
* `get_recurring_meeting_history`

### Claude Code

Add the server with the cloud key in the authorization header:

```bash theme={null}
claude mcp add --transport http anarlog https://api.anarlog.so/mcp \
  --header "Authorization: Bearer anl_..."
```

### OpenAI Responses API

Pass the remote MCP URL and authorization header in the tool definition:

```js theme={null}
const response = await client.responses.create({
  model: "gpt-5",
  input: "Summarize my latest Anarlog meeting.",
  tools: [
    {
      type: "mcp",
      server_label: "anarlog",
      server_url: "https://api.anarlog.so/mcp",
      headers: {
        Authorization: "Bearer anl_...",
      },
      require_approval: "never",
    },
  ],
});
```

### Other MCP clients

Choose Streamable HTTP, use `https://api.anarlog.so/mcp` as the server URL, and add:

```text theme={null}
Authorization: Bearer anl_...
```

Web connector setup in claude.ai and ChatGPT depends on the authentication methods those products accept. Anarlog currently supports static bearer headers. OAuth account connection is forthcoming.

## Disable cloud access

Turn off **Cloud API & Connectors** under **Settings → Developers**. Anarlog immediately deletes all server-readable meeting snapshots. Your local meetings and end-to-end encrypted cloud sync data are unchanged.

Revoked keys cannot read snapshots. If your Pro subscription ends, existing cloud keys return `subscription_required`.
