# Set up Discord alerts

Discord contacts are created by inviting the HostTracker bot to your server and subscribing a channel, not by
typing an address.

## Settings reference

| Setting (UI label) | API field (v2) | Type / allowed values | Default | Plan limits | What it does for you |
|---|---|---|---|---|---|
| Contact Type | `type` | `"discord"` (read-only - see below) | - | - | |
| Address | - | None - the bot registration IS the identity | - | - | There's no `address` field to set; `RequiresAddress: false` on this type |

Language, alert delay and active hours all apply normally once the contact exists; `groupedAlerts` has no
toggle in the app for this type, but the field exists on the API.

## Add a Discord contact

1. Open **Contacts** and click **Add contact**.
2. Choose **Discord**.
3. Follow the setup wizard to invite the HostTracker bot to your Discord server, if it isn't already a member.
4. In the channel where you want alerts, run the bot's `/subscribe` command. That channel becomes the contact.
5. Once subscribed, the contact is confirmed automatically.

## What the message looks like

A message from the bot in the subscribed channel: the monitor's name and what happened.

## Do it with the API or MCP

There's no create call for this type - `discord` is `creatable: false` (`RequiresRegistration: true`); the
bot's `/subscribe` command is the only door. Once it exists, manage it normally:

```
PATCH /contact/{id}
{ "alertDelay": 0 }
```

MCP: `update_contact`, `delete_contact`, `list_contacts`, `test_contact` work on an existing Discord contact;
`create_contact` does not create this type.

## What happens next

The channel is confirmed the instant `/subscribe` completes - there's no code to enter.

## Limits and gotchas

- Alerts land in whichever channel ran `/subscribe` - run it again in another channel (or on another server) to
  add a second contact.
- The bot sends alerts independently of its own connection state, so a brief bot restart doesn't drop a
  queued alert.
- Creating one through `POST /contact` directly is refused with `422 contact_type_not_creatable`.
- Discord receives every alert kind HostTracker sends, including certificate-expiry, domain-expiry, DNSBL
  blacklist and Web Risk notices - the restriction that blocks those from a plain generic webhook contact (see
  [Webhook](/alerts/channels/webhook/#limits-and-gotchas)) only applies to `http` contacts, not bot channels.
- Unlike Telegram and Viber, Discord's bot doesn't answer an in-chat `/check` command - it's alert-delivery
  only.

## Related

- [Telegram](/alerts/channels/telegram/) - [Viber](/alerts/channels/viber/)
- [All channels](/alerts/channels/)
