Supplier Risk Webhooks

You can configure the Censys Supplier Risk module to send webhook JSON payloads whenever new risks are identified in your supply chain. This document explains how to set up webhook notifications.

Prerequisites

  • A Censys Platform user with the Supplier Risk - Manager role.
  • The URL that you want to send webhook alerts to.
  • Any headers you want to use for authorization, routing, and so on.

Webhook alert types

You can receive webhook alerts for risk alerts, six-hour risk digests, and Censys ARC Rapid Response advisories.

Risk alerts

Risk alerts send a digest of newly identified risks in your supply chain every five minutes. An example paylod is provided below.

Six-hour risk digests

The six-hour digest is a summary of newly identified top risks sent every six hours.

Censys ARC advisories

Censys ARC advisories are sent whenever a new Rapid Response risk has been identified that is present in your supply chain. If you do not receive a notification about a new Rapid Response risk, then Censys has not detected it in your supply chain. Advisories about issues that do not affect your supply chain are still visible on the My Supply Chain or Supplier Overview dashboards in the UI. An example payload is provided below.

Webhook example payload

The following is an example payload for a six-hour digest risk alert. Payloads for the risk alert and Censys ARC advisories are similar to the example below, but the cadence will instead be realtime.

{
  "delivery_id": "6f1c1d9e-0000-4000-8000-000000000004",
  "alert_type": "risk",
  "cadence": "digest",
  "create_time": "2026-09-18T06:00:00Z",
  "organization_id": "6f1c1d9e-0000-4000-8000-000000000001",
  "integration_id": "6f1c1d9e-0000-4000-8000-000000000003",
  "integration_display_name": "Risk Alerts",
  "scope": {
    "supply_chain_id": "6f1c1d9e-0000-4000-8000-000000000002"
  },
  "window_start": "2026-09-18T00:00:00Z",
  "window_end": "2026-09-18T06:00:00Z",
  "platform_url": "https://platform.censys.io/risks?scope=primary",
  "risk_alert": {
    "risks": [
      {
        "risk_type_id": "CVE-2021-44228",
        "name": "Log4Shell",
        "severity": "critical",
        "confidence": 0.95,
        "risk_category": "vulnerability",
        "description": "Apache Log4j 2 JNDI lookups allow remote code execution through crafted log messages.",
        "new_asset_count": 12,
        "suppliers": [
          {
            "id": "0b6f6f5c-1d7e-4c38-9a53-5d1a2f0c0009",
            "display_name": "Example Company"
          }
        ],
        "platform_url": "https://platform.censys.io/risks/log4shell"
      }
    ],
    "suppliers": [
      {
        "id": "0b6f6f5c-1d7e-4c38-9a53-5d1a2f0c0009",
        "display_name": "Example Company"
      }
    ],
    "total_new_asset_count": 12,
    "total_risk_type_count": 1,
    "total_rapid_response_count": 0
  }
}

Webhook alert fields

Expand the section below to see comprehensive definitions of webhook alert fields. Fields that are empty, zero, or false are left out of the JSON payload. The one exception is total_rapid_response_count, which is always present. All times are RFC 3339 in UTC.

Webhook alert fields

Top-level alert fields

FieldTypeDescription
delivery_idstring (UUID)Identifies this delivery. Stays the same across retries.
alert_typestringThe kind of alert: "risk". Names the content field.
cadencestring"realtime", "digest", or "test" for a test send.
create_timetimestampWhen the alert was created, which is when its events were collected. Stays the same across retries.
organization_idstring (UUID)The organization that owns the integration.
integration_idstring (UUID)The integration the alert was produced for.
integration_display_namestringThe integration's name at the time of the alert.
scopeAlertScopeWhat the integration watches. See below.
window_starttimestampStart of the time window the alert covers.
window_endtimestampEnd of the time window the alert covers.
platform_urlstring (URL)"View all" link into the Censys Platform, filtered to the scope and the window.
risk_alertRiskAlertThe content of a "risk" alert. See below.

scope: AlertScope fields

FieldTypeDescription
supply_chain_idstring (UUID)The supply chain ID.

risk_alert: RiskAlert fields

FieldTypeDescription
risksRiskSummary[]The risks with events in the window, ordered by severity (highest first), then new_asset_count (highest first), then name. A digest carries only the top five.
suppliersSupplierRef[]Every supplier affected across all risks, de-duplicated.
total_new_asset_countintegerDistinct assets with a new or reopened risk event in the window, across all risks.
total_risk_type_countintegerHow many distinct risks appeared in the window. For a realtime alert this equals the length of risks. For a digest it can be larger, because risks is the top five of this many.
total_rapid_response_countintegerHow many risks in the window are Rapid Response risks, counted before a digest's top-five cut. Always present, even when 0.

risks[]: RiskSummary fields

FieldTypeDescription
risk_type_idstringThe risk's catalog ID, shared by every instance of it, for example CVE-2021-44228 or CENSYS-2024-0102.
namestringHuman-readable risk name.
severitystring"low", "medium", "high" or "critical".
confidencenumberRisk confidence, from 0.0 to 1.0.
risk_categorystring"vulnerability", "exposure", "misconfiguration" or "threat".
descriptionstringDescription of the risk.
rapid_responsebooleantrue when the risk is a Rapid Response risk. Left out otherwise.
new_asset_countintegerDistinct assets with a new or reopened event for this risk in the window.
suppliersSupplierRef[]Suppliers this risk was found on, de-duplicated.
platform_urlstring (URL)Link into the Censys Platform, filtered to this risk within the scope.
eventsRiskEventRef[]The individual events behind the counts. Present only when the integration includes assets. Webhooks always get the full list.

events[]: RiskEventRef fields

FieldTypeDescription
event_idstring (UUID)The event's ID. Stays the same if the event is delivered again.
opstring"open": the risk was first seen on the asset. "reopened": a resolved risk was seen again. Resolved events aren't sent.
event_timetimestampWhen the event happened.
risk_instance_idstring (UUID)The risk instance the event is about. Stays the same across reopens.
assetAssetRefThe affected asset.
supplierSupplierRefThe supplier the asset belongs to.
platform_urlstring (URL)Link into the Censys Platform for this asset's risk.

suppliers[] and supplier: SupplierRef fields

FieldTypeDescription
idstring (UUID)The supplier's ID.
display_namestringThe supplier's name.

asset: AssetRef fields

FieldTypeDescription
typestring"host" or "web".
namestringAn IP address for a host, or a hostname and port for a web property, for example my.asset.example:8443.
servicestringThe service the risk was found on, as {port}/{protocol}, for example 443/HTTP. Left out when the risk isn't tied to one service.

Configure webhook alerts in the Censys Platform

  1. Go to the Censys Supplier Risk module in the Platform web console. Select Integrations.
  2. On the card for webhook alerts, click Set Up.
  3. On the "Authentication" page:
    1. In the "Payload URL" field, enter the URL you want to send the JSON payload to.
    2. In the "Header Authorization" section, enter any headers you want to use.
  4. Click Next.
  5. On the "Configuration" page, select the alert types you want to send to the URL.
  6. Click Next.
  7. On the "Filters" page, configure the risk severity, type, and suppliers you want to be notified about.
  8. Click Next.
  9. On the "Review" page, enter an integration name and review your configuration options.
  10. Click Finish Setup.



Did this page help you?