LaserData · AsyncAPI Specification
Laserdata Notifications Webhooks
Version
View Spec
View on GitHub
StreamingMessage StreamingEvent StreamingData InfrastructureReal-TimeApache IggyRustCloud InfrastructureAI AgentsObservabilityCompanyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-07-19'
method: derived
source: openapi/laserdata-notifier-openapi.json, https://docs.laserdata.cloud/api/notifications
spec_type: Webhooks
asyncapi: null
notes: 'LaserData publishes no AsyncAPI document. Its event surface is the LaserData Cloud Notifier service:
tenant-scoped notification channels (slack, webhook, sms, email) subscribed to platform message types.
Outbound HTTP webhooks are a first-class channel kind with a configurable destination URL, HTTP method
and custom headers. This catalogue is derived from the published OpenAPI 3.1 notifier spec - the message-type
list is the spec enum verbatim. Note this is a control-plane event surface (deployment, billing, identity
and health events), not the Apache Iggy data-plane streaming protocol, which is a binary TCP/QUIC/HTTP/WebSocket
transport rather than a webhook surface.'
transport:
kind: outbound-http-webhook
delivery: push
auth_to_receiver: Arbitrary custom headers on the channel settings, e.g. an Authorization bearer token.
channel_kinds:
- kind: webhook
destination: HTTPS endpoint URL
settings:
- method
- headers
settings_schema: WebhookSettings
- kind: slack
destination: Slack incoming-webhook URL
settings_schema: SlackSettings
- kind: sms
destination: phone number
settings_schema: SmsSettings
- kind: email
destination: email address
settings_schema: null
subscription_model:
description: A notification subscription binds a channel_id to a list of message_types. A channel can
be enabled/disabled and test-fired; delivered notifications are queryable.
schemas:
- NotificationSubscriptionInfo
- NotificationChannelInfo
- NotificationInfo
event_count: 41
events:
- type: deployment_created
- type: deployment_initialized
- type: deployment_upgraded
- type: deployment_deleted
- type: invitation_accepted
- type: invitation_rejected
- type: high_cpu_usage
- type: high_memory_usage
- type: high_disk_usage
- type: node_unreachable
- type: cpu_usage_resolved
- type: memory_usage_resolved
- type: disk_usage_resolved
- type: node_reachable
- type: certificate_expiring
- type: billing_limit_reached
- type: invoice_created
- type: invoice_paid
- type: invoice_payment_failed
- type: payment_method_added
- type: payment_method_removed
- type: tenant_created
- type: tenant_deleted
- type: user_created
- type: user_deleted
- type: division_created
- type: division_deleted
- type: environment_created
- type: environment_deleted
- type: cert_refresh_failed
- type: deployment_certificates_rotated
- type: deployment_secrets_rotated
- type: tenant_updated
- type: division_updated
- type: environment_updated
- type: invitation_created
- type: resource_code_requested
- type: deployment_inactive
- type: tenant_join_requested
- type: member_joined
- type: shared_host_drained
operations:
- operationId: get_notification_types
method: GET
path: /notifications/types
summary: List notification types
- operationId: get_tenant_channels
method: GET
path: /tenants/{tenant_id}/channels
summary: List tenant notification channels
- operationId: create_tenant_channel
method: POST
path: /tenants/{tenant_id}/channels
summary: Create tenant notification channel
- operationId: get_tenant_channel
method: GET
path: /tenants/{tenant_id}/channels/{channel_id}
summary: Get tenant notification channel
- operationId: update_tenant_channel
method: PUT
path: /tenants/{tenant_id}/channels/{channel_id}
summary: Update tenant notification channel
- operationId: delete_tenant_channel
method: DELETE
path: /tenants/{tenant_id}/channels/{channel_id}
summary: Delete tenant notification channel
- operationId: get_tenant_notifications
method: GET
path: /tenants/{tenant_id}/channels/{channel_id}/notifications
summary: List tenant channel notifications
- operationId: get_tenant_subscriptions
method: GET
path: /tenants/{tenant_id}/channels/{channel_id}/subscriptions
summary: List tenant notification subscriptions
- operationId: set_tenant_subscriptions
method: PUT
path: /tenants/{tenant_id}/channels/{channel_id}/subscriptions
summary: Replace tenant notification subscriptions
- operationId: create_tenant_subscription
method: POST
path: /tenants/{tenant_id}/channels/{channel_id}/subscriptions
summary: Create tenant notification subscription
- operationId: get_tenant_subscription
method: GET
path: /tenants/{tenant_id}/channels/{channel_id}/subscriptions/{subscription_id}
summary: Get tenant notification subscription
- operationId: delete_tenant_subscription
method: DELETE
path: /tenants/{tenant_id}/channels/{channel_id}/subscriptions/{subscription_id}
summary: Delete tenant notification subscription
- operationId: test_tenant_channel
method: POST
path: /tenants/{tenant_id}/channels/{channel_id}/test
summary: Send test tenant notification
- operationId: get_division_channels
method: GET
path: /tenants/{tenant_id}/divisions/{division_id}/channels
summary: List division notification channels
- operationId: create_division_channel
method: POST
path: /tenants/{tenant_id}/divisions/{division_id}/channels
summary: Create division notification channel
- operationId: get_division_channel
method: GET
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}
summary: Get division notification channel
- operationId: update_division_channel
method: PUT
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}
summary: Update division notification channel
- operationId: delete_division_channel
method: DELETE
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}
summary: Delete division notification channel
- operationId: get_division_notifications
method: GET
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/notifications
summary: List division channel notifications
- operationId: get_division_subscriptions
method: GET
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/subscriptions
summary: List division notification subscriptions
- operationId: set_division_subscriptions
method: PUT
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/subscriptions
summary: Replace division notification subscriptions
- operationId: create_division_subscription
method: POST
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/subscriptions
summary: Create division notification subscription
- operationId: get_division_subscription
method: GET
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/subscriptions/{subscription_id}
summary: Get division notification subscription
- operationId: delete_division_subscription
method: DELETE
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/subscriptions/{subscription_id}
summary: Delete division notification subscription
- operationId: test_division_channel
method: POST
path: /tenants/{tenant_id}/divisions/{division_id}/channels/{channel_id}/test
summary: Send test division notification
- operationId: get_user_notifications
method: GET
path: /users/{user_id}/channels/{channel_id}/notifications
summary: List user channel notifications
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.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.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/laserdata-notifications-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.