clickup · Capability
ClickUp Tasks API — Tasks
ClickUp Tasks API — Tasks. 11 operations. Lead operation: Get tasks in a list. Self-contained Naftiko capability covering one Clickup business surface.
What You Can Do
GET
Gettasks
— Get tasks in a list
/v1/list/{list-id}/task
POST
Createtask
— Create a task
/v1/list/{list-id}/task
GET
Gettaskmembers
— Get task members
/v1/list/{list-id}/task/{task-id}/member
GET
Getbulktasktimeinstatus
— Get bulk task time in status
/v1/task/bulk-time-in-status/task-ids
GET
Gettask
— Get a task
/v1/task/{task-id}
PUT
Updatetask
— Update a task
/v1/task/{task-id}
DELETE
Deletetask
— Delete a task
/v1/task/{task-id}
POST
Addtagtotask
— Add tag to task
/v1/task/{task-id}/tag/{tag-name}
DELETE
Removetagfromtask
— Remove tag from task
/v1/task/{task-id}/tag/{tag-name}
GET
Gettasktimeinstatus
— Get task time in status
/v1/task/{task-id}/time-in-status
GET
Getfilteredteamtasks
— Get filtered team tasks
/v1/team/{team-id}/task
MCP Tools
get-tasks-list
Get tasks in a list
read-only
idempotent
create-task
Create a task
get-task-members
Get task members
read-only
idempotent
get-bulk-task-time-status
Get bulk task time in status
read-only
idempotent
get-task
Get a task
read-only
idempotent
update-task
Update a task
idempotent
delete-task
Delete a task
idempotent
add-tag-task
Add tag to task
remove-tag-task
Remove tag from task
idempotent
get-task-time-status
Get task time in status
read-only
idempotent
get-filtered-team-tasks
Get filtered team tasks
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: ClickUp Tasks API — Tasks
description: 'ClickUp Tasks API — Tasks. 11 operations. Lead operation: Get tasks in a list. Self-contained Naftiko capability
covering one Clickup business surface.'
tags:
- Clickup
- Tasks
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
CLICKUP_API_KEY: CLICKUP_API_KEY
capability:
consumes:
- type: http
namespace: tasks-tasks
baseUri: https://api.clickup.com/api/v2
description: ClickUp Tasks API — Tasks business capability. Self-contained, no shared references.
resources:
- name: list-list_id-task
path: /list/{list_id}/task
operations:
- name: gettasks
method: GET
description: Get tasks in a list
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: archived
in: query
type: boolean
description: Include archived tasks in the response.
- name: include_markdown_description
in: query
type: boolean
description: Return task descriptions in Markdown format.
- name: page
in: query
type: integer
description: Page number for pagination. Starts at 0.
- name: order_by
in: query
type: string
description: Field to order results by.
- name: reverse
in: query
type: boolean
description: Reverse the order of results.
- name: subtasks
in: query
type: boolean
description: Include subtasks in the response.
- name: statuses[]
in: query
type: array
description: Filter by task status.
- name: include_closed
in: query
type: boolean
description: Include closed tasks in the response.
- name: assignees[]
in: query
type: array
description: Filter by assignee user IDs.
- name: tags[]
in: query
type: array
description: Filter by tag names.
- name: due_date_gt
in: query
type: integer
description: Filter for tasks with due date greater than this Unix timestamp in milliseconds.
- name: due_date_lt
in: query
type: integer
description: Filter for tasks with due date less than this Unix timestamp in milliseconds.
- name: date_created_gt
in: query
type: integer
description: Filter for tasks created after this Unix timestamp in milliseconds.
- name: date_created_lt
in: query
type: integer
description: Filter for tasks created before this Unix timestamp in milliseconds.
- name: date_updated_gt
in: query
type: integer
description: Filter for tasks updated after this Unix timestamp in milliseconds.
- name: date_updated_lt
in: query
type: integer
description: Filter for tasks updated before this Unix timestamp in milliseconds.
- name: custom_fields
in: query
type: string
description: Filter by custom field values. Provided as a JSON array of objects.
- name: createtask
method: POST
description: Create a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: custom_task_ids
in: query
type: boolean
description: If you want to reference a task by its custom task ID, this value must be true.
- name: team_id
in: query
type: integer
description: Required when custom_task_ids is set to true. The Workspace ID.
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: list-list_id-task-task_id-member
path: /list/{list_id}/task/{task_id}/member
operations:
- name: gettaskmembers
method: GET
description: Get task members
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: task-bulk_time_in_status-task_ids
path: /task/bulk_time_in_status/task_ids
operations:
- name: getbulktasktimeinstatus
method: GET
description: Get bulk task time in status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: task_ids[]
in: query
type: array
description: Array of task IDs to retrieve time in status data for.
required: true
- name: task-task_id
path: /task/{task_id}
operations:
- name: gettask
method: GET
description: Get a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: custom_task_ids
in: query
type: boolean
description: If you want to reference a task by its custom task ID, this value must be true.
- name: team_id
in: query
type: integer
description: Required when custom_task_ids is set to true. The Workspace ID.
- name: include_subtasks
in: query
type: boolean
description: Include subtasks in the response.
- name: include_markdown_description
in: query
type: boolean
description: Return the task description in Markdown format.
- name: updatetask
method: PUT
description: Update a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: custom_task_ids
in: query
type: boolean
description: If you want to reference a task by its custom task ID, this value must be true.
- name: team_id
in: query
type: integer
description: Required when custom_task_ids is set to true. The Workspace ID.
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deletetask
method: DELETE
description: Delete a task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: custom_task_ids
in: query
type: boolean
description: If you want to reference a task by its custom task ID, this value must be true.
- name: team_id
in: query
type: integer
description: Required when custom_task_ids is set to true. The Workspace ID.
- name: task-task_id-tag-tag_name
path: /task/{task_id}/tag/{tag_name}
operations:
- name: addtagtotask
method: POST
description: Add tag to task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag_name
in: path
type: string
description: The name of the tag to add.
required: true
- name: removetagfromtask
method: DELETE
description: Remove tag from task
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tag_name
in: path
type: string
description: The name of the tag to remove.
required: true
- name: task-task_id-time_in_status
path: /task/{task_id}/time_in_status
operations:
- name: gettasktimeinstatus
method: GET
description: Get task time in status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: team-team_id-task
path: /team/{team_id}/task
operations:
- name: getfilteredteamtasks
method: GET
description: Get filtered team tasks
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: page
in: query
type: integer
description: Page number for pagination. Starts at 0.
- name: order_by
in: query
type: string
description: Field to order results by.
- name: reverse
in: query
type: boolean
description: Reverse the order of results.
- name: subtasks
in: query
type: boolean
description: Include subtasks in the response.
- name: statuses[]
in: query
type: array
description: Filter by task statuses.
- name: include_closed
in: query
type: boolean
description: Include closed tasks.
- name: assignees[]
in: query
type: array
description: Filter by assignee user IDs.
- name: tags[]
in: query
type: array
description: Filter by tag names.
- name: due_date_gt
in: query
type: integer
description: Filter for tasks with due date after this Unix timestamp in milliseconds.
- name: due_date_lt
in: query
type: integer
description: Filter for tasks with due date before this Unix timestamp in milliseconds.
- name: date_created_gt
in: query
type: integer
description: Filter for tasks created after this Unix timestamp in milliseconds.
- name: date_created_lt
in: query
type: integer
description: Filter for tasks created before this Unix timestamp in milliseconds.
- name: date_updated_gt
in: query
type: integer
description: Filter for tasks updated after this Unix timestamp in milliseconds.
- name: date_updated_lt
in: query
type: integer
description: Filter for tasks updated before this Unix timestamp in milliseconds.
- name: list_ids[]
in: query
type: array
description: Filter by list IDs.
- name: space_ids[]
in: query
type: array
description: Filter by space IDs.
- name: project_ids[]
in: query
type: array
description: Filter by folder (project) IDs.
authentication:
type: bearer
token: '{{env.CLICKUP_API_KEY}}'
exposes:
- type: rest
namespace: tasks-tasks-rest
port: 8080
description: REST adapter for ClickUp Tasks API — Tasks. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/list/{list-id}/task
name: list-list-id-task
description: REST surface for list-list_id-task.
operations:
- method: GET
name: gettasks
description: Get tasks in a list
call: tasks-tasks.gettasks
with:
archived: rest.archived
include_markdown_description: rest.include_markdown_description
page: rest.page
order_by: rest.order_by
reverse: rest.reverse
subtasks: rest.subtasks
statuses[]: rest.statuses[]
include_closed: rest.include_closed
assignees[]: rest.assignees[]
tags[]: rest.tags[]
due_date_gt: rest.due_date_gt
due_date_lt: rest.due_date_lt
date_created_gt: rest.date_created_gt
date_created_lt: rest.date_created_lt
date_updated_gt: rest.date_updated_gt
date_updated_lt: rest.date_updated_lt
custom_fields: rest.custom_fields
outputParameters:
- type: object
mapping: $.
- method: POST
name: createtask
description: Create a task
call: tasks-tasks.createtask
with:
custom_task_ids: rest.custom_task_ids
team_id: rest.team_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/list/{list-id}/task/{task-id}/member
name: list-list-id-task-task-id-member
description: REST surface for list-list_id-task-task_id-member.
operations:
- method: GET
name: gettaskmembers
description: Get task members
call: tasks-tasks.gettaskmembers
outputParameters:
- type: object
mapping: $.
- path: /v1/task/bulk-time-in-status/task-ids
name: task-bulk-time-in-status-task-ids
description: REST surface for task-bulk_time_in_status-task_ids.
operations:
- method: GET
name: getbulktasktimeinstatus
description: Get bulk task time in status
call: tasks-tasks.getbulktasktimeinstatus
with:
task_ids[]: rest.task_ids[]
outputParameters:
- type: object
mapping: $.
- path: /v1/task/{task-id}
name: task-task-id
description: REST surface for task-task_id.
operations:
- method: GET
name: gettask
description: Get a task
call: tasks-tasks.gettask
with:
custom_task_ids: rest.custom_task_ids
team_id: rest.team_id
include_subtasks: rest.include_subtasks
include_markdown_description: rest.include_markdown_description
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updatetask
description: Update a task
call: tasks-tasks.updatetask
with:
custom_task_ids: rest.custom_task_ids
team_id: rest.team_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletetask
description: Delete a task
call: tasks-tasks.deletetask
with:
custom_task_ids: rest.custom_task_ids
team_id: rest.team_id
outputParameters:
- type: object
mapping: $.
- path: /v1/task/{task-id}/tag/{tag-name}
name: task-task-id-tag-tag-name
description: REST surface for task-task_id-tag-tag_name.
operations:
- method: POST
name: addtagtotask
description: Add tag to task
call: tasks-tasks.addtagtotask
with:
tag_name: rest.tag_name
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: removetagfromtask
description: Remove tag from task
call: tasks-tasks.removetagfromtask
with:
tag_name: rest.tag_name
outputParameters:
- type: object
mapping: $.
- path: /v1/task/{task-id}/time-in-status
name: task-task-id-time-in-status
description: REST surface for task-task_id-time_in_status.
operations:
- method: GET
name: gettasktimeinstatus
description: Get task time in status
call: tasks-tasks.gettasktimeinstatus
outputParameters:
- type: object
mapping: $.
- path: /v1/team/{team-id}/task
name: team-team-id-task
description: REST surface for team-team_id-task.
operations:
- method: GET
name: getfilteredteamtasks
description: Get filtered team tasks
call: tasks-tasks.getfilteredteamtasks
with:
page: rest.page
order_by: rest.order_by
reverse: rest.reverse
subtasks: rest.subtasks
statuses[]: rest.statuses[]
include_closed: rest.include_closed
assignees[]: rest.assignees[]
tags[]: rest.tags[]
due_date_gt: rest.due_date_gt
due_date_lt: rest.due_date_lt
date_created_gt: rest.date_created_gt
date_created_lt: rest.date_created_lt
date_updated_gt: rest.date_updated_gt
date_updated_lt: rest.date_updated_lt
list_ids[]: rest.list_ids[]
space_ids[]: rest.space_ids[]
project_ids[]: rest.project_ids[]
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: tasks-tasks-mcp
port: 9090
transport: http
description: MCP adapter for ClickUp Tasks API — Tasks. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-tasks-list
description: Get tasks in a list
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettasks
with:
archived: tools.archived
include_markdown_description: tools.include_markdown_description
page: tools.page
order_by: tools.order_by
reverse: tools.reverse
subtasks: tools.subtasks
statuses[]: tools.statuses[]
include_closed: tools.include_closed
assignees[]: tools.assignees[]
tags[]: tools.tags[]
due_date_gt: tools.due_date_gt
due_date_lt: tools.due_date_lt
date_created_gt: tools.date_created_gt
date_created_lt: tools.date_created_lt
date_updated_gt: tools.date_updated_gt
date_updated_lt: tools.date_updated_lt
custom_fields: tools.custom_fields
outputParameters:
- type: object
mapping: $.
- name: create-task
description: Create a task
hints:
readOnly: false
destructive: false
idempotent: false
call: tasks-tasks.createtask
with:
custom_task_ids: tools.custom_task_ids
team_id: tools.team_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-task-members
description: Get task members
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettaskmembers
outputParameters:
- type: object
mapping: $.
- name: get-bulk-task-time-status
description: Get bulk task time in status
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.getbulktasktimeinstatus
with:
task_ids[]: tools.task_ids[]
outputParameters:
- type: object
mapping: $.
- name: get-task
description: Get a task
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettask
with:
custom_task_ids: tools.custom_task_ids
team_id: tools.team_id
include_subtasks: tools.include_subtasks
include_markdown_description: tools.include_markdown_description
outputParameters:
- type: object
mapping: $.
- name: update-task
description: Update a task
hints:
readOnly: false
destructive: false
idempotent: true
call: tasks-tasks.updatetask
with:
custom_task_ids: tools.custom_task_ids
team_id: tools.team_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-task
description: Delete a task
hints:
readOnly: false
destructive: true
idempotent: true
call: tasks-tasks.deletetask
with:
custom_task_ids: tools.custom_task_ids
team_id: tools.team_id
outputParameters:
- type: object
mapping: $.
- name: add-tag-task
description: Add tag to task
hints:
readOnly: false
destructive: false
idempotent: false
call: tasks-tasks.addtagtotask
with:
tag_name: tools.tag_name
outputParameters:
- type: object
mapping: $.
- name: remove-tag-task
description: Remove tag from task
hints:
readOnly: false
destructive: true
idempotent: true
call: tasks-tasks.removetagfromtask
with:
tag_name: tools.tag_name
outputParameters:
- type: object
mapping: $.
- name: get-task-time-status
description: Get task time in status
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.gettasktimeinstatus
outputParameters:
- type: object
mapping: $.
- name: get-filtered-team-tasks
description: Get filtered team tasks
hints:
readOnly: true
destructive: false
idempotent: true
call: tasks-tasks.getfilteredteamtasks
with:
page: tools.page
order_by: tools.order_by
reverse: tools.reverse
subtasks: tools.subtasks
statuses[]: tools.statuses[]
include_closed: tools.include_closed
assignees[]: tools.assignees[]
tags[]: tools.tags[]
due_date_gt: tools.due_date_gt
due_date_lt: tools.due_date_lt
date_created_gt: tools.date_created_gt
date_created_lt: tools.date_created_lt
date_updated_gt: tools.date_updated_gt
date_updated_lt: tools.date_updated_lt
list_ids[]: tools.list_ids[]
space_ids[]: tools.space_ids[]
project_ids[]: tools.project_ids[]
outputParameters:
- type: object
mapping: $.