clickup · AsyncAPI Specification

ClickUp Webhooks Events

Version 2.0

The ClickUp Webhooks event system delivers real-time notifications when changes occur within a ClickUp Workspace. When subscribed events happen, ClickUp sends HTTP POST requests to a registered endpoint URL with a JSON payload describing the event. Each payload is signed using HMAC-SHA256 with a shared secret for verification. Events cover tasks, lists, folders, spaces, goals, and key results.

View Spec View on GitHub AsyncAPIWebhooksEvents

Channels

/webhook
publish receiveWebhookEvent
Receive a webhook event from ClickUp
Channel for all ClickUp webhook events. Events are delivered as HTTP POST requests with a JSON body. The X-Signature header contains the HMAC-SHA256 signature for payload verification.

Messages

TaskCreated
Task Created
A new task was created
TaskUpdated
Task Updated
A task was updated
TaskDeleted
Task Deleted
A task was deleted
TaskStatusUpdated
Task Status Updated
A task status was changed
TaskAssigneeUpdated
Task Assignee Updated
A task assignee was added or removed
TaskPriorityUpdated
Task Priority Updated
A task priority was changed
TaskDueDateUpdated
Task Due Date Updated
A task due date was changed
TaskTagUpdated
Task Tag Updated
A task tag was added or removed
TaskMoved
Task Moved
A task was moved to a different list
TaskCommentPosted
Task Comment Posted
A comment was posted on a task
TaskCommentUpdated
Task Comment Updated
A comment on a task was updated
TaskTimeEstimateUpdated
Task Time Estimate Updated
A task time estimate was changed
TaskTimeTrackedUpdated
Task Time Tracked Updated
Time tracked on a task was updated
ListCreated
List Created
A new list was created
ListUpdated
List Updated
A list was updated
ListDeleted
List Deleted
A list was deleted
FolderCreated
Folder Created
A new folder was created
FolderUpdated
Folder Updated
A folder was updated
FolderDeleted
Folder Deleted
A folder was deleted
SpaceCreated
Space Created
A new space was created
SpaceUpdated
Space Updated
A space was updated
SpaceDeleted
Space Deleted
A space was deleted
GoalCreated
Goal Created
A new goal was created
GoalUpdated
Goal Updated
A goal was updated
GoalDeleted
Goal Deleted
A goal was deleted
KeyResultCreated
Key Result Created
A new key result was created
KeyResultUpdated
Key Result Updated
A key result was updated
KeyResultDeleted
Key Result Deleted
A key result was deleted

Servers

https
webhookEndpoint {webhookUrl}
The HTTPS endpoint URL registered when creating a webhook subscription. ClickUp sends event payloads as POST requests to this URL.

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: ClickUp Webhooks Events
  description: >-
    The ClickUp Webhooks event system delivers real-time notifications when
    changes occur within a ClickUp Workspace. When subscribed events happen,
    ClickUp sends HTTP POST requests to a registered endpoint URL with a
    JSON payload describing the event. Each payload is signed using
    HMAC-SHA256 with a shared secret for verification. Events cover tasks,
    lists, folders, spaces, goals, and key results.
  version: '2.0'
  contact:
    name: ClickUp Support
    url: https://help.clickup.com
  license:
    name: ClickUp API Terms
    url: https://clickup.com/terms
servers:
  webhookEndpoint:
    url: '{webhookUrl}'
    protocol: https
    description: >-
      The HTTPS endpoint URL registered when creating a webhook subscription.
      ClickUp sends event payloads as POST requests to this URL.
    variables:
      webhookUrl:
        description: >-
          The URL configured as the webhook endpoint during webhook creation.
    security:
      - hmacSignature: []
