Confluence Cloud Webhooks
Version 1.0.0
Asynchronous event notifications from Confluence Cloud. Webhooks allow applications to receive real-time notifications when content, spaces, or other entities are created, updated, or deleted in Confluence. Webhooks can be registered through the Confluence UI, REST API, or via Atlassian Connect app descriptors.
Channels
Messages
Servers
AsyncAPI Specification
asyncapi: 3.0.0
info:
title: Confluence Cloud Webhooks
version: 1.0.0
description: >-
Asynchronous event notifications from Confluence Cloud. Webhooks allow
applications to receive real-time notifications when content, spaces, or
other entities are created, updated, or deleted in Confluence. Webhooks
can be registered through the Confluence UI, REST API, or via Atlassian
Connect app descriptors.
contact:
name: Atlassian
url: https://developer.atlassian.com/cloud/confluence/
email: ecosystem@atlassian.com
license:
name: Atlassian Developer Terms
url: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
externalDocs:
description: Confluence Webhooks Documentation
url: https://developer.atlassian.com/cloud/confluence/using-webhooks/
tags:
- name: content
description: Events related to Confluence content (pages, blog posts)
- name: space
description: Events related to Confluence spaces
- name: comment
description: Events related to comments on content
- name: attachment
description: Events related to file attachments
- name: label
description: Events related to labels
- name: user
description: Events related to user actions
servers:
webhookReceiver:
host: your-app.example.com
protocol: https
description: >-
Your application endpoint that receives webhook callbacks from
Confluence Cloud. This URL is configured when registering the webhook.
security:
- $ref: '#/components/securitySchemes/webhookSecret'
channels:
pageCreated:
address: /webhooks/confluence
description: Channel for page_created events
messages:
pageCreated:
$ref: '#/components/messages/PageCreated'
pageUpdated:
address: /webhooks/confluence
description: Channel for page_updated events
messages:
pageUpdated:
$ref: '#/components/messages/PageUpdated'
pageRemoved:
address: /webhooks/confluence
description: Channel for page_removed events
messages:
pageRemoved:
$ref: '#/components/messages/PageRemoved'
pageTrashed:
address: /webhooks/confluence
description: Channel for page_trashed events
messages:
pageTrashed:
$ref: '#/components/messages/PageTrashed'
pageRestored:
address: /webhooks/confluence
description: Channel for page_restored events
messages:
pageRestored:
$ref: '#/components/messages/PageRestored'
spaceCreated:
address: /webhooks/confluence
description: Channel for space_created events
messages:
spaceCreated:
$ref: '#/components/messages/SpaceCreated'
spaceUpdated:
address: /webhooks/confluence
description: Channel for space_updated events
messages:
spaceUpdated:
$ref: '#/components/messages/SpaceUpdated'
spaceRemoved:
address: /webhooks/confluence
description: Channel for space_removed events
messages:
spaceRemoved:
$ref: '#/components/messages/SpaceRemoved'
commentCreated:
address: /webhooks/confluence
description: Channel for comment_created events
messages:
commentCreated:
$ref: '#/components/messages/CommentCreated'
commentUpdated:
address: /webhooks/confluence
description: Channel for comment_updated events
messages:
commentUpdated:
$ref: '#/components/messages/CommentUpdated'
commentRemoved:
address: /webhooks/confluence
description: Channel for comment_removed events
messages:
commentRemoved:
$ref: '#/components/messages/CommentRemoved'
attachmentCreated:
address: /webhooks/confluence
description: Channel for attachment_created events
messages:
attachmentCreated:
$ref: '#/components/messages/AttachmentCreated'
attachmentUpdated:
address: /webhooks/confluence
description: Channel for attachment_updated events
messages:
attachmentUpdated:
$ref: '#/components/messages/AttachmentUpdated'
attachmentRemoved:
address: /webhooks/confluence
description: Channel for attachment_removed events
messages:
attachmentRemoved:
$ref: '#/components/messages/AttachmentRemoved'
labelCreated:
address: /webhooks/confluence
description: Channel for label_created events
messages:
labelCreated:
$ref: '#/components/messages/LabelCreated'
labelRemoved:
address: /webhooks/confluence
description: Channel for label_removed events
messages:
labelRemoved:
$ref: '#/components/messages/LabelRemoved'
blogCreated:
address: /webhooks/confluence
description: Channel for blog_created events
messages:
blogCreated:
$ref: '#/components/messages/BlogCreated'
blogUpdated:
address: /webhooks/confluence
description: Channel for blog_updated events
messages:
blogUpdated:
$ref: '#/components/messages/BlogUpdated'
blogRemoved:
address: /webhooks/confluence
description: Channel for blog_removed events
messages:
blogRemoved:
$ref: '#/components/messages/BlogRemoved'
operations:
onPageCreated:
action: receive
channel:
$ref: '#/channels/pageCreated'
title: Page created
summary: Triggered when a new page is created in Confluence.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/pageCreated/messages/pageCreated'
onPageUpdated:
action: receive
channel:
$ref: '#/channels/pageUpdated'
title: Page updated
summary: Triggered when an existing page is updated in Confluence.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/pageUpdated/messages/pageUpdated'
onPageRemoved:
action: receive
channel:
$ref: '#/channels/pageRemoved'
title: Page removed
summary: Triggered when a page is permanently removed from Confluence.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/pageRemoved/messages/pageRemoved'
onPageTrashed:
action: receive
channel:
$ref: '#/channels/pageTrashed'
title: Page trashed
summary: Triggered when a page is moved to the trash.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/pageTrashed/messages/pageTrashed'
onPageRestored:
action: receive
channel:
$ref: '#/channels/pageRestored'
title: Page restored
summary: Triggered when a page is restored from the trash.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/pageRestored/messages/pageRestored'
onSpaceCreated:
action: receive
channel:
$ref: '#/channels/spaceCreated'
title: Space created
summary: Triggered when a new space is created in Confluence.
tags:
- $ref: '#/components/tags/space'
messages:
- $ref: '#/channels/spaceCreated/messages/spaceCreated'
onSpaceUpdated:
action: receive
channel:
$ref: '#/channels/spaceUpdated'
title: Space updated
summary: Triggered when a space is updated in Confluence.
tags:
- $ref: '#/components/tags/space'
messages:
- $ref: '#/channels/spaceUpdated/messages/spaceUpdated'
onSpaceRemoved:
action: receive
channel:
$ref: '#/channels/spaceRemoved'
title: Space removed
summary: Triggered when a space is removed from Confluence.
tags:
- $ref: '#/components/tags/space'
messages:
- $ref: '#/channels/spaceRemoved/messages/spaceRemoved'
onCommentCreated:
action: receive
channel:
$ref: '#/channels/commentCreated'
title: Comment created
summary: Triggered when a new comment is added to a page or blog post.
tags:
- $ref: '#/components/tags/comment'
messages:
- $ref: '#/channels/commentCreated/messages/commentCreated'
onCommentUpdated:
action: receive
channel:
$ref: '#/channels/commentUpdated'
title: Comment updated
summary: Triggered when a comment is updated.
tags:
- $ref: '#/components/tags/comment'
messages:
- $ref: '#/channels/commentUpdated/messages/commentUpdated'
onCommentRemoved:
action: receive
channel:
$ref: '#/channels/commentRemoved'
title: Comment removed
summary: Triggered when a comment is removed.
tags:
- $ref: '#/components/tags/comment'
messages:
- $ref: '#/channels/commentRemoved/messages/commentRemoved'
onAttachmentCreated:
action: receive
channel:
$ref: '#/channels/attachmentCreated'
title: Attachment created
summary: Triggered when a file is attached to a page or blog post.
tags:
- $ref: '#/components/tags/attachment'
messages:
- $ref: '#/channels/attachmentCreated/messages/attachmentCreated'
onAttachmentUpdated:
action: receive
channel:
$ref: '#/channels/attachmentUpdated'
title: Attachment updated
summary: Triggered when an attachment is updated with a new version.
tags:
- $ref: '#/components/tags/attachment'
messages:
- $ref: '#/channels/attachmentUpdated/messages/attachmentUpdated'
onAttachmentRemoved:
action: receive
channel:
$ref: '#/channels/attachmentRemoved'
title: Attachment removed
summary: Triggered when an attachment is removed from content.
tags:
- $ref: '#/components/tags/attachment'
messages:
- $ref: '#/channels/attachmentRemoved/messages/attachmentRemoved'
onLabelCreated:
action: receive
channel:
$ref: '#/channels/labelCreated'
title: Label created
summary: Triggered when a label is added to content.
tags:
- $ref: '#/components/tags/label'
messages:
- $ref: '#/channels/labelCreated/messages/labelCreated'
onLabelRemoved:
action: receive
channel:
$ref: '#/channels/labelRemoved'
title: Label removed
summary: Triggered when a label is removed from content.
tags:
- $ref: '#/components/tags/label'
messages:
- $ref: '#/channels/labelRemoved/messages/labelRemoved'
onBlogCreated:
action: receive
channel:
$ref: '#/channels/blogCreated'
title: Blog post created
summary: Triggered when a new blog post is created.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/blogCreated/messages/blogCreated'
onBlogUpdated:
action: receive
channel:
$ref: '#/channels/blogUpdated'
title: Blog post updated
summary: Triggered when a blog post is updated.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/blogUpdated/messages/blogUpdated'
onBlogRemoved:
action: receive
channel:
$ref: '#/channels/blogRemoved'
title: Blog post removed
summary: Triggered when a blog post is removed.
tags:
- $ref: '#/components/tags/content'
messages:
- $ref: '#/channels/blogRemoved/messages/blogRemoved'
components:
tags:
content:
name: content
description: Events related to Confluence content
space:
name: space
description: Events related to Confluence spaces
comment:
name: comment
description: Events related to comments
attachment:
name: attachment
description: Events related to attachments
label:
name: label
description: Events related to labels
securitySchemes:
webhookSecret:
type: httpApiKey
name: X-Hub-Signature
in: header
description: >-
HMAC-SHA256 signature of the webhook payload, computed using
the shared secret configured when registering the webhook.
messages:
PageCreated:
name: page_created
title: Page Created
summary: A new page has been created in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/PageEvent'
PageUpdated:
name: page_updated
title: Page Updated
summary: An existing page has been updated in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/PageEvent'
PageRemoved:
name: page_removed
title: Page Removed
summary: A page has been permanently removed from Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/PageEvent'
PageTrashed:
name: page_trashed
title: Page Trashed
summary: A page has been moved to the trash in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/PageEvent'
PageRestored:
name: page_restored
title: Page Restored
summary: A page has been restored from the trash in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/PageEvent'
SpaceCreated:
name: space_created
title: Space Created
summary: A new space has been created in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/SpaceEvent'
SpaceUpdated:
name: space_updated
title: Space Updated
summary: A space has been updated in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/SpaceEvent'
SpaceRemoved:
name: space_removed
title: Space Removed
summary: A space has been removed from Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/SpaceEvent'
CommentCreated:
name: comment_created
title: Comment Created
summary: A new comment has been added to a page or blog post.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/CommentEvent'
CommentUpdated:
name: comment_updated
title: Comment Updated
summary: A comment has been updated on a page or blog post.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/CommentEvent'
CommentRemoved:
name: comment_removed
title: Comment Removed
summary: A comment has been removed from a page or blog post.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/CommentEvent'
AttachmentCreated:
name: attachment_created
title: Attachment Created
summary: A file has been attached to a page or blog post.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/AttachmentEvent'
AttachmentUpdated:
name: attachment_updated
title: Attachment Updated
summary: An attachment has been updated with a new version.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/AttachmentEvent'
AttachmentRemoved:
name: attachment_removed
title: Attachment Removed
summary: An attachment has been removed from content.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/AttachmentEvent'
LabelCreated:
name: label_created
title: Label Created
summary: A label has been added to content.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/LabelEvent'
LabelRemoved:
name: label_removed
title: Label Removed
summary: A label has been removed from content.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/LabelEvent'
BlogCreated:
name: blog_created
title: Blog Post Created
summary: A new blog post has been created in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/BlogPostEvent'
BlogUpdated:
name: blog_updated
title: Blog Post Updated
summary: A blog post has been updated in Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/BlogPostEvent'
BlogRemoved:
name: blog_removed
title: Blog Post Removed
summary: A blog post has been removed from Confluence.
contentType: application/json
headers:
$ref: '#/components/schemas/WebhookHeaders'
payload:
$ref: '#/components/schemas/BlogPostEvent'
schemas:
WebhookHeaders:
type: object
properties:
X-Atlassian-Webhook-Identifier:
type: string
description: Unique identifier for this webhook registration.
X-Hub-Signature:
type: string
description: HMAC-SHA256 signature of the request body.
Content-Type:
type: string
enum:
- application/json
WebhookBase:
type: object
description: Common fields present in all Confluence webhook payloads.
properties:
timestamp:
type: integer
format: int64
description: Unix timestamp in milliseconds when the event occurred.
event:
type: string
description: The event type identifier.
userAccountId:
type: string
description: The Atlassian account ID of the user who triggered the event.
PageEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- page_created
- page_updated
- page_removed
- page_trashed
- page_restored
page:
$ref: '#/components/schemas/PagePayload'
PagePayload:
type: object
description: Page data included in webhook payloads.
properties:
id:
type: string
description: The unique identifier of the page.
type:
type: string
description: The content type, always "page" for pages.
enum:
- page
status:
type: string
description: The status of the page.
enum:
- current
- draft
- trashed
title:
type: string
description: The title of the page.
spaceKey:
type: string
description: The key of the space the page belongs to.
version:
type: object
properties:
number:
type: integer
description: The version number.
when:
type: string
format: date-time
description: Timestamp of this version.
message:
type: string
description: Version message.
minorEdit:
type: boolean
description: Whether this was a minor edit.
creatorAccountId:
type: string
description: Atlassian account ID of the page creator.
lastModifierAccountId:
type: string
description: Atlassian account ID of the last modifier.
self:
type: string
format: uri
description: The REST API URL for this page.
SpaceEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- space_created
- space_updated
- space_removed
space:
$ref: '#/components/schemas/SpacePayload'
SpacePayload:
type: object
description: Space data included in webhook payloads.
properties:
id:
type: integer
format: int64
description: The unique identifier of the space.
key:
type: string
description: The key of the space.
name:
type: string
description: The name of the space.
type:
type: string
description: The type of space.
enum:
- global
- personal
status:
type: string
description: The status of the space.
enum:
- current
- archived
creatorAccountId:
type: string
description: Atlassian account ID of the space creator.
self:
type: string
format: uri
description: The REST API URL for this space.
CommentEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- comment_created
- comment_updated
- comment_removed
comment:
$ref: '#/components/schemas/CommentPayload'
CommentPayload:
type: object
description: Comment data included in webhook payloads.
properties:
id:
type: string
description: The unique identifier of the comment.
type:
type: string
description: The content type.
enum:
- comment
status:
type: string
description: The status of the comment.
enum:
- current
- trashed
title:
type: string
description: The title of the comment.
version:
type: object
properties:
number:
type: integer
when:
type: string
format: date-time
container:
type: object
description: The content the comment is on.
properties:
id:
type: string
type:
type: string
enum:
- page
- blogpost
- comment
title:
type: string
creatorAccountId:
type: string
description: Atlassian account ID of the comment creator.
self:
type: string
format: uri
description: The REST API URL for this comment.
AttachmentEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- attachment_created
- attachment_updated
- attachment_removed
attachment:
$ref: '#/components/schemas/AttachmentPayload'
AttachmentPayload:
type: object
description: Attachment data included in webhook payloads.
properties:
id:
type: string
description: The unique identifier of the attachment.
type:
type: string
enum:
- attachment
status:
type: string
enum:
- current
- trashed
title:
type: string
description: The filename of the attachment.
mediaType:
type: string
description: The MIME type of the attachment.
fileSize:
type: integer
format: int64
description: The file size in bytes.
container:
type: object
description: The content the attachment is on.
properties:
id:
type: string
type:
type: string
enum:
- page
- blogpost
title:
type: string
creatorAccountId:
type: string
self:
type: string
format: uri
LabelEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- label_created
- label_removed
label:
type: object
properties:
name:
type: string
description: The name of the label.
prefix:
type: string
description: The prefix of the label.
associatedContent:
type: object
description: The content the label was added to or removed from.
properties:
id:
type: string
type:
type: string
enum:
- page
- blogpost
title:
type: string
BlogPostEvent:
allOf:
- $ref: '#/components/schemas/WebhookBase'
- type: object
properties:
event:
type: string
enum:
- blog_created
- blog_updated
- blog_removed
blogPost:
$ref: '#/components/schemas/BlogPostPayload'
BlogPostPayload:
type: object
description: Blog post data included in webhook payloads.
properties:
id:
type: string
description: The unique identifier of the blog post.
type:
type: string
enum:
- blogpost
status:
type: string
enum:
- current
- draft
- trashed
title:
type: string
description: The title of the blog post.
spaceKey:
type: string
description: The key of the space the blog post belongs to.
version:
type: object
properties:
number:
type: integer
when:
type: string
format: date-time
message:
type: string
minorEdit:
type: boolean
creatorAccountId:
type: string
lastModifierAccountId:
type: string
self:
type: string
format: uri
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
curl "https://apis.io/api/v1/asyncapis/confluence-webhooks"
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.