Prismic · AsyncAPI Specification
Prismic Webhooks
Version
View Spec
View on GitHub
GraphQLHeadless CMSContent ManagementPage BuilderJAMstackMarketingContent DeliveryDeveloper ToolsMCPWebhookLocalizationDigital Asset ManagementAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-13'
method: searched
source: https://prismic.io/docs/webhooks
spec_type: none
spec_note: >-
Prismic publishes NO AsyncAPI document. Probes for /asyncapi.yaml and
/asyncapi.json on prismic.io and the API hosts missed, and there is no event
catalogue in the GitHub org. What Prismic does publish is a documented webhook
surface with a fully specified payload schema and a stated delivery contract,
captured below. This artifact is therefore a Webhooks catalogue, not an
AsyncAPI spec — no AsyncAPI pointer is wired in apis.yml.
surface: webhooks
direction: outbound (Prismic -> subscriber)
transport: HTTP POST
subscriber_url: caller-supplied
docs: https://prismic.io/docs/webhooks
status_page_component: Webhooks (https://status.prismic.io/)
management:
cli:
create: npx prismic webhook create https://example.com/my-endpoint
scoped_create: npx prismic webhook create <url> --trigger documentsPublished --trigger
documentsUnpublished
help: npx prismic webhook --help
ui: Repository Settings > Webhooks
default_triggers: all events
api: none — webhooks are managed via the CLI or the dashboard only. There is no HTTP
API for webhook subscriptions.
security:
secret:
supported: true
mechanism: An optional shared secret configured on the webhook and echoed back in
the payload's `secret` property.
note: >-
This is an echoed shared secret, NOT a request signature. There is no HMAC
signature header, no timestamp, and therefore no replay protection — a
subscriber can only compare the secret in the body. Prismic documents no
signing scheme.
signature_header: none
ip_allowlist: not published
delivery:
success_condition: subscriber responds 200
retries: 5
retry_interval: 10 minutes
auto_disable: Prismic disables a webhook automatically after five consecutive failures.
logs: Most recent triggers are listed on the repository's Webhooks page; the Logs
tab shows all events from the past 30 days.
ordering: not published
delivery_guarantee: not published (at-least-once implied by the retry policy)
events:
documented_summary:
- A page is published or unpublished.
- A release is created, edited, or deleted.
- A tag is created or deleted.
trigger_names:
- documentsPublished
- documentsUnpublished
trigger_note: >-
Prismic names exactly two `--trigger` values in its documentation
(documentsPublished, documentsUnpublished) while describing seven distinct
events that can fire a webhook. The full trigger vocabulary is discoverable
only from `npx prismic webhook create --help`, not from the docs — an
undocumented gap between the described events and the addressable triggers.
example_payload_scenarios:
- A page is published
- A page is unpublished
- A release is created
- A release is updated
- A release is deleted
- A tag is created
- A tag is deleted
payload:
content_type: application/json
discriminator: type
types: [api-update, test-trigger]
ambiguity_warning: >-
Prismic states plainly that the payload for a page PUBLISHED is identical to
the payload for a page UNPUBLISHED, and recommends configuring two separate
endpoints to tell them apart. A single subscriber cannot distinguish the two
from the body alone.
properties:
- {name: type, type: 'api-update | test-trigger', required: true, description: Type
of the webhook.}
- {name: secret, type: 'string | null', required: false, default: 'null', description: The
configured secret, if there is one.}
- {name: masterRef, type: string, required: true, description: The new master ref.}
- {name: domain, type: string, required: true, description: Your Prismic repository
name.}
- {name: apiUrl, type: string, required: true, description: Your Prismic repository
URL.}
- {name: documents, type: 'string[]', required: true, description: A list of page
IDs that changed.}
- {name: releases, type: object, required: true, description: A list of changes
made to releases.}
- {name: releases.addition, type: 'object[]', description: 'Added releases — each
carries id, ref, label and the IDs of the pages in the release.'}
- {name: releases.update, type: 'object[]', description: 'Updated releases — each
carries id, ref, label, scheduledAt and the page IDs.'}
- {name: releases.deletion, type: 'object[]', description: 'Deleted releases — each
carries id, ref, label, scheduledAt and the page IDs.'}
- {name: tags, type: object, description: A list of changes made to tags.}
- {name: tags.addition, type: 'object[]', description: Added tags, each with an id.}
- {name: tags.deletion, type: 'object[]', description: Deleted tags, each with an
id.}
- {name: bookmarks, type: object, deprecated: true, description: 'Legacy field.
Do not use.'}
- {name: collection, type: object, deprecated: true, description: 'Legacy field.
Do not use.'}
payload_carries_content: false
payload_note: >-
The payload is a change NOTIFICATION, not a change feed. It carries page IDs
and the new master ref, never the changed content. A subscriber must call the
Content API with the supplied `masterRef` to read what actually changed —
which is exactly the intended pattern, since that ref is the cache key.
common_uses:
- name: Trigger a static rebuild on publish
hosts_documented: [Netlify, Vercel, AWS Amplify]
pattern: 'npx prismic webhook create <build-hook-url> --trigger documentsPublished
--trigger documentsUnpublished'
gaps:
- No AsyncAPI document.
- No request signature (HMAC) — only an echoed shared secret.
- No published trigger vocabulary beyond two named values.
- Published and unpublished events are indistinguishable in the payload.
- No API for managing webhook subscriptions (CLI/UI only).
- No streaming or pub/sub surface — webhooks are the entire event story.
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/prismic-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.