channels:
  /webhook:
    description: >-
      Channel for all ClickUp webhook events. Events are delivered as HTTP
      POST requests with a JSON body. The X-Signature header contains the
      HMAC-SHA256 signature for payload verification.
    publish:
      operationId: receiveWebhookEvent
      summary: Receive a webhook event from ClickUp
      description: >-
        ClickUp publishes webhook events to the registered endpoint. Each
        event includes the event type, webhook ID, and event-specific data
        in the history_items array. The payload is signed with the shared
        secret using HMAC-SHA256.
      message:
        oneOf:
          - $ref: '#/components/messages/TaskCreated'
          - $ref: '#/components/messages/TaskUpdated'
          - $ref: '#/components/messages/TaskDeleted'
          - $ref: '#/components/messages/TaskStatusUpdated'
          - $ref: '#/components/messages/TaskAssigneeUpdated'
          - $ref: '#/components/messages/TaskPriorityUpdated'
          - $ref: '#/components/messages/TaskDueDateUpdated'
          - $ref: '#/components/messages/TaskTagUpdated'
          - $ref: '#/components/messages/TaskMoved'
          - $ref: '#/components/messages/TaskCommentPosted'
          - $ref: '#/components/messages/TaskCommentUpdated'
          - $ref: '#/components/messages/TaskTimeEstimateUpdated'
          - $ref: '#/components/messages/TaskTimeTrackedUpdated'
          - $ref: '#/components/messages/ListCreated'
          - $ref: '#/components/messages/ListUpdated'
          - $ref: '#/components/messages/ListDeleted'
          - $ref: '#/components/messages/FolderCreated'
          - $ref: '#/components/messages/FolderUpdated'
          - $ref: '#/components/messages/FolderDeleted'
          - $ref: '#/components/messages/SpaceCreated'
          - $ref: '#/components/messages/SpaceUpdated'
          - $ref: '#/components/messages/SpaceDeleted'
          - $ref: '#/components/messages/GoalCreated'
          - $ref: '#/components/messages/GoalUpdated'
          - $ref: '#/components/messages/GoalDeleted'
          - $ref: '#/components/messages/KeyResultCreated'
          - $ref: '#/components/messages/KeyResultUpdated'
          - $ref: '#/components/messages/KeyResultDeleted'
