Skip to main content

Notification Management

Manage global notification URLs that can be used across all your watches. changedetection.io uses Apprise for notifications, supporting 80+ notification services.

Notification URL Format

Notification URLs follow the Apprise format:

Common Services

Email

Discord

Slack

Telegram

For a complete list of supported services, see the Apprise documentation.

Get Notification URLs

endpoint
/api/v1/notifications
Retrieve the list of configured global notification URLs.

Response Fields

array
Array of notification URL strings in Apprise format

Example


Add Notification URLs

endpoint
/api/v1/notifications
Add one or more notification URLs to the global configuration.

Request Body

array
required
Array of notification URLs in Apprise format (max 100 URLs)

Example

Notification URLs are validated using Apprise. Invalid URLs will be rejected with a 400 error.

Replace All Notification URLs

endpoint
/api/v1/notifications
Replace the entire list of notification URLs. This will delete all existing URLs and replace them with the provided list.

Request Body

array
required
Array of notification URLs (can be empty to clear all notifications)

Example


Delete Notification URLs

endpoint
/api/v1/notifications
Delete specific notification URLs from the configuration.

Request Body

array
required
Array of notification URLs to delete

Example

If none of the specified URLs exist in the configuration, the API returns a 400 error.

Notification URL Validation

All notification URLs are validated before being saved. The validation checks:
  • URL format is correct for Apprise
  • Service type is supported
  • Required credentials are present

Invalid URL Examples


Per-Watch vs Global Notifications

You can configure notifications at three levels:
1

Global Notifications

Set default notifications for all watches via /api/v1/notifications
2

Tag Notifications

Override global settings for watches in a specific tag
3

Watch Notifications

Override both global and tag settings for individual watches

Example: Watch-Specific Notifications


Supported Notification Services

  • Gmail: mailto://user:password@gmail.com
  • Office365: mailto://user:password@office365.com
  • Custom SMTP: mailto://user:password@smtp.example.com:587
  • Mailgun: mailgun://user@domain/apikey
  • SendGrid: sendgrid://apikey:from@example.com
  • Discord: discord://webhook_id/webhook_token
  • Slack: slack://tokenA/tokenB/tokenC
  • Telegram: tgram://bottoken/ChatID
  • Microsoft Teams: msteams://TokenA/TokenB/TokenC
  • Mattermost: mmost://hostname/authkey
  • Rocket.Chat: rocket://user:password@hostname/#channel
  • Pushover: pover://user@token
  • Pushbullet: pbul://accesstoken
  • Pushy: pushy://apikey@device
  • Gotify: gotify://hostname/token
  • Apprise API: apprise://hostname/token
  • Twilio: twilio://AccountSid:AuthToken@FromPhoneNo
  • Nexmo: nexmo://ApiKey:ApiSecret@FromPhoneNo
  • AWS SNS: sns://AccessKeyID/AccessKeySecret/RegionName/+PhoneNo
  • Webhooks: json://hostname/path or xml://hostname/path
  • IFTTT: ifttt://webhooks_key/event_name
  • Home Assistant: hassio://hostname/token
  • Matrix: matrix://user:token@hostname
  • Zulip: zulip://botname@organization/token
For the complete list, see Apprise Supported Notifications.

Notification Customization

You can customize notification content per watch:
string
Custom title template (supports variables like {{watch_url}}, {{watch_title}})
string
Custom body template (supports the same variables)
string
Format: text, html, htmlcolor, markdown, or System default

Example with Custom Template


Testing Notifications

To test a notification URL before adding it:
  1. Add it to a watch temporarily
  2. Trigger a manual recheck with changes
  3. Verify the notification arrives
  4. If successful, add to global configuration
Alternatively, use the Apprise CLI to test: