Zenoss · AsyncAPI Specification
Zenoss Webhooks
Version
View Spec
View on GitHub
AIOpsMonitoringObservabilityInfrastructureEvent ManagementHybrid CloudOpenTelemetrygRPCMetricsAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-29'
method: searched
source: https://docs.zenoss.io/actions/reference/webhook.html
docs:
- https://docs.zenoss.io/actions/reference/webhook.html
- https://docs.zenoss.io/actions/reference/destination-fields.html
- https://docs.zenoss.io/api/actions/actions.html
- https://docs.zenoss.io/actions/reference/trigger-queries.html
provider: Zenoss
providerId: zenoss
type: Webhooks
asyncapi_spec: null
description: >-
Outbound event surface for Virtana Service Observability (formerly Zenoss Cloud). Zenoss does not
publish an AsyncAPI document, but it does ship a real, documented webhook delivery mechanism: the
Actions service evaluates triggers against events, metrics, anomalies, maintenance state and stale
data, and a rule fans matching notifications out to configured destinations — one of which is a
generic HTTP webhook with a published JSON payload example.
model:
style: rule-driven notification fan-out
producer: Virtana Service Observability Actions service
subscription: >-
Destinations, triggers and rules are configured objects, managed through the console or through
/v1/notification/* — there is no per-subscription registration endpoint and no event-type catalog
to subscribe to. What you receive is defined by the trigger clause you write, not by a fixed list
of event names.
delivery: HTTP POST of a JSON document to the destination URL
retries: Not documented.
signing: >-
No signature header, shared secret, or replay-protection scheme is documented. Custom headers can
be set on a webhook destination, so a caller may add their own bearer token.
ordering: Not documented.
repeat_control: rule.repeat_interval (seconds) suppresses repeat notifications for the same rule.
trigger_types:
- id: event
description: Clause query over event fields (severity, status, source, and any event field).
docs: https://docs.zenoss.io/actions/how-to/add-event-trigger.html
- id: metric
description: Threshold condition on a metric.
docs: https://docs.zenoss.io/actions/how-to/add-metric-trigger.html
- id: anomaly
description: Fires on detected anomalies.
docs: https://docs.zenoss.io/actions/how-to/add-anomaly-trigger.html
- id: maintenance
description: Fires on maintenance window state.
docs: https://docs.zenoss.io/actions/how-to/add-maintenance-trigger.html
- id: stale-data
description: Fires when expected data stops arriving.
docs: https://docs.zenoss.io/actions/how-to/add-stale-data-trigger.html
destinations:
- id: webhook
description: 'Generic HTTP receiver. Fields: URL, Headers, Custom payload toggle, JSON payload.'
custom_payload: true
- id: slack
docs: https://docs.zenoss.io/actions/reference/slack-app.html
- id: microsoft-365
description: Office 365 connector card / Microsoft Teams incoming webhook URL.
docs: https://docs.zenoss.io/actions/reference/o365-connector-card.html
- id: pagerduty
description: Accepts the same JSON message format as a webhook destination.
- id: servicenow
description: ServiceNow ITOM instance, authenticated with OAuth credentials stored in the credentials service.
- id: email
- id: zoom
payload:
content_type: application/json
documented_example: https://docs.zenoss.io/actions/reference/webhook.html
top_level_fields:
- name: id
description: Notification identifier (opaque base64).
- name: tenant
description: Tenant name.
- name: timestamp
description: Epoch milliseconds.
- name: rule
description: The rule that fired — name, trigger_names[], destination_names[], message, enabled, repeat_interval.
- name: trigger
description: >-
The trigger definition, including its full nested clause tree (And/Or/Equals over event
fields such as severity, status and source).
- name: event
description: >-
The matched event — summary, severity (integer), status (integer), and a fields map that
includes Zenoss internal keys such as _zen_clientid, _zen_direct_entity_id and _zen_entityIds.
note: >-
The payload embeds the whole trigger definition alongside the event, so a receiver gets the rule
that fired as well as the fact that fired it. Severity and status arrive as integers, not labels.
templating:
supported: true
docs: https://docs.zenoss.io/actions/reference/templates.html
default_messages: https://docs.zenoss.io/actions/reference/default-messages.html
inbound_streaming:
note: >-
The inbound (ingest) side is genuinely streaming and is contract-backed, but by gRPC rather than
AsyncAPI — DataReceiverService exposes client-streaming PutEvent/PutMetric/PutModel and
CollectionConfigService exposes bidirectional config streams. See grpc/. OTLP metric export is
documented at https://api.zenoss.io:443.
gaps:
- No AsyncAPI document is published for either the inbound or outbound event surface.
- No webhook signature or verification scheme, so a receiver cannot authenticate the sender.
- No documented retry, backoff or delivery-guarantee semantics.
- No catalog of event types; the shape of what you receive depends entirely on the trigger clause.
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/zenoss-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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.