Acquia · AsyncAPI Specification

Acquia Source Cms Webhooks

Version

View Spec View on GitHub ContentExperienceDrupalDXPCMSDigital Asset ManagementCloud HostingHeadlessAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-30'
method: searched
source: https://dev.acquia.com/source-cms/reference/webhooks.md (HTTP 200, fetched 2026-08-30)
provider: Acquia
providerId: acquia
type: Webhooks
description: >-
  Source CMS sites emit outgoing webhooks on content change. Acquia publishes no AsyncAPI document
  for them — this is the webhook catalog read from Acquia's own reference page. Webhooks are
  outgoing only; there is no inbound webhook mechanism, and inbound integration is the JSON:API
  Content API.
asyncapi_published: false
asyncapi_note: >-
  Neither dev.acquia.com nor the acquia GitHub org publishes an AsyncAPI document. A GitHub org
  search for asyncapi returned 0 repositories. Nothing was fabricated to fill the slot.
direction: outgoing
event_count: 12
entity_kinds:
  - kind: node
    label: CMS content (entries of a content type)
    events: [Node creation, Node update, Node deletion]
  - kind: media
    label: Media entities
    events: [Media creation, Media update, Media deletion]
  - kind: taxonomy_term
    label: Taxonomy terms
    events: [Taxonomy term creation, Taxonomy term update, Taxonomy term deletion]
  - kind: canvas_page
    label: Pages built with Drupal Canvas
    events: [Page creation, Page update, Page deletion]
delivery:
  method: POST
  target: the webhook's configured URL (customer-supplied)
  headers:
    - name: Content-Type
      value: application/json
    - name: Idempotency-Key
      value: >-
        SHA-1 of the payload. Retries of the same delivery carry the same key; deduplicate on it. It
        is a hash, not a keyed signature, so it does NOT authenticate the sender.
    - name: User-Agent
      value: Acquia CMS
  signature: none
  signature_note: >-
    Acquia states plainly that there is no signature or shared-secret header. The receiver
    authenticates deliveries by a secret embedded in the registered URL, and anything load-bearing
    should be re-fetched over JSON:API rather than trusted from the payload.
  success_condition: any 2xx response after redirects
  failure_condition: 4xx/5xx status or connection failure
  retries: 5
  retry_interval_seconds: 30
  retry_window_note: >-
    A delivery that never succeeds stops roughly two and a half minutes after the event. There are no
    further attempts and no manual redelivery; recovery is re-fetching state over JSON:API.
  delivery_history: >-
    Every triggered delivery is recorded on the Webhooks History page in the site admin UI, with
    status, payload, and retry attempts.
payload:
  format: JSON:API document (JSON:API 1.1)
  shape: >-
    The changed entity's own JSON:API document, exactly as GET /api/{entity_type}/{bundle}/{uuid}
    would return it, plus three members under data.meta and a top-level timestamp. The shape is
    identical for create, update and delete; data.meta.operation tells them apart, and a delete
    payload carries the entity's last state captured just before deletion.
  added_members:
    - path: data.meta.operation
      values: [create, update, delete]
    - path: data.meta.user
      description: account name that triggered the event
    - path: data.meta.edit_url
      description: admin edit URL for the entity
    - path: timestamp
      description: delivery time, UNIX seconds
  caveat: >-
    The entity is normalized with the TRIGGERING user's permissions. If that user cannot view the
    entity (a workflow moved it unpublished, say), the payload carries a JSON:API errors document in
    place of the entity data and data contains only the meta block. Handle payloads without
    data.attributes by re-fetching over JSON:API with your own credentials.
docs:
  - https://dev.acquia.com/source-cms/reference/webhooks.md
  - https://dev.acquia.com/source-cms/content-api/webhooks/

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/acquia-source-cms-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.