components:
  securitySchemes:
    hmacSignature:
      type: httpApiKey
      name: X-Signature
      in: header
      description: >-
        HMAC-SHA256 signature of the request body, signed with the shared
        secret returned when the webhook was created. Verify by computing
        HMAC-SHA256 of the raw request body using the secret and comparing
        with the X-Signature header value.
  messages:
    TaskCreated:
      name: taskCreated
      title: Task Created
      summary: A new task was created
      description: >-
        Triggered when a new task is created within the subscribed scope.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskUpdated:
      name: taskUpdated
      title: Task Updated
      summary: A task was updated
      description: >-
        Triggered when a task field is modified. The history_items array
        contains the specific field changes with before and after values.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskDeleted:
      name: taskDeleted
      title: Task Deleted
      summary: A task was deleted
      description: >-
        Triggered when a task is permanently deleted.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskStatusUpdated:
      name: taskStatusUpdated
      title: Task Status Updated
      summary: A task status was changed
      description: >-
        Triggered when a task's status changes. The history_items include
        the previous and new status values.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskAssigneeUpdated:
      name: taskAssigneeUpdated
      title: Task Assignee Updated
      summary: A task assignee was added or removed
      description: >-
        Triggered when assignees are added to or removed from a task.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskPriorityUpdated:
      name: taskPriorityUpdated
      title: Task Priority Updated
      summary: A task priority was changed
      description: >-
        Triggered when a task's priority level is changed.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskDueDateUpdated:
      name: taskDueDateUpdated
      title: Task Due Date Updated
      summary: A task due date was changed
      description: >-
        Triggered when a task's due date is set, changed, or removed.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskTagUpdated:
      name: taskTagUpdated
      title: Task Tag Updated
      summary: A task tag was added or removed
      description: >-
        Triggered when tags are added to or removed from a task.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskMoved:
      name: taskMoved
      title: Task Moved
      summary: A task was moved to a different list
      description: >-
        Triggered when a task is moved from one list to another.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskCommentPosted:
      name: taskCommentPosted
      title: Task Comment Posted
      summary: A comment was posted on a task
      description: >-
        Triggered when a new comment is added to a task.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskCommentUpdated:
      name: taskCommentUpdated
      title: Task Comment Updated
      summary: A comment on a task was updated
      description: >-
        Triggered when an existing comment on a task is modified.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskTimeEstimateUpdated:
      name: taskTimeEstimateUpdated
      title: Task Time Estimate Updated
      summary: A task time estimate was changed
      description: >-
        Triggered when a task's time estimate is set or modified.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    TaskTimeTrackedUpdated:
      name: taskTimeTrackedUpdated
      title: Task Time Tracked Updated
      summary: Time tracked on a task was updated
      description: >-
        Triggered when a time entry is added, modified, or deleted on a task.
      payload:
        $ref: '#/components/schemas/TaskWebhookPayload'
    ListCreated:
      name: listCreated
      title: List Created
      summary: A new list was created
      description: >-
        Triggered when a new list is created within the subscribed scope.
      payload:
        $ref: '#/components/schemas/ListWebhookPayload'
    ListUpdated:
      name: listUpdated
      title: List Updated
      summary: A list was updated
      description: >-
        Triggered when a list's properties are modified.
      payload:
        $ref: '#/components/schemas/ListWebhookPayload'
    ListDeleted:
      name: listDeleted
      title: List Deleted
      summary: A list was deleted
      description: >-
        Triggered when a list is permanently deleted.
      payload:
        $ref: '#/components/schemas/ListWebhookPayload'
    FolderCreated:
      name: folderCreated
      title: Folder Created
      summary: A new folder was created
      description: >-
        Triggered when a new folder is created within the subscribed scope.
      payload:
        $ref: '#/components/schemas/FolderWebhookPayload'
    FolderUpdated:
      name: folderUpdated
      title: Folder Updated
      summary: A folder was updated
      description: >-
        Triggered when a folder's properties are modified.
      payload:
        $ref: '#/components/schemas/FolderWebhookPayload'
    FolderDeleted:
      name: folderDeleted
      title: Folder Deleted
      summary: A folder was deleted
      description: >-
        Triggered when a folder is permanently deleted.
      payload:
        $ref: '#/components/schemas/FolderWebhookPayload'
    SpaceCreated:
      name: spaceCreated
      title: Space Created
      summary: A new space was created
      description: >-
        Triggered when a new space is created within the Workspace.
      payload:
        $ref: '#/components/schemas/SpaceWebhookPayload'
    SpaceUpdated:
      name: spaceUpdated
      title: Space Updated
      summary: A space was updated
      description: >-
        Triggered when a space's properties are modified.
      payload:
        $ref: '#/components/schemas/SpaceWebhookPayload'
    SpaceDeleted:
      name: spaceDeleted
      title: Space Deleted
      summary: A space was deleted
      description: >-
        Triggered when a space is permanently deleted.
      payload:
        $ref: '#/components/schemas/SpaceWebhookPayload'
    GoalCreated:
      name: goalCreated
      title: Goal Created
      summary: A new goal was created
      description: >-
        Triggered when a new goal is created within the Workspace.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
    GoalUpdated:
      name: goalUpdated
      title: Goal Updated
      summary: A goal was updated
      description: >-
        Triggered when a goal's properties are modified.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
    GoalDeleted:
      name: goalDeleted
      title: Goal Deleted
      summary: A goal was deleted
      description: >-
        Triggered when a goal is permanently deleted.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
    KeyResultCreated:
      name: keyResultCreated
      title: Key Result Created
      summary: A new key result was created
      description: >-
        Triggered when a new key result is added to a goal.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
    KeyResultUpdated:
      name: keyResultUpdated
      title: Key Result Updated
      summary: A key result was updated
      description: >-
        Triggered when a key result's progress or properties are modified.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
    KeyResultDeleted:
      name: keyResultDeleted
      title: Key Result Deleted
      summary: A key result was deleted
      description: >-
        Triggered when a key result is permanently deleted from a goal.
      payload:
        $ref: '#/components/schemas/GoalWebhookPayload'
  schemas:
    TaskWebhookPayload:
      type: object
      description: >-
        Payload delivered for task-related webhook events.
      properties:
        event:
          type: string
          description: >-
            The event name (e.g., taskCreated, taskUpdated, taskDeleted).
        webhook_id:
          type: string
          description: >-
            The ID of the webhook subscription that triggered this event.
        task_id:
          type: string
          description: >-
            The ID of the task that was affected.
        history_items:
          type: array
          items:
            $ref: '#/components/schemas/HistoryItem'
          description: >-
            Array of change records describing what was modified. Each item
            contains the field name, the before and after values, the user
            who made the change, and the timestamp.
    ListWebhookPayload:
      type: object
      description: >-
        Payload delivered for list-related webhook events.
      properties:
        event:
          type: string
          description: >-
            The event name (e.g., listCreated, listUpdated, listDeleted).
        webhook_id:
          type: string
          description: >-
            The ID of the webhook subscription that triggered this event.
        list_id:
          type: string
          description: >-
            The ID of the list that was affected.
        history_items:
          type: array
          items:
            $ref: '#/components/schemas/HistoryItem'
          description: >-
            Array of change records.
    FolderWebhookPayload:
      type: object
      description: >-
        Payload delivered for folder-related webhook events.
      properties:
        event:
          type: string
          description: >-
            The event name (e.g., folderCreated, folderUpdated, folderDeleted).
        webhook_id:
          type: string
          description: >-
            The ID of the webhook subscription that triggered this event.
        folder_id:
          type: string
          description: >-
            The ID of the folder that was affected.
        history_items:
          type: array
          items:
            $ref: '#/components/schemas/HistoryItem'
          description: >-
            Array of change records.
    SpaceWebhookPayload:
      type: object
      description: >-
        Payload delivered for space-related webhook events.
      properties:
        event:
          type: string
          description: >-
            The event name (e.g., spaceCreated, spaceUpdated, spaceDeleted).
        webhook_id:
          type: string
          description: >-
            The ID of the webhook subscription that triggered this event.
        space_id:
          type: string
          description: >-
            The ID of the space that was affected.
        history_items:
          type: array
          items:
            $ref: '#/components/schemas/HistoryItem'
          description: >-
            Array of change records.
    GoalWebhookPayload:
      type: object
      description: >-
        Payload delivered for goal and key result-related webhook events.
      properties:
        event:
          type: string
          description: >-
            The event name (e.g., goalCreated, goalUpdated, keyResultUpdated).
        webhook_id:
          type: string
          description: >-
            The ID of the webhook subscription that triggered this event.
        goal_id:
          type: string
          description: >-
            The ID of the goal that was affected.
        history_items:
          type: array
          items:
            $ref: '#/components/schemas/HistoryItem'
          description: >-
            Array of change records.
    HistoryItem:
      type: object
      description: >-
        A record of a single change within a webhook event. Describes what
        field was changed, by whom, and the before and after values.
      properties:
        id:
          type: string
          description: >-
            The unique identifier of the history item.
        type:
          type: integer
          description: >-
            The type code of the history item.
        date:
          type: string
          description: >-
            Unix timestamp in milliseconds when the change occurred.
        field:
          type: string
          description: >-
            The name of the field that was changed (e.g., status, priority,
            assignee, due_date, tag, comment, name, description).
        parent_id:
          type: string
          description: >-
            The parent resource ID.
        data:
          type: object
          description: >-
            Additional data about the change.
        source:
          type: string
          nullable: true
          description: >-
            The source of the change (e.g., null for UI, api for API).
        user:
          type: object
          properties:
            id:
              type: integer
              description: >-
                The user ID who made the change.
            username:
              type: string
              description: >-
                The username.
            email:
              type: string
              format: email
              description: >-
                The email address.
            color:
              type: string
              description: >-
                The user color.
            profilePicture:
              type: string
              format: uri
              nullable: true
              description: >-
                URL of the profile picture.
            initials:
              type: string
              description: >-
                The user initials.
          description: >-
            The user who made the change.
        before:
          description: >-
            The value before the change. Type varies based on the field.
        after:
          description: >-
            The value after the change. Type varies based on the field.