# Set up WhatsApp alerts

:::caution[Not yet available]
WhatsApp contacts can't be created in HostTracker yet - the channel is parked pending Meta Cloud API
onboarding and is non-creatable for every account. The steps below describe how it will work once it ships.
:::

WhatsApp alerts are designed to be sent through the official **Meta Cloud API** using a pre-approved message
template, not a regular chat message.

## Settings reference

| Setting (UI label) | API field (v2) | Type / allowed values | Default | Plan limits | What it does for you |
|---|---|---|---|---|---|
| Contact Type | `type` | `"whatsApp"` | - | - | |
| Phone number | `address` | Phone number in full international format | - (required) | - | Where the message is sent, once creation ships |

## Add a WhatsApp contact (once available)

1. Open **Contacts** and click **Add contact**.
2. Choose **WhatsApp**.
3. Enter the phone number in full international format, and give the contact a name.
4. Save and confirm the contact as prompted (the type is confirmable by code, same as SMS).

## What the message looks like

A WhatsApp message using a pre-approved Meta template - the monitor's name and what happened, similar in
content to an SMS.

## Do it with the API or MCP

The type is registered (`GET /contact/type` lists it, `creatable: false`), but creating one is refused today
with `422 contact_type_not_creatable`. There's no API or MCP workaround while the channel is parked.

## Limits and gotchas

- **Not creatable today** - see the caution above.
- **WhatsApp is designed to bill the same way as SMS** (same segment/encoding math, drawn from the same SMS
  credit balance) once it ships - it is not planned as a free channel. See
  [SMS & voice billing](/alerts/sms-billing/).
- Because WhatsApp requires the recipient to have an active WhatsApp account, plan to keep a fallback channel
  (email or SMS) subscribed to the same monitors once you do add it.
- Once it ships, WhatsApp is designed to receive 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 only applies to `http` contacts.

## Related

- [SMS](/alerts/channels/sms/)
- [SMS & voice billing](/alerts/sms-billing/)
- [All channels](/alerts/channels/)
