# Get the alert settings

> The alert_settings.get operation: GET /api/v1/alert_settings in the REST API and the alert_settings_get tool in the MCP server.

Returns how the organization's alerts are delivered in the mode of the request. Every alert is in the
console inbox. Critical alerts are always emailed to the members whose role handles them (e.g. tax managers
and owners for registration alerts) and posted to every Slack channel; `email.high` says whether high alerts
are emailed too (`immediate`, the default, or `off`), and each Slack channel's `minSeverity` whether it gets
high alerts. Info alerts stay in the inbox.

Slack channels show their name and a hint of the webhook URL; the URL itself is never shown again.

## At a glance

- **REST:** `GET /api/v1/alert_settings`
- **MCP tool:** `alert_settings_get`
- **Operation ID:** `alert_settings.get`
- **Scope:** Organization
- **Permission:** `org:read`
- **Risk tier:** `read`
- **Dry run:** Not supported
- **Idempotency:** Not needed (read only)
- **Modes:** Test and live
- **Authentication:** API key with the `org:read` scope
- **Since:** M7

## Request

### Query parameters

This operation takes no query parameters.

## Response

`200 OK` with a JSON object:

| Field                         | Type                      | Description |
| ----------------------------- | ------------------------- | ----------- |
| `object`                      | `"alert_settings"`        |             |
| `livemode`                    | boolean                   |             |
| `email`                       | object                    |             |
| `email.high`                  | one of `immediate`, `off` |             |
| `slackChannels`               | array of object           |             |
| `slackChannels[].id`          | `sec_…` ID                |             |
| `slackChannels[].object`      | `"slack_channel"`         |             |
| `slackChannels[].name`        | string                    |             |
| `slackChannels[].urlHint`     | string                    |             |
| `slackChannels[].minSeverity` | one of `high`, `critical` |             |
| `slackChannels[].createdAt`   | date-time                 |             |
| `slackChannels[].createdBy`   | string                    |             |
| `slackChannels[].lastTest`    | object or null            |             |
| `updatedAt`                   | date-time or null         |             |
| `version`                     | integer (at least 0)      |             |

## Examples

### High alerts emailed, one Slack channel

```http
GET /api/v1/alert_settings
Authorization: Bearer or_test_…
```

Response (`200`):

```json
{
  "object": "alert_settings",
  "livemode": true,
  "email": {
    "high": "immediate"
  },
  "slackChannels": [
    {
      "id": "sec_01m4ttwd3veh9apbewxheq5xad",
      "object": "slack_channel",
      "name": "#tax-alerts",
      "urlHint": "hooks.slack.com …x7Qa",
      "minSeverity": "high",
      "createdAt": "2026-10-13T12:00:00.000Z",
      "createdBy": "usr_01m4ttwd3veh9apbewxheq5xh6",
      "lastTest": null
    }
  ],
  "updatedAt": "2026-10-13T12:00:00.000Z",
  "version": 2
}
```

## Errors

| Code                                                                                   | HTTP status | When                                         | What to do                                                                      |
| -------------------------------------------------------------------------------------- | ----------- | -------------------------------------------- | ------------------------------------------------------------------------------- |
| [`permission_denied`](https://ownrecord.io/docs/reference/errors.md#permission_denied) | 403         | You can't read this organization's settings. | Ask an organization owner or admin for a role or scope that allows this action. |

It can also return these [common errors](https://ownrecord.io/docs/reference.md#common-errors): [`validation_failed`](https://ownrecord.io/docs/reference/errors.md#validation_failed), [`api_version_unsupported`](https://ownrecord.io/docs/reference/errors.md#api_version_unsupported), [`authentication_required`](https://ownrecord.io/docs/reference/errors.md#authentication_required), [`api_key_invalid`](https://ownrecord.io/docs/reference/errors.md#api_key_invalid), [`resource_not_found`](https://ownrecord.io/docs/reference/errors.md#resource_not_found), [`dry_run_not_supported`](https://ownrecord.io/docs/reference/errors.md#dry_run_not_supported), [`rate_limited`](https://ownrecord.io/docs/reference/errors.md#rate_limited), [`internal_error`](https://ownrecord.io/docs/reference/errors.md#internal_error).
