clickup Tasks API

Operations for creating, retrieving, updating, and deleting tasks within ClickUp lists and workspaces.

Operations 24

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v2/list/{list_id}/task List the tasks in a List (v2) · Get Tasks #
Ask an LLM
“How do I pull every task in one ClickUp List through the v2 API, 100 per page?”
“Can the v2 List task listing filter by watchers or by the date a task was done?”
Tell an agent
Using the v2 endpoint, list the tasks in List {list_id}.
Via v2, show tasks in List {list_id} watched by {watchers}, including tasks in multiple lists.
POST /v2/list/{list_id}/task Create a task in a List (v2) · Create Task #
Ask an LLM
“What do I need to send to add a new task to a List using the v2 endpoint?”
“Can I create a task with a custom task type and story points in one v2 call?”
Tell an agent
Through the v2 API, create a task named {name} in List {list_id}.
Via v2, add task {name} to List {list_id} worth {points} sprint points.
GET /v2/task/{task_id} Get a task's details (v2) · Get Task #
Ask an LLM
“How do I look up a single task's details and attachments with the v2 endpoint?”
“Can the v2 task lookup return the task's Custom Field values and subtasks?”
Tell an agent
Fetch task {task_id} using the v2 endpoint.
Via v2, get task {task_id} with its subtasks and markdown description.
PUT /v2/task/{task_id} Update a task's fields (v2) · Update Task #
Ask an LLM
“How can I change a task's status or priority through the v2 update endpoint?”
“Can I add watchers or group assignees when updating a task in v2?”
Tell an agent
Via v2, set the status of task {task_id} to {status}.
Using the v2 endpoint, update watchers on task {task_id} to {watchers}.
DELETE /v2/task/{task_id} Delete a task (v2) · Delete Task #
Ask an LLM
“How do I remove a task from my Workspace with the v2 endpoint?”
“Can I delete a task by its custom task ID through v2?”
Tell an agent destructive · confirm first
Delete task {task_id} using the v2 endpoint.
Via v2, delete the task with custom ID {task_id} in Workspace {team_id}.
GET /v2/team/{team_Id}/task Filter tasks across a Workspace (v2) · Get Filtered Team Tasks #
Ask an LLM
“How do I find tasks across my whole Workspace that match certain filters using v2?”
“Can the v2 Workspace task filter narrow results to subtasks of one parent task?”
Tell an agent
Via v2, list tasks across Workspace {team_Id} assigned to {assignees}.
Using v2, find Workspace {team_Id} tasks under parent task {parent}.
POST /v2/task/{task_id}/merge Merge several tasks into one target task · Merge Tasks #
Ask an LLM
“Can I merge duplicate tasks into a single task?”
“What happens to source tasks when they are merged into a target task?”
Tell an agent destructive · confirm first
Merge tasks {source_task_ids} into task {task_id}.
Combine the duplicate tasks {source_task_ids} into target task {task_id}.
GET /v2/task/{task_id}/time_in_status See how long a task spent in each status (v2) · Get Task's Time in Status #
Ask an LLM
“How long has one task been sitting in each status, using the v2 endpoint?”
“Which ClickApp must be on before I can read a task's time in status?”
Tell an agent
Via v2, show time in status for task {task_id}.
Using v2, get the per-status durations for custom task ID {task_id} in Workspace {team_id}.
GET /v2/task/bulk_time_in_status/task_ids Get time in status for many tasks (v2) · Get Bulk Tasks' Time in Status #
Ask an LLM
“Can I get time-in-status numbers for several tasks in one v2 request?”
“What's the v2 way to compare how long a batch of tasks stayed in each status?”
Tell an agent
Via v2, get time in status for tasks {task_ids}.
Using the v2 bulk endpoint, compare status durations for custom task IDs {task_ids} in Workspace {team_id}.
POST /v2/list/{list_id}/taskTemplate/{template_id} Create a task from a task template · Create Task From Template #
Ask an LLM
“How do I spin up a new task from one of my Workspace task templates?”
“Can I use a publicly shared template to create a task?”
Tell an agent
Create task {name} in List {list_id} from template {template_id}.
Use task template {template_id} to add a task called {name} to List {list_id}.
PUT /api/v3/workspaces/{workspace_id}/tasks/{task_id}/home_list/{list_id} Move a task to a new home List · Move a task to a new List #
Ask an LLM
“How do I move a task to a different List?”
“Can I map old statuses to new ones when moving a task between Lists?”
Tell an agent
Move task {task_id} to List {list_id} in Workspace {workspace_id}.
Change the home List of task {task_id} to {list_id} in Workspace {workspace_id}, using status mappings {status_mappings}.
PATCH /api/v3/workspaces/{workspace_id}/tasks/{task_id}/time_estimates_by_user Update time estimates for specific assignees · Update task time estimates by user #
Ask an LLM
“Can I change the time estimate for just one assignee on a task without touching the others?”
“Is there a way to set a time estimate for unassigned work on a task?”
Tell an agent
Update the time estimate for certain assignees on task {task_id} in Workspace {workspace_id}.
Set an unassigned-work time estimate on task {task_id} in Workspace {workspace_id}, leaving other assignees as they are.
PUT /api/v3/workspaces/{workspace_id}/tasks/{task_id}/time_estimates_by_user Replace all per-user time estimates on a task · Replace task time estimates #
Ask an LLM
“How do I overwrite every per-assignee time estimate on a task at once?”
“Are existing time estimates removed if I leave them out of the replacement?”
Tell an agent destructive · confirm first
Replace all time estimates on task {task_id} in Workspace {workspace_id} with a new set.
Wipe and reset the per-user time estimates for task {task_id} in Workspace {workspace_id}.
GET /list/{list_id}/task List tasks in a List (unversioned path) · Get tasks in a list #
Ask an LLM
“What's the unversioned endpoint for listing the tasks in a List?”
“Can I order a List's tasks by due date on the non-v2 task listing path?”
Tell an agent
Using the unversioned path, list tasks in List {list_id}.
On the non-v2 endpoint, get tasks in List {list_id} ordered by {order_by}, including closed ones.
POST /list/{list_id}/task Create a task in a List (unversioned path) · Create a task #
Ask an LLM
“Which non-v2 endpoint adds a task to a List with a markdown description?”
“Can the unversioned create-task path accept a custom task ID lookup?”
Tell an agent
Via the unversioned path, create task {name} in List {list_id}.
On the non-v2 endpoint, add task {name} to List {list_id} with markdown description {markdown_description}.
GET /task/{task_id} Get a task by ID (unversioned path) · Get a task #
Ask an LLM
“Is there a non-v2 path for fetching one task with its assignees and tags?”
“Can I read a task's subtasks from the unversioned task endpoint?”
Tell an agent
Using the unversioned path, fetch task {task_id}.
On the non-v2 endpoint, get task {task_id} including subtasks.
PUT /task/{task_id} Update a task (unversioned path) · Update a task #
Ask an LLM
“Which non-v2 endpoint updates a task while leaving omitted fields unchanged?”
“Can I archive a task through the unversioned update path?”
Tell an agent
Via the unversioned path, rename task {task_id} to {name}.
On the non-v2 endpoint, set the due date of task {task_id} to {due_date}.
DELETE /task/{task_id} Permanently delete a task (unversioned path) · Delete a task #
Ask an LLM
“Is deleting a task on the non-v2 endpoint permanent?”
“What's the unversioned path for removing a task by ID?”
Tell an agent destructive · confirm first
Permanently delete task {task_id} via the unversioned path.
On the non-v2 endpoint, remove task {task_id} for good.
GET /team/{team_id}/task Search tasks across a Workspace (unversioned path) · Get filtered team tasks #
Ask an LLM
“Which non-v2 endpoint searches tasks across every Space and Folder in a Workspace?”
“Can the unversioned Workspace task search filter by tags and statuses together?”
Tell an agent
Using the unversioned path, search Workspace {team_id} for tasks tagged {tags}.
On the non-v2 endpoint, find tasks in Workspace {team_id} with status {statuses} in Spaces {space_ids}.
GET /task/{task_id}/time_in_status Get a task's time in status (unversioned path) · Get task time in status #
Ask an LLM
“Is there a non-v2 path showing every status a task has been in and for how long?”
“Can I read one task's status history durations from the unversioned endpoint?”
Tell an agent
Using the unversioned path, get time in status for task {task_id}.
On the non-v2 endpoint, list how long task {task_id} sat in each status.
GET /task/bulk_time_in_status/task_ids Get bulk time in status (unversioned path) · Get bulk task time in status #
Ask an LLM
“Which non-v2 endpoint returns time in status for multiple tasks at once?”
“Can I pass an array of task IDs to the unversioned bulk time-in-status path?”
Tell an agent
Using the unversioned bulk path, get time in status for tasks {task_ids}.
On the non-v2 endpoint, pull status durations for task IDs {task_ids} in one call.
GET /list/{list_id}/task/{task_id}/member List a task's assignees and watchers in a List · Get task members #
Ask an LLM
“Who are the assignees and watchers on a task inside a specific List?”
“Can I get a task's members by giving both its List and task ID?”
Tell an agent
List the assignees and watchers of task {task_id} in List {list_id}.
Show who is on task {task_id} within List {list_id}.
POST /task/{task_id}/tag/{tag_name} Tag a task, creating the tag if needed · Add tag to task #
Ask an LLM
“Does adding a tag to a task on the unversioned path create the tag in the Space if it's new?”
“What's the non-v2 way to tag a task?”
Tell an agent
Via the unversioned path, tag task {task_id} with {tag_name}, creating the tag if it doesn't exist.
On the non-v2 endpoint, add tag {tag_name} to task {task_id}.
DELETE /task/{task_id}/tag/{tag_name} Remove a tag from a task (unversioned path) · Remove tag from task #
Ask an LLM
“What's the non-v2 endpoint for untagging a task?”
“Can I strip one tag off a task through the unversioned path?”
Tell an agent destructive · confirm first
Via the unversioned path, remove tag {tag_name} from task {task_id}.
On the non-v2 endpoint, untag {tag_name} from task {task_id}.

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clickup-tasks-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

clickup-tasks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Clickup Tasks API
  version: '1.0'
  description: 'Operations tagged Tasks across 3 of this provider''s published API definitions: clickup-api-v2-reference-openapi.json, clickup-public-api-v3-openapi.json, clickup-tasks-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.clickup.com/api
  description: ClickUp
  variables: {}
- url: https://api.clickup.com/
  description: ClickUp
- url: https://api.clickup.com/api/v2
  description: ClickUp API v2 Production Server
tags:


# --- truncated at 32 KB (235 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clickup/refs/heads/main/openapi/clickup-tasks-api-openapi.yml