Notion · event: page.content_updated ·
content type: application/json
This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).
One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:
Then paste the bin's URL into Notion's webhook settings to capture a real delivery. No signup.
content-type: application/json x-notion-signature: sha256=f75377b87c8bb4a8d3d605ab821bc7344d7596cb18567f7db3f53cef4989f668
{
"id": "9f6b1a2c-4d3e-4f5a-8b7c-1d2e3f4a5b6c",
"timestamp": "2026-08-29T07:30:00.123Z",
"workspace_id": "7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
"workspace_name": "Acme Docs",
"subscription_id": "2e3f4a5b-6c7d-8e9f-0a1b-2c3d4e5f6a7b",
"integration_id": "4a5b6c7d-8e9f-0a1b-2c3d-4e5f6a7b8c9d",
"authors": [
{
"id": "6c7d8e9f-0a1b-2c3d-4e5f-6a7b8c9d0e1f",
"type": "person"
}
],
"attempt_number": 1,
"entity": {
"id": "8e9f0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
"type": "page"
},
"type": "page.content_updated",
"data": {
"parent": {
"id": "0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"type": "space"
},
"updated_blocks": [
{
"id": "2c3d4e5f-6a7b-8c9d-0e1f-2a3b4c5d6e7f",
"type": "block"
}
]
}
}
secret_tKmGauZzGbRdSMNDrKLxZmqDwFsWpTHqzuLGRhbzp4o
into the signature debugger (Notion / GitHub
scheme — same sha256= hex-HMAC wire format). The key is not
your integration's API secret — it's the one-time verification_token.{"verification_token": "secret_…"} — the moment you create the
subscription. Miss it and you recreate the subscription: see
Notion webhook verification.page.content_updated
batches several block edits into updated_blocks. Payloads are thin
pointers: fetch current state via the API, don't trust the event as a snapshot.attempt_number tells you it's a retry; dedupe on id.Reproduce this delivery against any endpoint (your handler, a bin, staging):
$ curl -X POST https://your-endpoint.example/hook \
-H 'content-type: application/json' \
-H 'x-notion-signature: sha256=f75377b87c8bb4a8d3d605ab821bc7344d7596cb18567f7db3f53cef4989f668' \
-d '{
"id": "9f6b1a2c-4d3e-4f5a-8b7c-1d2e3f4a5b6c",
"timestamp": "2026-08-29T07:30:00.123Z",
"workspace_id": "7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
"workspace_name": "Acme Docs",
"subscription_id": "2e3f4a5b-6c7d-8e9f-0a1b-2c3d4e5f6a7b",
"integration_id": "4a5b6c7d-8e9f-0a1b-2c3d-4e5f6a7b8c9d",
"authors": [
{
"id": "6c7d8e9f-0a1b-2c3d-4e5f-6a7b8c9d0e1f",
"type": "person"
}
],
"attempt_number": 1,
"entity": {
"id": "8e9f0a1b-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
"type": "page"
},
"type": "page.content_updated",
"data": {
"parent": {
"id": "0a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"type": "space"
},
"updated_blocks": [
{
"id": "2c3d4e5f-6a7b-8c9d-0e1f-2a3b4c5d6e7f",
"type": "block"
}
]
}
}'
← All payload examples · Related guide · Signature debugger · Docs