---
title: "Create an alert channel"
method: POST
path: "/v1/alert-channels"
tags: ["Alert channels"]
---

# Create an alert channel

`POST /v1/alert-channels`

Creates a new alert channel

## Headers

- `x-checkly-account` string — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Request body

- AlertChannelCreate
  - `subscriptions` AlertChanelSubscription[] — All checks subscribed to this channel.
    - `id` number
    - `checkId` string, nullable
    - `groupId` number, nullable
    - `activated` boolean, required
  - `type` 'EMAIL' | 'SLACK' | 'SLACK_APP' | 'WEBHOOK' | 'SMS' | 'PAGERDUTY' | 'OPSGENIE' | 'CALL', required
  - `config` AlertChannelCreateConfig, required
  - `sendRecovery` boolean
  - `sendFailure` boolean
  - `sendDegraded` boolean
  - `sslExpiry` boolean — Determines if an alert should be sent for expiring SSL certificates.
  - `sslExpiryThreshold` integer — At what moment in time to start alerting on SSL certificates.
  - `autoSubscribe` boolean — Automatically subscribe newly created checks to this alert channel.

## Response `201`

Created

- AlertChannel
  - `id` number, required
  - `type` 'EMAIL' | 'SLACK' | 'SLACK_APP' | 'WEBHOOK' | 'SMS' | 'PAGERDUTY' | 'OPSGENIE' | 'CALL', required
  - `config` AlertChannelConfig, required — The configuration details for this alert channel. These can be very different based on the type of the channel.
  - `subscriptions` AlertChanelSubscription[] — All checks subscribed to this channel.
    - `id` number
    - `checkId` string, nullable
    - `groupId` number, nullable
    - `activated` boolean, required
  - `sendRecovery` boolean
  - `sendFailure` boolean
  - `sendDegraded` boolean
  - `sslExpiry` boolean — Determines if an alert should be sent for expiring SSL certificates.
  - `sslExpiryThreshold` integer — At what moment in time to start alerting on SSL certificates.
  - `autoSubscribe` boolean — Automatically subscribe newly created checks to this alert channel.
  - `created_at` string, date-time
  - `updated_at` string, date-time, nullable

## Other responses

- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `429` — Too Many Requests

---

[API](https://skmtc.net/checklyhq/apis/checkly-public-api.md) · [All operations](https://skmtc.net/checklyhq/apis/checkly-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checklyhq/checkly-public-api/revisions/87d29dc7b4fe/schema)
