Acquia · AsyncAPI Specification
Acquia Source Cms Webhooks
Version
View Spec
View on GitHub
ContentExperienceDrupalDXPCMSDigital Asset ManagementCloud HostingHeadlessAsyncAPIEvents
AsyncAPI Specification
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.
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.