---
title: "Create notification"
method: POST
path: "/notifications"
tags: ["Notifications"]
---

# Create notification

`POST /notifications`

Create a new notification bound to an existing notification method.

Supported types
- `email` requires `value` (email). `second_type` is not allowed.
- `domain` requires `value` (domain). `second_type` optional: one of domain leak types, default `ALL`.
- `advanced` requires `filters` (no `value`). Bulk is not allowed.

Bulk creation
- For `email` and `domain`, set `bulk=true` and provide newline-separated values in `value` to create several notifications at once.

Limit
- Max notifications = plan limit + extra monitoring assets purchased.

## Request body

- NotificationCreateRequest
  - `method_id` integer, nullable — Notification method ID to use.
  - `type` 'email' | 'domain' | 'advanced' | 'raw' | 'dark_web', required
  - `value` string, nullable — Value to monitor (required for EMAIL/DOMAIN types).
  - `filters` object, nullable — Filters when type=ADVANCED or RAW. Parsed according to type.
  - `auto_unlock` boolean, nullable — If true, automatically unlock new matching leaks (consumes points).
  - `max_points` integer, nullable — Daily points cap for auto-unlock (if enabled).
  - `second_type` 'ALL' | 'EMPLOYEES' | 'THIRD_PARTIES' | 'CUSTOMERS'
  - `bulk` boolean, nullable — Create multiple notifications at once (e.g., newline-separated values).

## Response `200`

Notification created successfully.

- union
  - NotificationOut[]
    - `id` integer, required — Notification ID.
    - `method_id` integer, required — ID of the notification method used for delivery.
    - `type` 'email' | 'domain' | 'advanced' | 'raw' | 'dark_web', required
    - `second_type` 'ALL' | 'EMPLOYEES' | 'THIRD_PARTIES' | 'CUSTOMERS'
    - `value` string, nullable — Monitored value (email address, domain, search query, etc.).
    - `filters` object, nullable — Additional search filters applied to this notification.
    - `last_searched_at` string, date-time, nullable — Last time this notification was checked for new results.
    - `is_active` boolean, required — Whether this notification is currently active.
    - `timestamp` string, date-time, required — Creation date of this notification.
    - `method_type` 'email' | 'slack' | 'telegram' | 'webhook' | 'discord'
    - `method_value` string, nullable — Destination of the associated method.
    - `method_extra_emails` string[], nullable — Additional BCC recipients of the associated method (email methods only).
    - `auto_unlock` boolean, nullable — Whether new results are automatically unlocked.
    - `max_points` integer, nullable — Maximum points to spend per notification run for auto-unlock.
    - `daily_spent` integer, nullable — Points spent today by auto-unlock on this notification.
    - `daily_reset_at` string, date-time, nullable — Next daily reset time for the spent counter.
    - `total_notifications` integer, nullable — Total number of notification runs executed.
    - `total_cost` integer, nullable — Total points consumed by this notification across all runs.
  - NotificationOut
    - `id` integer, required — Notification ID.
    - `method_id` integer, required — ID of the notification method used for delivery.
    - `type` 'email' | 'domain' | 'advanced' | 'raw' | 'dark_web', required
    - `second_type` 'ALL' | 'EMPLOYEES' | 'THIRD_PARTIES' | 'CUSTOMERS'
    - `value` string, nullable — Monitored value (email address, domain, search query, etc.).
    - `filters` object, nullable — Additional search filters applied to this notification.
    - `last_searched_at` string, date-time, nullable — Last time this notification was checked for new results.
    - `is_active` boolean, required — Whether this notification is currently active.
    - `timestamp` string, date-time, required — Creation date of this notification.
    - `method_type` 'email' | 'slack' | 'telegram' | 'webhook' | 'discord'
    - `method_value` string, nullable — Destination of the associated method.
    - `method_extra_emails` string[], nullable — Additional BCC recipients of the associated method (email methods only).
    - `auto_unlock` boolean, nullable — Whether new results are automatically unlocked.
    - `max_points` integer, nullable — Maximum points to spend per notification run for auto-unlock.
    - `daily_spent` integer, nullable — Points spent today by auto-unlock on this notification.
    - `daily_reset_at` string, date-time, nullable — Next daily reset time for the spent counter.
    - `total_notifications` integer, nullable — Total number of notification runs executed.
    - `total_cost` integer, nullable — Total points consumed by this notification across all runs.

## Other responses

- `400` — Invalid parameters (missing value, invalid type, etc.).
- `401` — Authentication required.
- `403` — Feature or channel not allowed on your plan (free-tier restrictions or per-type plan gates), or monitoring limit reached (buy assets / upgrade).
- `404` — Referenced notification method not found.
- `409` — Duplicate notification already exists.
- `422` — Validation error.

---

[API](https://skmtc.dev/leakradar/apis/leakradar-io-api.md) · [All operations](https://skmtc.dev/leakradar/apis/leakradar-io-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/leakradar/leakradar-io-api/revisions/82a99c608e1a/schema)
