Densify · AsyncAPI Specification

Densify Webhooks

Version

View Spec View on GitHub Cloud CostContainer OptimizationFinOpsKubernetesMachine-LearningRecommendationsRightsizingAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-06'
method: searched
source: >-
  openapi/densify-public-cloud-analysis-webhook-openapi.yaml,
  openapi/densify-public-cloud-subscriptions-openapi.yaml,
  openapi/densify-public-cloud-subscriptions-status-openapi.yaml,
  https://docs.kubex.ai/docs-api/WebHelp_Densify_API_Cloud/Content/API_Guide/Analysis_Webhook,
  https://docs.kubex.ai/docs-api/WebHelp_Densify_API_Cloud/Content/API_Guide/Subscriptions
provider: Densify
providerId: densify
asyncapi_spec:
  published: false
  note: >-
    Kubex publishes no AsyncAPI document. Probed for /asyncapi.yaml and /asyncapi.json on
    docs.kubex.ai, kubex.ai, www.densify.com and api.densify.com — all 404 — and no event or
    streaming catalog exists in the docs. The event surface below is REAL but is described only
    as REST management endpoints plus prose, so it is recorded as a webhook catalog rather than
    converted into an AsyncAPI document (which would be fabrication).
event_surface:
  style: outbound HTTP webhooks, registered per analysis or per subscription
  direction: Kubex -> customer endpoint
  delivery_trigger: >-
    Analyses run on a nightly schedule after data collection; results are delivered to the
    registered webhook when the analysis completes. Subscription results can additionally be
    delivered on a schedule or pulled on demand.
  security_note: >-
    Webhook credentials are supplied by the CUSTOMER as `authType` + `authValue` on the
    registration body ("user:pass or token"), i.e. Kubex stores and replays a static credential
    the customer hands it. There is no signing secret, no HMAC signature header and no
    timestamp/replay protection documented — a receiver cannot verify that a delivery came from
    Kubex other than by the shared credential and by network origin.
webhooks:
- id: analysis-results
  name: Analysis result delivery
  platforms:
    platformType: [cloud, containers]
    platformSubType: [aws, gcp, azure, kubernetes]
  registration:
    inline: >-
      A webHook URL can also be supplied directly on analyzeAws / analyzeAzure / analyzeGcp when
      the analysis is created or re-run.
    manage_operations:
    - operationId: listAnalysisWebhooksByPlatform
      method: GET
      path: /webhook/analysis/{platformType}
    - operationId: getAnalysisWebhook
      method: GET
      path: /webhook/analysis/{platformType}/{platformSubType}/{analysisId}
    - operationId: addAnalysisWebhook
      method: POST
      path: /webhook/analysis/{platformType}/{platformSubType}/{analysisId}
      constraint: rejected with 400 "Analysis webhook already exists." if one is already bound
    - operationId: updateAnalysisWebhook
      method: PUT
      path: /webhook/analysis/{platformType}/{platformSubType}/{analysisId}
    - operationId: deleteAnalysisWebhook
      method: DELETE
      path: /webhook/analysis/{platformType}/{platformSubType}/{analysisId}
  registration_payload:
    schema: WebhookRequest
    fields:
    - {name: uri, type: string, format: uri, required: true, description: fully-qualified webhook URI reachable by Kubex}
    - {name: authType, type: string, required: false, description: 'e.g. Basic, Bearer'}
    - {name: authValue, type: string, required: false, description: credential (user:pass or token)}
  definition_payload:
    schema: WebhookDefinition
    fields: [analysisId, analysisName, href, uri, webHookStatus]
  observability:
    operationId: getSubscriptionStatus
    returns: >-
      `webHookStatus` (Success/Failure with timestamp) and `lastTriggered`
      (On-Demand / Scheduled Success / Failure with timestamp)
    note: >-
      This is the only delivery telemetry published. There is no retry policy, no dead-letter
      behaviour and no delivery-attempt log documented.
- id: subscription-results
  name: Subscription result delivery
  description: >-
    Subscriptions are customizable, saved views of analysis results. Each carries an optional
    `webhook` and `schedule`; when active, results are pushed to the webhook on schedule.
    Calling getSubscriptionResults on demand ignores `active`, `webhook` and `schedule` and
    returns the results inline instead.
  manage_operations:
  - {operationId: createSubscriptions, method: POST, path: '/subscriptions/{platformType}'}
  - {operationId: listSubscriptions, method: GET, path: '/subscriptions/{platformType}'}
  - {operationId: replaceSubscription, method: PUT, path: '/subscriptions/{platformType}/{subscriptionRef}'}
  - {operationId: deleteSubscription, method: DELETE, path: '/subscriptions/{platformType}/{subscriptionRef}'}
  - {operationId: getSubscriptionResults, method: GET, path: '/subscriptions/{platformType}/{subscriptionRef}'}
  - {operationId: getSubscriptionStatus, method: GET, path: '/subscriptions/{platformType}/{subscriptionRef}/status'}
  payload_shaping:
    properties: /subscriptions/{platformType}/properties — which fields appear in the delivered payload
    tags: /subscriptions/{platformType}/tags — which resource tags / container labels are carried through
    suppressions: /subscriptions/{platformType}/suppressions — which attributes or properties are withheld
    note: >-
      The delivered event payload is customer-defined at runtime through the properties, tags and
      suppressions catalogs. That is precisely why no fixed event schema is publishable and why
      an AsyncAPI document would have to be invented rather than harvested.
counts:
  webhook_management_operations: 5
  subscription_operations: 27
  event_schemas_published: 0

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.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/densify-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.