---
title: "Get a channel"
method: GET
path: "/channels/{channel}"
tags: ["Channels"]
---

# Get a channel

`GET /channels/{channel}`

## Request

- Base URL: `https://api.spectate.net/v1`
- URL: `https://api.spectate.net/v1/channels/{channel}`
- Auth: HTTP bearer

Returns the channel with its delivery health. Secrets in its settings are never returned.

## Path parameters

- `channel` string, uuid, required

## Response `200`

The channel.

- Channel: A notification channel: where escalation paths send alerts. The settings of its type are in the object of that name (`email`, `slack`…); the others are `null`. Secrets (webhook URLs, tokens, header values) are never returned.
  - `id` string, uuid, required: Channel ID
  - `name` string, required: Name shown in escalation paths
  - `type` 'email' | 'slack' | 'discord' | 'microsoft_teams' | 'telegram' | 'webhook' | 'pushover' | 'sms' | 'voice', required
  - `enabled` boolean, required: Whether the channel delivers. `false` when a member turned it off or Spectate did after repeated failures (`auto_disabled`)
  - `auto_disabled` boolean, required: Whether Spectate turned the channel off because deliveries kept failing. Fix the cause, then enable it or send a test with `enable`
  - `disabled_at` string, date-time, nullable, required: When the channel was turned off automatically
  - `disabled_reason` string, nullable, required: Why it was turned off automatically
  - `consecutive_failures` integer, required: Failed deliveries since the last successful one
  - `failing_since` string, date-time, nullable, required: Since when deliveries fail
  - `last_failure_at` string, date-time, nullable, required: When a delivery last failed
  - `last_failure_reason` string, nullable, required: Why the last delivery failed
  - `last_delivered_at` string, date-time, nullable, required: When a delivery last succeeded
  - `email` ChannelEmail, required: Where an `email` channel sends.
    - `address` string, email, required: The address alerts go to
  - `slack` ChannelSlack, required: Where a `slack` channel posts: a channel of a Slack workspace connected under Integrations.
    - `installation_id` string, uuid, nullable, required: The team's Slack installation (workspace) that posts. `null` for older channels with their own bot token
    - `channel` string, required: The Slack channel ID
    - `channel_name` string, nullable, required: The channel's name, for display
  - `telegram` ChannelTelegram, required: The chat a `telegram` channel sends to. Telegram channels are connected from the dashboard (Alerting → Channels), not through the API.
    - `chat_id` string, required: The Telegram chat ID
    - `chat_title` string, nullable, required: The chat's title, for display
  - `webhook` ChannelWebhook, required: What a `webhook` channel sends. The URL and header values can hold credentials, so only the host and the header names are returned.
    - `host` string, nullable, required: The host of the URL the channel posts to
    - `header_names` string[], required: Names of the headers it sends
  - `pushover` ChannelPushover, required: Who a `pushover` channel notifies. The application token is write-only.
    - `user_key` string, required: The Pushover user or group key
    - `priority` integer, nullable, required: Pushover priority, -2 (lowest) to 2 (emergency); `null` for normal (0)
  - `sms` ChannelPhone, required: The phone an `sms` or `voice` channel reaches. Each message or call uses the team's notification credits.
    - `phone_number` string, required: The phone number in international format
  - `voice` ChannelPhone, required: The phone an `sms` or `voice` channel reaches. Each message or call uses the team's notification credits.
    - `phone_number` string, required: The phone number in international format
  - `created_at` string, date-time, required: When the channel was created

## Other responses

- `401`: `UNAUTHENTICATED`: no token was sent. `INVALID_TOKEN`: the token is unknown or revoked. `TOKEN_EXPIRED`: the token has expired.
- `403`: `FORBIDDEN`: the token lacks an ability this endpoint requires (listed in `details.required_abilities`). `TEAM_PENDING_DELETION`: the team is scheduled for deletion. `TEAM_SUSPENDED`: Spectate suspended the team.
- `404`: `RESOURCE_NOT_FOUND`: there is no such resource in this team.
- `429`: `RATE_LIMITED`: too many requests for this token. Wait for the number of seconds in `Retry-After`.

---

[API](https://skmtc.dev/spectate/apis/spectate-api.md) - [All operations](https://skmtc.dev/spectate/apis/spectate-api/llms.txt) - [OpenAPI document](https://skmtc.dev/spectate/apis/spectate-api/revisions/9b1a233997de?raw)
