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.
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: 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.
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.