# Set up Pushover alerts

Pushover delivers alerts as a push notification to the Pushover app on your phone, tablet or desktop. Under the
hood a Pushover contact is an `http` contact with its `gateway` set to `Pushover` and its `address` holding
your user key (a key, not a URL).

## Settings reference

| Setting (UI label) | API field (v2) | Type / allowed values | Default | Plan limits | What it does for you |
|---|---|---|---|---|---|
| Contact Type | `type` | `"http"` | - | - | Pushover is stored as a plain `http` contact |
| Gateway | `gateway` | `"Pushover"` | - (must be set explicitly) | - | Routes through the Pushover push API |
| User key | `address` | Your Pushover **user key** (not a URL) | - (required) | - | Identifies which Pushover account/device group receives the push |
| Group events | `groupedAlerts` | boolean | `false` | - | Combine simultaneous alerts into one notification - see [grouped alerts](/alerts/grouped-alerts/) |

## Set it up in the app

1. In the Pushover app or dashboard, find your **user key**.
2. In HostTracker, open **Contacts** and click **Add contact**.
3. Choose **Pushover**.
4. Paste your user key and give the contact a name.
5. Save.

## What the message looks like

A push notification with the monitor's name and what happened, delivered to every device linked to the key.

## Do it with the API or MCP

```
POST /contact
{ "type": "http", "gateway": "Pushover", "address": "<user key>", "name": "My Pushover" }
```

MCP: use `api_request` with the body above - `create_contact` doesn't cover `http`/gateway contacts.

## What happens next

An `http` contact is born confirmed - there's no code to verify. Because Pushover's address is a key rather
than a URL, [a test](/alerts/test-a-contact/) routes through the same push sender a real alert uses, not the
raw webhook diagnostic.

## Limits and gotchas

- The contact is addressed by your **user key**, not an email or device name - copy it exactly from Pushover.
- Unlike PagerDuty/Opsgenie, Pushover is an ordinary groupable channel - turn on **Group events** if you watch
  many monitors from one key and want simultaneous alerts combined.
- [Test the contact](/alerts/test-a-contact/) to confirm the notification reaches your device before relying on
  it.
- Being a **recognized gateway** also means Pushover can receive certificate-expiry, domain-expiry, DNSBL
  blacklist and Web Risk notices - a plain unrecognized webhook contact cannot (see
  [Webhook](/alerts/channels/webhook/#limits-and-gotchas)).

## Related

- [Pushbullet](/alerts/channels/pushbullet/)
- [All channels](/alerts/channels/)
