NetBird Notifications API
Manage notification channels for account event alerts.
Manage notification channels for account event alerts.
openapi: 3.1.0
info:
title: NetBird REST Accounts Notifications API
description: API to manipulate groups, rules, policies and retrieve information about peers and users
version: 0.0.1
servers:
- url: https://api.netbird.io
description: Default server
security:
- BearerAuth: []
- TokenAuth: []
tags:
- name: Notifications
description: Manage notification channels for account event alerts.
x-cloud-only: true
paths:
/api/integrations/notifications/types:
get:
tags:
- Notifications
summary: List Notification Event Types
description: 'Returns a map of all supported activity event type codes to their
human-readable descriptions. Use these codes when configuring
`event_types` on notification channels.
'
operationId: listNotificationEventTypes
responses:
'200':
description: A map of event type codes to descriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTypeEntry'
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
/api/integrations/notifications/channels:
get:
tags:
- Notifications
summary: List Notification Channels
description: Retrieves all notification channels configured for the authenticated account.
operationId: listNotificationChannels
responses:
'200':
description: A list of notification channels.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NotificationChannelResponse'
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
post:
tags:
- Notifications
summary: Create Notification Channel
description: 'Creates a new notification channel for the authenticated account.
Supported channel types are `email` and `webhook`.
'
operationId: createNotificationChannel
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelRequest'
responses:
'200':
description: Notification channel created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelResponse'
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
/api/integrations/notifications/channels/{channelId}:
parameters:
- name: channelId
in: path
required: true
description: The unique identifier of the notification channel.
schema:
type: string
example: ch8i4ug6lnn4g9hqv7m0
get:
tags:
- Notifications
summary: Get Notification Channel
description: Retrieves a specific notification channel by its ID.
operationId: getNotificationChannel
responses:
'200':
description: Successfully retrieved the notification channel.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelResponse'
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
put:
tags:
- Notifications
summary: Update Notification Channel
description: Updates an existing notification channel.
operationId: updateNotificationChannel
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelRequest'
responses:
'200':
description: Notification channel updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelResponse'
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
delete:
tags:
- Notifications
summary: Delete Notification Channel
description: Deletes a notification channel by its ID.
operationId: deleteNotificationChannel
responses:
'200':
description: Notification channel deleted successfully.
content:
application/json:
schema:
type: object
example: {}
'400':
$ref: '#/components/responses/bad_request'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'404':
$ref: '#/components/responses/not_found'
'500':
$ref: '#/components/responses/internal_error'
components:
responses:
not_found:
description: Resource not found
content: {}
bad_request:
description: Bad Request
content: {}
internal_error:
description: Internal Server Error
content: {}
requires_authentication:
description: Requires authentication
content: {}
forbidden:
description: Forbidden
content: {}
schemas:
NotificationChannelRequest:
type: object
description: Request body for creating or updating a notification channel.
properties:
type:
$ref: '#/components/schemas/NotificationChannelType'
target:
description: 'Channel-specific target configuration. The shape depends on the `type` field:
- `email`: requires an `EmailTarget` object
- `webhook`: requires a `WebhookTarget` object
'
oneOf:
- $ref: '#/components/schemas/EmailTarget'
- $ref: '#/components/schemas/WebhookTarget'
event_types:
type: array
description: List of activity event type codes this channel subscribes to.
items:
$ref: '#/components/schemas/NotificationEventType'
example:
- user.join
- peer.user.add
- peer.login.expire
enabled:
type: boolean
description: Whether this notification channel is active.
example: true
required:
- type
- event_types
- enabled
NotificationEventType:
type: string
description: 'An activity event type code. See `GET /api/integrations/notifications/types` for the full list
of supported event types and their human-readable descriptions.
'
example: user.join
WebhookTarget:
type: object
description: Target configuration for webhook notification channels.
properties:
url:
type: string
format: uri
description: The webhook endpoint URL to send notifications to.
example: https://hooks.example.com/netbird
headers:
type: object
additionalProperties:
type: string
description: 'Custom HTTP headers sent with each webhook request.
Values are write-only; in GET responses all values are masked.
'
example:
Authorization: Bearer token
X-Webhook-Secret: secret
required:
- url
NotificationTypeEntry:
type: object
description: A map of event type codes to their human-readable descriptions.
additionalProperties:
type: string
example:
user.join: User joined
NotificationChannelType:
type: string
description: The type of notification channel.
enum:
- email
- webhook
example: email
EmailTarget:
type: object
description: Target configuration for email notification channels.
properties:
emails:
type: array
description: List of email addresses to send notifications to.
minItems: 1
items:
type: string
format: email
example:
- admin@example.com
- ops@example.com
required:
- emails
NotificationChannelResponse:
type: object
description: A notification channel configuration.
properties:
id:
type: string
description: Unique identifier of the notification channel.
readOnly: true
example: ch8i4ug6lnn4g9hqv7m0
type:
$ref: '#/components/schemas/NotificationChannelType'
target:
description: 'Channel-specific target configuration. The shape depends on the `type` field:
- `email`: an `EmailTarget` object
- `webhook`: a `WebhookTarget` object
'
oneOf:
- $ref: '#/components/schemas/EmailTarget'
- $ref: '#/components/schemas/WebhookTarget'
event_types:
type: array
description: List of activity event type codes this channel subscribes to.
items:
$ref: '#/components/schemas/NotificationEventType'
example:
- user.join
- peer.user.add
- peer.login.expire
enabled:
type: boolean
description: Whether this notification channel is active.
example: true
required:
- id
- type
- event_types
- enabled
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
TokenAuth:
type: apiKey
in: header
name: Authorization
description: Enter the token with the `Token` prefix, e.g. "Token nbp_F3f0d.....".