ClickUp Tasks API

The ClickUp Tasks API allows developers to create, read, update, and delete tasks within ClickUp workspaces. Tasks are the core unit of work in ClickUp and can include custom fields, assignees, due dates, tags, priorities, and attachments. The API supports filtering tasks by list, space, or project, and enables bulk operations for managing large numbers of tasks programmatically.

OpenAPI Specification

clickup-tasks-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ClickUp Tasks API
  description: >-
    The ClickUp Tasks API allows developers to create, read, update, and
    delete tasks within ClickUp workspaces. Tasks are the core unit of work
    in ClickUp and can include custom fields, assignees, due dates, tags,
    priorities, and attachments. The API supports filtering tasks by list,
    space, or project, and enables bulk operations for managing large
    numbers of tasks programmatically.
  version: '2.0'
  contact:
    name: ClickUp Support
    url: https://help.clickup.com
  termsOfService: https://clickup.com/terms
externalDocs:
  description: ClickUp Tasks API Documentation
  url: https://developer.clickup.com/docs/tasks
servers:
  - url: https://api.clickup.com/api/v2
    description: ClickUp API v2 Production Server
tags:
  - name: Tasks
    description: >-
      Operations for creating, retrieving, updating, and deleting tasks
      within ClickUp lists and workspaces.
security:
  - bearerAuth: []
