LaserData Notification Channels API
Notification channels (email, slack, webhook)
Notification channels (email, slack, webhook)
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/laserdata-notification-channels-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: LaserData Cloud Notifier Notification Channels API
description: Notification channels, subscriptions, and delivery.
termsOfService: https://laserdata.com/terms
contact:
name: LaserData Support
url: https://docs.laserdata.com
email: support@laserdata.com
license:
name: Proprietary
version: 0.0.66
x-logo:
url: https://assets.laserdata.com/laserdata_dark.png
altText: LaserData
href: https://laserdata.com
servers:
- url: https://api.laserdata.cloud
description: Production
security:
- ld_api_key: []
- session_cookie: []
tags:
- name: Notification Channels
description: Notification channels (email, slack, webhook)
paths:
/tenants/{tenant_id}/channels:
get:
tags:
- Notification Channels
summary: List tenant notification channels
description: Returns paged tenant-owned channels. Supports filtering by channel kind.
operationId: get_tenant_channels
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: page
in: query
required: false
schema:
type:
- integer
- 'null'
format: int64
minimum: 1
example: 1
- name: results
in: query
required: false
schema:
type:
- integer
- 'null'
format: int64
minimum: 1
example: 10
- name: channel
in: query
required: false
schema:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/NotificationChannelKind'
responses:
'200':
description: Paged channels
content:
application/json:
schema:
$ref: '#/components/schemas/Paged_NotificationChannelInfo'
'403':
description: Insufficient permissions
post:
tags:
- Notification Channels
summary: Create tenant notification channel
description: Creates a tenant-owned notification channel such as Slack, webhook, email, or SMS. Destination validation depends on the chosen channel kind.
operationId: create_tenant_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
requestBody:
description: Channel type, destination, name, optional settings and remarks
content:
application/json:
schema:
$ref: '#/components/schemas/CreateChannel'
required: true
responses:
'201':
description: Channel created
'400':
description: Invalid channel configuration
'403':
description: Insufficient permissions
'409':
description: Channel already exists or limit reached
/tenants/{tenant_id}/channels/{channel_id}:
get:
tags:
- Notification Channels
summary: Get tenant notification channel
description: Returns configuration and metadata for one tenant-owned notification channel.
operationId: get_tenant_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'200':
description: Channel details
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelDetails'
'403':
description: Insufficient permissions
'404':
description: Channel not found
put:
tags:
- Notification Channels
summary: Update tenant notification channel
description: Partially updates a tenant-owned notification channel. Omitted fields are left unchanged.
operationId: update_tenant_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
requestBody:
description: Partial channel update
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateChannel'
required: true
responses:
'204':
description: Channel updated
'400':
description: Invalid channel configuration
'403':
description: Insufficient permissions
'404':
description: Channel not found
delete:
tags:
- Notification Channels
summary: Delete tenant notification channel
description: Deletes a tenant-owned notification channel and all subscriptions attached to it.
operationId: delete_tenant_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'204':
description: Channel deleted
'403':
description: Insufficient permissions
'404':
description: Channel not found
/tenants/{tenant_id}/channels/{channel_id}/test:
post:
tags:
- Notification Channels
summary: Send test tenant notification
description: Sends a test message through a tenant-owned notification channel. Rate limited to prevent abuse.
operationId: test_tenant_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'204':
description: Test notification sent
'400':
description: Channel disabled or cannot send to private address
'403':
description: Insufficient permissions
'404':
description: Channel not found
'429':
description: Test channel rate limited
/tenants/{tenant_id}/divisions/{division_id}/channels:
get:
tags:
- Notification Channels
summary: List division notification channels
description: Returns paged division-owned channels. Supports filtering by channel kind.
operationId: get_division_channels
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
- name: page
in: query
required: false
schema:
type:
- integer
- 'null'
format: int64
minimum: 1
example: 1
- name: results
in: query
required: false
schema:
type:
- integer
- 'null'
format: int64
minimum: 1
example: 10
- name: channel
in: query
required: false
schema:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/NotificationChannelKind'
responses:
'200':
description: Paged channels
content:
application/json:
schema:
$ref: '#/components/schemas/Paged_NotificationChannelInfo'
'403':
description: Insufficient permissions
post:
tags:
- Notification Channels
summary: Create division notification channel
description: Creates a division-owned notification channel using the same payload contract as tenant channels.
operationId: create_division_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
requestBody:
description: Channel type, destination, name, optional settings and remarks
content:
application/json:
schema:
$ref: '#/components/schemas/CreateChannel'
required: true
responses:
'201':
description: Channel created
'400':
description: Invalid channel configuration
'403':
description: Insufficient permissions
'409':
description: Channel already exists or limit reached
/tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}:
get:
tags:
- Notification Channels
summary: Get division notification channel
description: Returns configuration and metadata for one division-owned notification channel.
operationId: get_division_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'200':
description: Channel details
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationChannelDetails'
'403':
description: Insufficient permissions
'404':
description: Channel not found
put:
tags:
- Notification Channels
summary: Update division notification channel
description: Partially updates a division-owned notification channel. Omitted fields are left unchanged.
operationId: update_division_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
requestBody:
description: Partial channel update
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateChannel'
required: true
responses:
'204':
description: Channel updated
'400':
description: Invalid channel configuration
'403':
description: Insufficient permissions
'404':
description: Channel not found
delete:
tags:
- Notification Channels
summary: Delete division notification channel
description: Deletes a division-owned notification channel and all subscriptions attached to it.
operationId: delete_division_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'204':
description: Channel deleted
'403':
description: Insufficient permissions
'404':
description: Channel not found
/tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/test:
post:
tags:
- Notification Channels
summary: Send test division notification
description: Sends a test message through a division-owned notification channel. Rate limited to prevent abuse.
operationId: test_division_channel
parameters:
- name: tenant_id
in: path
description: Tenant identifier
required: true
schema:
$ref: '#/components/schemas/TenantId'
- name: division_id
in: path
description: Division identifier
required: true
schema:
$ref: '#/components/schemas/DivisionId'
- name: channel_id
in: path
description: Channel identifier
required: true
schema:
$ref: '#/components/schemas/NotificationChannelId'
responses:
'204':
description: Test notification sent
'400':
description: Channel disabled or cannot send to private address
'403':
description: Insufficient permissions
'404':
description: Channel not found
'429':
description: Test channel rate limited
components:
schemas:
NotificationChannelId:
type: integer
format: int64
example: 7261845612345670000
minimum: 0
NotificationChannelDetails:
allOf:
- $ref: '#/components/schemas/NotificationChannelInfo'
- type: object
required:
- destination
properties:
destination:
$ref: '#/components/schemas/NotificationChannelDestination'
remarks:
type:
- string
- 'null'
settings:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/ChannelSettings'
CreateChannel:
type: object
required:
- channel
- name
- destination
properties:
channel:
$ref: '#/components/schemas/NotificationChannelKind'
destination:
type: string
example: https://hooks.example.com/laserdata/ops
name:
$ref: '#/components/schemas/NotificationChannelName'
remarks:
type:
- string
- 'null'
example: Primary production incident sink
settings:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/ChannelSettings'
WebhookSettings:
type: object
properties:
headers:
type:
- object
- 'null'
additionalProperties:
type: string
propertyNames:
type: string
method:
type:
- string
- 'null'
example: POST
example:
headers:
Authorization: Bearer secret-token
method: POST
NotificationChannelInfo:
type: object
required:
- id
- owner_kind
- owner_id
- channel
- name
- enabled
- created_at
- updated_at
properties:
channel:
$ref: '#/components/schemas/NotificationChannelKind'
created_at:
type: string
format: date-time
enabled:
type: boolean
id:
$ref: '#/components/schemas/NotificationChannelId'
name:
$ref: '#/components/schemas/NotificationChannelName'
owner_id:
type: integer
format: int64
example: 7261845022003200001
minimum: 0
owner_kind:
$ref: '#/components/schemas/OwnerKind'
updated_at:
type: string
format: date-time
example:
id: 7261845330120500000
owner_kind: tenant
owner_id: 7261845022003200001
channel: email
name: ops-team-email
enabled: true
created_at: '2026-05-20T10:00:00Z'
updated_at: '2026-05-20T10:00:00Z'
TenantId:
type: integer
format: int64
example: 7261845022003200001
minimum: 0
OwnerKind:
type: string
enum:
- user
- tenant
- division
- system
SmsSettings:
type: object
properties:
sender_id:
type:
- string
- 'null'
example: LaserData
SlackSettings:
type: object
properties:
channel:
type:
- string
- 'null'
example: laser-alerts
icon_emoji:
type:
- string
- 'null'
example: ':rotating_light:'
username:
type:
- string
- 'null'
example: LaserData Cloud
UpdateChannel:
type: object
properties:
destination:
type:
- string
- 'null'
example: https://hooks.example.com/laserdata/ops-v2
enabled:
type:
- boolean
- 'null'
name:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/NotificationChannelName'
remarks:
type:
- string
- 'null'
example: Migrated to rotated webhook URL
settings:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/ChannelSettings'
NotificationChannelDestination:
type: string
example: https://hooks.slack.com/services/REDACTED
Paged_NotificationChannelInfo:
type: object
required:
- total_pages
- total_results
- page
- items
properties:
items:
type: array
items:
type: object
required:
- id
- owner_kind
- owner_id
- channel
- name
- enabled
- created_at
- updated_at
properties:
channel:
$ref: '#/components/schemas/NotificationChannelKind'
created_at:
type: string
format: date-time
enabled:
type: boolean
id:
$ref: '#/components/schemas/NotificationChannelId'
name:
$ref: '#/components/schemas/NotificationChannelName'
owner_id:
type: integer
format: int64
example: 7261845022003200001
minimum: 0
owner_kind:
$ref: '#/components/schemas/OwnerKind'
updated_at:
type: string
format: date-time
example:
id: 7261845330120500000
owner_kind: tenant
owner_id: 7261845022003200001
channel: email
name: ops-team-email
enabled: true
created_at: '2026-05-20T10:00:00Z'
updated_at: '2026-05-20T10:00:00Z'
page:
type: integer
format: int64
example: 1
minimum: 1
total_pages:
type: integer
format: int64
example: 4
minimum: 0
total_results:
type: integer
format: int64
example: 137
minimum: 0
NotificationChannelKind:
type: string
enum:
- slack
- webhook
- sms
- email
ChannelSettings:
type: object
properties:
slack:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/SlackSettings'
sms:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/SmsSettings'
webhook:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/WebhookSettings'
DivisionId:
type: integer
format: int64
example: 7261844974723780000
minimum: 0
NotificationChannelName:
type: string
example: ops-webhook
securitySchemes:
ld_api_key:
type: apiKey
in: header
name: ld-api-key
description: Tenant API key sent in the ld-api-key request header. Tenant-scoped only.
session_cookie:
type: apiKey
in: cookie
name: session
description: Browser session cookie issued by POST /account/sign_in on core.
externalDocs:
url: https://docs.laserdata.com
description: LaserData Cloud documentation