paths:
  /list/{list_id}/task:
    get:
      operationId: getTasks
      summary: Get tasks in a list
      description: >-
        Retrieves all tasks within a specified list. Supports filtering,
        pagination, and inclusion of subtasks and closed tasks. Results
        can be ordered by various fields including due date, date created,
        and date updated.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/listId'
        - name: archived
          in: query
          description: >-
            Include archived tasks in the response.
          schema:
            type: boolean
            default: false
        - name: include_markdown_description
          in: query
          description: >-
            Return task descriptions in Markdown format.
          schema:
            type: boolean
            default: false
        - name: page
          in: query
          description: >-
            Page number for pagination. Starts at 0.
          schema:
            type: integer
            minimum: 0
        - name: order_by
          in: query
          description: >-
            Field to order results by.
          schema:
            type: string
            enum:
              - id
              - created
              - updated
              - due_date
        - name: reverse
          in: query
          description: >-
            Reverse the order of results.
          schema:
            type: boolean
        - name: subtasks
          in: query
          description: >-
            Include subtasks in the response.
          schema:
            type: boolean
        - name: statuses[]
          in: query
          description: >-
            Filter by task status.
          schema:
            type: array
            items:
              type: string
        - name: include_closed
          in: query
          description: >-
            Include closed tasks in the response.
          schema:
            type: boolean
            default: false
        - name: assignees[]
          in: query
          description: >-
            Filter by assignee user IDs.
          schema:
            type: array
            items:
              type: integer
        - name: tags[]
          in: query
          description: >-
            Filter by tag names.
          schema:
            type: array
            items:
              type: string
        - name: due_date_gt
          in: query
          description: >-
            Filter for tasks with due date greater than this Unix timestamp
            in milliseconds.
          schema:
            type: integer
            format: int64
        - name: due_date_lt
          in: query
          description: >-
            Filter for tasks with due date less than this Unix timestamp
            in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_created_gt
          in: query
          description: >-
            Filter for tasks created after this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_created_lt
          in: query
          description: >-
            Filter for tasks created before this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_updated_gt
          in: query
          description: >-
            Filter for tasks updated after this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_updated_lt
          in: query
          description: >-
            Filter for tasks updated before this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: custom_fields
          in: query
          description: >-
            Filter by custom field values. Provided as a JSON array of objects.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved tasks
          content:
            application/json:
              schema:
                type: object
                properties:
                  tasks:
                    type: array
                    items:
                      $ref: '#/components/schemas/Task'
        '401':
          description: Unauthorized
        '404':
          description: List not found
    post:
      operationId: createTask
      summary: Create a task
      description: >-
        Creates a new task within a specified list. The task can include
        a name, description, assignees, tags, priority, due date, start
        date, time estimate, custom fields, and other attributes.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/listId'
        - name: custom_task_ids
          in: query
          description: >-
            If you want to reference a task by its custom task ID,
            this value must be true.
          schema:
            type: boolean
        - name: team_id
          in: query
          description: >-
            Required when custom_task_ids is set to true. The Workspace ID.
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskRequest'
      responses:
        '200':
          description: Task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: List not found
  /task/{task_id}:
    get:
      operationId: getTask
      summary: Get a task
      description: >-
        Retrieves a single task by its ID, including all task details
        such as status, assignees, tags, custom fields, and subtasks.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
        - name: custom_task_ids
          in: query
          description: >-
            If you want to reference a task by its custom task ID,
            this value must be true.
          schema:
            type: boolean
        - name: team_id
          in: query
          description: >-
            Required when custom_task_ids is set to true. The Workspace ID.
          schema:
            type: integer
        - name: include_subtasks
          in: query
          description: >-
            Include subtasks in the response.
          schema:
            type: boolean
        - name: include_markdown_description
          in: query
          description: >-
            Return the task description in Markdown format.
          schema:
            type: boolean
      responses:
        '200':
          description: Successfully retrieved task
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '401':
          description: Unauthorized
        '404':
          description: Task not found
    put:
      operationId: updateTask
      summary: Update a task
      description: >-
        Updates an existing task. Any fields included in the request body
        will be updated. Fields not included will remain unchanged.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
        - name: custom_task_ids
          in: query
          description: >-
            If you want to reference a task by its custom task ID,
            this value must be true.
          schema:
            type: boolean
        - name: team_id
          in: query
          description: >-
            Required when custom_task_ids is set to true. The Workspace ID.
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskRequest'
      responses:
        '200':
          description: Task updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Task not found
    delete:
      operationId: deleteTask
      summary: Delete a task
      description: >-
        Permanently deletes a task by its ID. This action cannot be undone.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
        - name: custom_task_ids
          in: query
          description: >-
            If you want to reference a task by its custom task ID,
            this value must be true.
          schema:
            type: boolean
        - name: team_id
          in: query
          description: >-
            Required when custom_task_ids is set to true. The Workspace ID.
          schema:
            type: integer
      responses:
        '200':
          description: Task deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Task not found
  /team/{team_id}/task:
    get:
      operationId: getFilteredTeamTasks
      summary: Get filtered team tasks
      description: >-
        Retrieves tasks across an entire Workspace (team), with support for
        filtering by assignees, tags, statuses, due dates, and more. This
        endpoint searches tasks across all lists, folders, and spaces in
        the Workspace.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/teamId'
        - name: page
          in: query
          description: >-
            Page number for pagination. Starts at 0.
          schema:
            type: integer
            minimum: 0
        - name: order_by
          in: query
          description: >-
            Field to order results by.
          schema:
            type: string
            enum:
              - id
              - created
              - updated
              - due_date
        - name: reverse
          in: query
          description: >-
            Reverse the order of results.
          schema:
            type: boolean
        - name: subtasks
          in: query
          description: >-
            Include subtasks in the response.
          schema:
            type: boolean
        - name: statuses[]
          in: query
          description: >-
            Filter by task statuses.
          schema:
            type: array
            items:
              type: string
        - name: include_closed
          in: query
          description: >-
            Include closed tasks.
          schema:
            type: boolean
        - name: assignees[]
          in: query
          description: >-
            Filter by assignee user IDs.
          schema:
            type: array
            items:
              type: integer
        - name: tags[]
          in: query
          description: >-
            Filter by tag names.
          schema:
            type: array
            items:
              type: string
        - name: due_date_gt
          in: query
          description: >-
            Filter for tasks with due date after this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: due_date_lt
          in: query
          description: >-
            Filter for tasks with due date before this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_created_gt
          in: query
          description: >-
            Filter for tasks created after this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_created_lt
          in: query
          description: >-
            Filter for tasks created before this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_updated_gt
          in: query
          description: >-
            Filter for tasks updated after this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: date_updated_lt
          in: query
          description: >-
            Filter for tasks updated before this Unix timestamp in milliseconds.
          schema:
            type: integer
            format: int64
        - name: list_ids[]
          in: query
          description: >-
            Filter by list IDs.
          schema:
            type: array
            items:
              type: integer
        - name: space_ids[]
          in: query
          description: >-
            Filter by space IDs.
          schema:
            type: array
            items:
              type: integer
        - name: project_ids[]
          in: query
          description: >-
            Filter by folder (project) IDs.
          schema:
            type: array
            items:
              type: integer
      responses:
        '200':
          description: Successfully retrieved filtered tasks
          content:
            application/json:
              schema:
                type: object
                properties:
                  tasks:
                    type: array
                    items:
                      $ref: '#/components/schemas/Task'
        '401':
          description: Unauthorized
  /task/{task_id}/time_in_status:
    get:
      operationId: getTaskTimeInStatus
      summary: Get task time in status
      description: >-
        Retrieves how long a task has been in each status. Returns
        time information for every status the task has been in.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
      responses:
        '200':
          description: Successfully retrieved time in status data
          content:
            application/json:
              schema:
                type: object
                properties:
                  current_status:
                    type: object
                    description: >-
                      Current status information with time data.
                  status_history:
                    type: array
                    items:
                      type: object
                    description: >-
                      Array of status history entries with time data.
        '401':
          description: Unauthorized
        '404':
          description: Task not found
  /task/bulk_time_in_status/task_ids:
    get:
      operationId: getBulkTaskTimeInStatus
      summary: Get bulk task time in status
      description: >-
        Retrieves time in status data for multiple tasks at once.
        Accepts an array of task IDs as query parameters.
      tags:
        - Tasks
      parameters:
        - name: task_ids[]
          in: query
          required: true
          description: >-
            Array of task IDs to retrieve time in status data for.
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully retrieved bulk time in status data
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
        '401':
          description: Unauthorized
  /list/{list_id}/task/{task_id}/member:
    get:
      operationId: getTaskMembers
      summary: Get task members
      description: >-
        Retrieves the members (assignees and watchers) of a specific task.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/listId'
        - $ref: '#/components/parameters/taskId'
      responses:
        '200':
          description: Successfully retrieved task members
          content:
            application/json:
              schema:
                type: object
                properties:
                  members:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
        '401':
          description: Unauthorized
        '404':
          description: Task or list not found
  /task/{task_id}/tag/{tag_name}:
    post:
      operationId: addTagToTask
      summary: Add tag to task
      description: >-
        Adds a tag to a task. If the tag does not exist in the Space,
        it will be created.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
        - name: tag_name
          in: path
          required: true
          description: >-
            The name of the tag to add.
          schema:
            type: string
      responses:
        '200':
          description: Tag added successfully
        '401':
          description: Unauthorized
        '404':
          description: Task not found
    delete:
      operationId: removeTagFromTask
      summary: Remove tag from task
      description: >-
        Removes a tag from a task.
      tags:
        - Tasks
      parameters:
        - $ref: '#/components/parameters/taskId'
        - name: tag_name
          in: path
          required: true
          description: >-
            The name of the tag to remove.
          schema:
            type: string
      responses:
        '200':
          description: Tag removed successfully
        '401':
          description: Unauthorized
        '404':
          description: Task not found
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ClickUp personal API token or OAuth access token. Include in
        the Authorization header as Bearer {token}.
  parameters:
    taskId:
      name: task_id
      in: path
      required: true
      description: >-
        The unique identifier of the task.
      schema:
        type: string
    listId:
      name: list_id
      in: path
      required: true
      description: >-
        The unique identifier of the list.
      schema:
        type: integer
    teamId:
      name: team_id
      in: path
      required: true
      description: >-
        The unique identifier of the Workspace (team).
      schema:
        type: integer
  schemas:
    Task:
      type: object
      description: >-
        A task object representing a unit of work in ClickUp.
      properties:
        id:
          type: string
          description: >-
            The unique identifier of the task.
        custom_id:
          type: string
          nullable: true
          description: >-
            The custom task ID if enabled for the Workspace.
        name:
          type: string
          description: >-
            The name of the task.
        text_content:
          type: string
          nullable: true
          description: >-
            The plain text content of the task description.
        description:
          type: string
          nullable: true
          description: >-
            The task description in rich text format.
        markdown_description:
          type: string
          nullable: true
          description: >-
            The task description in Markdown format.
        status:
          $ref: '#/components/schemas/Status'
        orderindex:
          type: string
          description: >-
            The order index of the task within its list.
        date_created:
          type: string
          description: >-
            Unix timestamp in milliseconds when the task was created.
        date_updated:
          type: string
          description: >-
            Unix timestamp in milliseconds when the task was last updated.
        date_closed:
          type: string
          nullable: true
          description: >-
            Unix timestamp in milliseconds when the task was closed.
        date_done:
          type: string
          nullable: true
          description: >-
            Unix timestamp in milliseconds when the task was marked done.
        archived:
          type: boolean
          description: >-
            Whether the task is archived.
        creator:
          $ref: '#/components/schemas/User'
        assignees:
          type: array
          items:
            $ref: '#/components/schemas/User'
          description: >-
            The users assigned to the task.
        watchers:
          type: array
          items:
            $ref: '#/components/schemas/User'
          description: >-
            The users watching the task.
        checklists:
          type: array
          items:
            type: object
          description: >-
            Checklists attached to the task.
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          description: >-
            Tags applied to the task.
        parent:
          type: string
          nullable: true
          description: >-
            The ID of the parent task if this is a subtask.
        priority:
          $ref: '#/components/schemas/Priority'
        due_date:
          type: string
          nullable: true
          description: >-
            Unix timestamp in milliseconds for the due date.
        start_date:
          type: string
          nullable: true
          description: >-
            Unix timestamp in milliseconds for the start date.
        points:
          type: number
          nullable: true
          description: >-
            Sprint points assigned to the task.
        time_estimate:
          type: integer
          nullable: true
          description: >-
            Time estimate in milliseconds.
        time_spent:
          type: integer
          description: >-
            Total time tracked on the task in milliseconds.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
          description: >-
            Custom field values on the task.
        dependencies:
          type: array
          items:
            type: object
          description: >-
            Task dependencies.
        linked_tasks:
          type: array
          items:
            type: object
          description: >-
            Tasks linked to this task.
        team_id:
          type: string
          description: >-
            The Workspace ID the task belongs to.
        url:
          type: string
          format: uri
          description: >-
            The URL to the task in the ClickUp web application.
        list:
          type: object
          properties:
            id:
              type: string
              description: >-
                The list ID.
            name:
              type: string
              description: >-
                The list name.
            access:
              type: boolean
              description: >-
                Whether the user has access to the list.
          description: >-
            The list the task belongs to.
        project:
          type: object
          properties:
            id:
              type: string
              description: >-
                The folder (project) ID.
            name:
              type: string
              description: >-
                The folder name.
            access:
              type: boolean
              description: >-
                Whether the user has access to the folder.
          description: >-
            The folder (project) the task belongs to.
        folder:
          type: object
          properties:
            id:
              type: string
              description: >-
                The folder ID.
            name:
              type: string
              description: >-
                The folder name.
            access:
              type: boolean
              description: >-
                Whether the user has access to the folder.
          description: >-
            The folder the task belongs to.
        space:
          type: object
          properties:
            id:
              type: string
              description: >-
                The space ID.
          description: >-
            The space the task belongs to.
    CreateTaskRequest:
      type: object
      required:
        - name
      description: >-
        Request body for creating a new task.
      properties:
        name:
          type: string
          description: >-
            The name of the task.
        description:
          type: string
          description: >-
            The task description in rich text format.
        markdown_description:
          type: string
          description: >-
            The task description in Markdown format.
        assignees:
          type: array
          items:
            type: integer
          description: >-
            Array of user IDs to assign to the task.
        tags:
          type: array
          items:
            type: string
          description: >-
            Array of tag names to apply to the task.
        status:
          type: string
          description: >-
            The status of the task.
        priority:
          type: integer
          minimum: 1
          maximum: 4
          nullable: true
          description: >-
            Task priority. 1 is Urgent, 2 is High, 3 is Normal, 4 is Low.
        due_date:
          type: integer
          format: int64
          description: >-
            Due date as Unix timestamp in milliseconds.
        due_date_time:
          type: boolean
          description: >-
            Whether the due date includes a time component.
        time_estimate:
          type: integer
          description: >-
            Time estimate in milliseconds.
        start_date:
          type: integer
          format: int64
          description: >-
            Start date as Unix timestamp in milliseconds.
        start_date_time:
          type: boolean
          description: >-
            Whether the start date includes a time component.
        notify_all:
          type: boolean
          description: >-
            Notify all assignees and watchers of task creation.
        parent:
          type: string
          nullable: true
          description: >-
            The task ID of the parent task to create this as a subtask.
        links_to:
          type: string
          nullable: true
          description: >-
            The task ID to link this task to.
        check_required_custom_fields:
          type: boolean
          description: >-
            Whether to validate required custom fields.
        custom_fields:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The custom field ID.
              value:
                description: >-
                  The value to set for the custom field.
          description: >-
            Custom field values to set on the task.
    UpdateTaskRequest:
      type: object
      description: >-
        Request body for updating an existing task. All fields are optional.
      properties:
        name:
          type: string
          description: >-
            The updated name of the task.
        description:
          type: string
          description: >-
            The updated description in rich text format.
        markdown_description:
          type: string
          description: >-
            The updated description in Markdown format.
        assignees:
          type: object
          properties:
            add:
              type: array
              items:
                type: integer
              description: >-
                Array of user IDs to add as assignees.
            rem:
              type: array
              items:
                type: integer
              description: >-
                Array of user IDs to remove from assignees.
          description: >-
            Assignee modifications.
        status:
          type: string
          description: >-
            The updated status of the task.
        priority:
          type: integer
          minimum: 1
          maximum: 4
          nullable: true
          description: >-
            Updated task priority. 1 is Urgent, 2 is High, 3 is Normal, 4 is Low.
        due_date:
          type: integer
          format: int64
          description: >-
            Updated due date as Unix timestamp in milliseconds.
        due_date_time:
          type: boolean
          description: >-
            Whether the due date includes a time component.
        time_estimate:
          type: integer
          description: >-
            Updated time estimate in milliseconds.
        start_date:
          type: integer
          format: int64
          description: >-
            Updated start date as Unix timestamp in milliseconds.
        start_date_time:
          type: boolean
          description: >-
            Whether the start date includes a time component.
        parent:
          type: string
          nullable: true
          description: >-
            The task ID of the parent task. Set to null to remove parent.
        archived:
          type: boolean
          description: >-
            Whether to archive or unarchive the task.
    Status:
      type: object
      description: >-
        A task status object.
      properties:
        id:
          type: string
          description: >-
            The status ID.
        status:
          type: string
          description: >-
            The status name.
        color:
          type: string
          description: >-
            The hex color code of the status.
        orderindex:
          type: integer
          description: >-
            The order index of the status.
        type:
          type: string
          enum:
            - open
            - custom
            - closed
            - done
          description: >-
            The status type.
    User:
      type: object
      description: >-
        A ClickUp user object.
      properties:
        id:
          type: integer
          description: >-
            The unique identifier of the user.
        username:
          type: string
          description: >-
            The username of the user.
        email:
          type: string
          format: email
          description: >-
            The email address of the user.
        color:
          type: string
          description: >-
            The hex color code associated with the user.
        profilePicture:
          type: string
          format: uri
          nullable: true
          description: >-
            URL of the user's profile picture.
        initials:
          type: string
          description: >-
            The initials of the user.
    Tag:
      type: object
      description: >-
        A task tag.
      properties:
        name:
          type: string
          description: >-
            The name of the tag.
        tag_fg:
          type: string
          description: >-
            Foreground color of the tag.
        tag_bg:
          type: string
          description: >-
            Background color of the tag.
        creator:
          type: integer
          description: >-
      

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