KosmoKrator

productivity

ClickUp Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the ClickUp KosmoKrator integration.

Lua Namespace

Agents call this integration through app.integrations.clickup.*. Use lua_read_doc("integrations.clickup") inside KosmoKrator to discover the same reference at runtime.

Call Lua from the Headless CLI

Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic ClickUp workflow without starting an interactive agent session.

Inline Lua call
kosmo integrations:lua --eval 'dump(app.integrations.clickup.get_hierarchy({workspace_id = "example_workspace_id", space_ids = "example_space_ids"}))' --json
Read Lua docs headlessly
kosmo integrations:lua --eval 'print(docs.read("clickup"))' --json
kosmo integrations:lua --eval 'print(docs.read("clickup.get_hierarchy"))' --json

Workflow file

Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.

workflow.lua
local clickup = app.integrations.clickup
local result = clickup.get_hierarchy({workspace_id = "example_workspace_id", space_ids = "example_space_ids"})

dump(result)
Run the workflow
kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json
Namespace note. integrations:lua exposes app.integrations.clickup, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.clickup.default.* or app.integrations.clickup.work.* when you configured named credential accounts.

MCP-only Lua

If the script only needs configured MCP servers and does not need ClickUp, use the narrower mcp:lua command.

MCP Lua command
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

ClickUp — Lua API Reference

Priority Mapping

ValueLevel
1Urgent
2High
3Normal
4Low
-- Use numeric values for priority
app.integrations.clickup.create_task({ list_id = "901234", name = "Fix bug", priority = 1 })   -- urgent
app.integrations.clickup.update_task({ task_id = "abc123", priority = 3 })                      -- normal

Date Handling

All dates use ISO 8601 format. The API converts them to Unix milliseconds internally.

-- Date only
app.integrations.clickup.create_task({ list_id = "901234", name = "Sprint review", due_date = "2026-04-01" })

-- Date with time
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Standup",
  start_date = "2026-04-01T09:00:00",
  due_date = "2026-04-01T09:30:00"
})

-- Clear a date by passing empty string
app.integrations.clickup.update_task({ task_id = "abc123", due_date = "" })

-- Filter tasks by due date range
app.integrations.clickup.get_tasks({
  list_id = "901234",
  due_date_gt = "2026-03-01",
  due_date_lt = "2026-03-31"
})

Member Resolution

Always resolve names to numeric user IDs before assigning tasks.

-- Find a single member by name or email
local result = app.integrations.clickup.find_member({ query = "Sarah" })
-- Returns: { matches = { { id = "12345", username = "sarah", email = "sarah@co.com" } } }

-- Resolve multiple names at once
local result = app.integrations.clickup.resolve_members({ query = "Sarah, John, alex@co.com" })
-- Returns: { results = { { query = "Sarah", id = "12345", resolved = true }, ... } }

-- Use the IDs for assignment (comma-separated string)
app.integrations.clickup.create_task({ list_id = "901234", name = "Review PR", assignees = "12345,67890" })

Common Workflows

Create a task with assignees and tags

-- Step 1: Find the list ID
local hierarchy = app.integrations.clickup.get_hierarchy({})
-- Traverse: hierarchy.spaces[].folders[].lists[] or hierarchy.spaces[].lists[]

-- Step 2: Resolve member IDs
local members = app.integrations.clickup.resolve_members({ query = "Sarah, John" })
local ids = {}
for _, m in ipairs(members.results) do
  if m.resolved then table.insert(ids, m.id) end
end

-- Step 3: Create the task
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Implement auth flow",
  description = "Add OAuth2 login support",
  status = "open",
  priority = 2,
  assignees = table.concat(ids, ","),
  tags = "backend,auth",
  due_date = "2026-04-15"
})

Search for tasks, then update them

-- Search across workspace
local results = app.integrations.clickup.search_tasks({
  query = "auth",
  statuses = "open,in progress",
  include_subtasks = true
})

-- Update each matching task
for _, task in ipairs(results.tasks) do
  app.integrations.clickup.update_task({
    task_id = task.id,
    priority = 1,
    status = "in progress"
  })
end

-- Custom task IDs (e.g., "DEV-42") work too
app.integrations.clickup.update_task({ task_id = "DEV-42", status = "closed" })

Time tracking (start, stop, log)

-- Start a timer on a task
app.integrations.clickup.start_timer({
  task_id = "abc123",
  description = "Working on auth flow",
  billable = true
})

-- Check what's currently running
local current = app.integrations.clickup.current_time_entry({})
-- Returns task name, start time, description

-- Stop the running timer
app.integrations.clickup.stop_timer({})

-- Or log time manually (duration in milliseconds)
app.integrations.clickup.log_time({
  task_id = "abc123",
  start = "2026-03-29T09:00:00",
  duration = "3600000",           -- 1 hour = 3,600,000 ms
  description = "Code review",
  billable = true
})

-- View all time entries for a task
local entries = app.integrations.clickup.list_time_entries({ task_id = "abc123" })
-- entries.entries[].duration is already formatted ("60.0 min")
-- Get full workspace tree
local tree = app.integrations.clickup.get_hierarchy({})

-- Filter to specific space(s)
local tree = app.integrations.clickup.get_hierarchy({ space_ids = "12345,67890" })

-- Get folder details including its lists
local folder = app.integrations.clickup.get_folder({ folder_id = "456" })
-- folder.lists = { { id = "789", name = "Backlog" }, ... }

-- Get list details
local list = app.integrations.clickup.get_list({ list_id = "789" })
-- list.task_count, list.space, list.folder

-- Get all tasks in a specific list
local tasks = app.integrations.clickup.get_tasks({
  list_id = "789",
  statuses = "open,in progress",
  include_closed = false
})

Create a subtask

app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Write unit tests",
  parent_task_id = "abc123",
  priority = 3
})

Tags

-- Add a tag (must already exist in the space)
app.integrations.clickup.add_tag({ task_id = "abc123", tag_name = "urgent" })

-- Remove a tag
app.integrations.clickup.remove_tag({ task_id = "abc123", tag_name = "urgent" })

-- Set tags during task creation
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Deploy",
  tags = "devops,release"
})

Attach a file

ClickUp task attachments require multipart upload. Use a readable local path; public URL passthrough is not supported by ClickUp’s v2 task attachment endpoint.

app.integrations.clickup.attach_file({
  task_id = "abc123",
  file_path = "/tmp/report.pdf",
  filename = "Q1-report.pdf"
})

Tips

  • Time durations are in milliseconds: 1 min = 60000, 1 hour = 3600000, 1 day = 86400000
  • Tags must pre-exist in the ClickUp space before you can add them to tasks
  • workspace_id is pulled from config automatically for search, time tracking, and member operations — you rarely need to pass it explicitly
  • Custom task IDs like "DEV-42" work anywhere a task_id is accepted
  • Pagination: search_tasks and get_tasks support a page parameter (starts at 0)
  • Assignees use comma-separated numeric user IDs, not names — always resolve first
  • Statuses are list-specific strings (e.g., "open", "in progress", "closed") — check the list for valid values
  • time_estimate on update_task is in minutes (converted to ms internally)
  • The service layer tracks additional official ClickUp v2/v3 endpoints such as custom fields, checklists, comments, spaces, webhooks, docs, and chat. Only the tools listed in the generated namespace are first-class Lua tools.

Multi-Account Usage

If you have multiple clickup accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations.clickup.function_name({...})

-- Explicit default (portable across setups)
app.integrations.clickup.default.function_name({...})

-- Named accounts
app.integrations.clickup.work.function_name({...})
app.integrations.clickup.personal.function_name({...})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# ClickUp — Lua API Reference

## Priority Mapping

| Value | Level   |
|-------|---------|
| 1     | Urgent  |
| 2     | High    |
| 3     | Normal  |
| 4     | Low     |

```lua
-- Use numeric values for priority
app.integrations.clickup.create_task({ list_id = "901234", name = "Fix bug", priority = 1 })   -- urgent
app.integrations.clickup.update_task({ task_id = "abc123", priority = 3 })                      -- normal
```

## Date Handling

All dates use ISO 8601 format. The API converts them to Unix milliseconds internally.

```lua
-- Date only
app.integrations.clickup.create_task({ list_id = "901234", name = "Sprint review", due_date = "2026-04-01" })

-- Date with time
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Standup",
  start_date = "2026-04-01T09:00:00",
  due_date = "2026-04-01T09:30:00"
})

-- Clear a date by passing empty string
app.integrations.clickup.update_task({ task_id = "abc123", due_date = "" })

-- Filter tasks by due date range
app.integrations.clickup.get_tasks({
  list_id = "901234",
  due_date_gt = "2026-03-01",
  due_date_lt = "2026-03-31"
})
```

## Member Resolution

Always resolve names to numeric user IDs before assigning tasks.

```lua
-- Find a single member by name or email
local result = app.integrations.clickup.find_member({ query = "Sarah" })
-- Returns: { matches = { { id = "12345", username = "sarah", email = "sarah@co.com" } } }

-- Resolve multiple names at once
local result = app.integrations.clickup.resolve_members({ query = "Sarah, John, alex@co.com" })
-- Returns: { results = { { query = "Sarah", id = "12345", resolved = true }, ... } }

-- Use the IDs for assignment (comma-separated string)
app.integrations.clickup.create_task({ list_id = "901234", name = "Review PR", assignees = "12345,67890" })
```

## Common Workflows

### Create a task with assignees and tags

```lua
-- Step 1: Find the list ID
local hierarchy = app.integrations.clickup.get_hierarchy({})
-- Traverse: hierarchy.spaces[].folders[].lists[] or hierarchy.spaces[].lists[]

-- Step 2: Resolve member IDs
local members = app.integrations.clickup.resolve_members({ query = "Sarah, John" })
local ids = {}
for _, m in ipairs(members.results) do
  if m.resolved then table.insert(ids, m.id) end
end

-- Step 3: Create the task
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Implement auth flow",
  description = "Add OAuth2 login support",
  status = "open",
  priority = 2,
  assignees = table.concat(ids, ","),
  tags = "backend,auth",
  due_date = "2026-04-15"
})
```

### Search for tasks, then update them

```lua
-- Search across workspace
local results = app.integrations.clickup.search_tasks({
  query = "auth",
  statuses = "open,in progress",
  include_subtasks = true
})

-- Update each matching task
for _, task in ipairs(results.tasks) do
  app.integrations.clickup.update_task({
    task_id = task.id,
    priority = 1,
    status = "in progress"
  })
end

-- Custom task IDs (e.g., "DEV-42") work too
app.integrations.clickup.update_task({ task_id = "DEV-42", status = "closed" })
```

### Time tracking (start, stop, log)

```lua
-- Start a timer on a task
app.integrations.clickup.start_timer({
  task_id = "abc123",
  description = "Working on auth flow",
  billable = true
})

-- Check what's currently running
local current = app.integrations.clickup.current_time_entry({})
-- Returns task name, start time, description

-- Stop the running timer
app.integrations.clickup.stop_timer({})

-- Or log time manually (duration in milliseconds)
app.integrations.clickup.log_time({
  task_id = "abc123",
  start = "2026-03-29T09:00:00",
  duration = "3600000",           -- 1 hour = 3,600,000 ms
  description = "Code review",
  billable = true
})

-- View all time entries for a task
local entries = app.integrations.clickup.list_time_entries({ task_id = "abc123" })
-- entries.entries[].duration is already formatted ("60.0 min")
```

### Navigate hierarchy (find list and folder IDs)

```lua
-- Get full workspace tree
local tree = app.integrations.clickup.get_hierarchy({})

-- Filter to specific space(s)
local tree = app.integrations.clickup.get_hierarchy({ space_ids = "12345,67890" })

-- Get folder details including its lists
local folder = app.integrations.clickup.get_folder({ folder_id = "456" })
-- folder.lists = { { id = "789", name = "Backlog" }, ... }

-- Get list details
local list = app.integrations.clickup.get_list({ list_id = "789" })
-- list.task_count, list.space, list.folder

-- Get all tasks in a specific list
local tasks = app.integrations.clickup.get_tasks({
  list_id = "789",
  statuses = "open,in progress",
  include_closed = false
})
```

### Create a subtask

```lua
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Write unit tests",
  parent_task_id = "abc123",
  priority = 3
})
```

### Tags

```lua
-- Add a tag (must already exist in the space)
app.integrations.clickup.add_tag({ task_id = "abc123", tag_name = "urgent" })

-- Remove a tag
app.integrations.clickup.remove_tag({ task_id = "abc123", tag_name = "urgent" })

-- Set tags during task creation
app.integrations.clickup.create_task({
  list_id = "901234",
  name = "Deploy",
  tags = "devops,release"
})
```

### Attach a file

ClickUp task attachments require multipart upload. Use a readable local path;
public URL passthrough is not supported by ClickUp's v2 task attachment endpoint.

```lua
app.integrations.clickup.attach_file({
  task_id = "abc123",
  file_path = "/tmp/report.pdf",
  filename = "Q1-report.pdf"
})
```

## Tips

- **Time durations are in milliseconds**: 1 min = 60000, 1 hour = 3600000, 1 day = 86400000
- **Tags must pre-exist** in the ClickUp space before you can add them to tasks
- **workspace_id** is pulled from config automatically for search, time tracking, and member operations -- you rarely need to pass it explicitly
- **Custom task IDs** like `"DEV-42"` work anywhere a `task_id` is accepted
- **Pagination**: `search_tasks` and `get_tasks` support a `page` parameter (starts at 0)
- **Assignees** use comma-separated numeric user IDs, not names -- always resolve first
- **Statuses** are list-specific strings (e.g., `"open"`, `"in progress"`, `"closed"`) -- check the list for valid values
- **time_estimate** on `update_task` is in **minutes** (converted to ms internally)
- The service layer tracks additional official ClickUp v2/v3 endpoints such as custom fields, checklists, comments, spaces, webhooks, docs, and chat. Only the tools listed in the generated namespace are first-class Lua tools.

---

## Multi-Account Usage

If you have multiple clickup accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations.clickup.function_name({...})

-- Explicit default (portable across setups)
app.integrations.clickup.default.function_name({...})

-- Named accounts
app.integrations.clickup.work.function_name({...})
app.integrations.clickup.personal.function_name({...})
```

All functions are identical across accounts — only the credentials differ.
Metadata-derived Lua example
local result = app.integrations.clickup.get_hierarchy({workspace_id = "example_workspace_id", space_ids = "example_space_ids"})
print(result)

Functions

get_hierarchy Read

Get the ClickUp workspace hierarchy — spaces, folders, and lists. Returns a tree structure with IDs and names for navigation. Optionally filter to specific space IDs.

Lua path
app.integrations.clickup.get_hierarchy
Full name
clickup.clickup_get_hierarchy
ParameterTypeRequiredDescription
workspace_id string no Workspace/team ID. Uses configured default if omitted.
space_ids string no Comma-separated space IDs to filter. Omit to get all spaces.
search_tasks Read

Search tasks across the ClickUp workspace. Supports filtering by query, statuses, assignees, and more. Returns matching tasks with their details.

Lua path
app.integrations.clickup.search_tasks
Full name
clickup.clickup_search
ParameterTypeRequiredDescription
query string no Search query to match task names.
statuses string no Comma-separated statuses to filter by (e.g., "open,in progress").
assignees string no Comma-separated assignee user IDs.
include_closed boolean no Include closed tasks in results. Default: false.
include_subtasks boolean no Include subtasks in results. Default: false.
page integer no Page number for pagination (starts at 0).
workspace_id string no Workspace ID. Uses configured default if omitted.
list_members Read

Get all workspace members with their IDs, names, emails, and roles.

Lua path
app.integrations.clickup.list_members
Full name
clickup.clickup_list_members
ParameterTypeRequiredDescription
No parameters.
find_member Read

Find a workspace member by name or email.

Lua path
app.integrations.clickup.find_member
Full name
clickup.clickup_find_member
ParameterTypeRequiredDescription
query string yes Name or email to search for.
resolve_members Read

Convert member names or emails to ClickUp user IDs for assigning tasks.

Lua path
app.integrations.clickup.resolve_members
Full name
clickup.clickup_resolve_members
ParameterTypeRequiredDescription
query string yes Comma-separated names or emails to resolve to user IDs.
get_tasks Read

Get all tasks in a ClickUp list. Supports filtering by statuses, assignees, and due dates. Use clickup_get_hierarchy first to find the list ID.

Lua path
app.integrations.clickup.get_tasks
Full name
clickup.clickup_get_tasks
ParameterTypeRequiredDescription
list_id string yes List ID to get tasks from.
statuses string no Comma-separated statuses to filter by.
assignees string no Comma-separated assignee user IDs.
due_date_gt string no Only tasks with due date after this (ISO 8601, e.g., "2026-01-01").
due_date_lt string no Only tasks with due date before this (ISO 8601).
include_closed boolean no Include closed tasks. Default: false.
page integer no Page number for pagination (starts at 0).
get_task Read

Get a single ClickUp task by ID with full details. Supports both regular IDs and custom IDs (e.g., "DEV-42"). Optionally include subtask details.

Lua path
app.integrations.clickup.get_task
Full name
clickup.clickup_get_task
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports regular IDs or custom IDs like "DEV-42".
include_subtasks boolean no Include subtask details. Default: false.
create_task Write

Create a new task in a ClickUp list. Requires a list ID and task name. Supports description, status, priority, assignees, dates, tags, and creating subtasks via parentTaskId. Use clickup_get_hierarchy to find list IDs.

Lua path
app.integrations.clickup.create_task
Full name
clickup.clickup_create_task
ParameterTypeRequiredDescription
list_id string yes List ID to create the task in.
name string yes Task name.
description string no Task description text.
status string no Task status (must be valid for the list).
priority integer no Priority: 1=urgent, 2=high, 3=normal, 4=low.
assignees string no Comma-separated user IDs to assign. Use clickup_resolve_members to resolve names to IDs.
due_date string no Due date in ISO 8601 format (e.g., "2026-03-15" or "2026-03-15T14:30:00").
start_date string no Start date in ISO 8601 format.
tags string no Comma-separated tag names. Tags must exist in the space.
parent_task_id string no Parent task ID to create this as a subtask.
update_task Write

Update an existing ClickUp task. Supports changing name, description, status, priority, assignees, and dates. Set status to "closed" to complete a task. Supports custom task IDs like "DEV-42".

Lua path
app.integrations.clickup.update_task
Full name
clickup.clickup_update_task
ParameterTypeRequiredDescription
task_id string yes Task ID to update. Supports custom IDs like "DEV-42".
name string no New task name.
description string no New task description.
status string no New status. Set to "closed" to complete the task.
priority integer no Priority: 1=urgent, 2=high, 3=normal, 4=low.
assignees string no Comma-separated user IDs to add as assignees.
remove_assignees string no Comma-separated user IDs to remove as assignees.
due_date string no New due date (ISO 8601). Empty string to clear.
start_date string no New start date (ISO 8601). Empty string to clear.
time_estimate integer no Time estimate in minutes.
delete_task Write

Delete a ClickUp task permanently. Supports custom task IDs like "DEV-42". This action cannot be undone.

Lua path
app.integrations.clickup.delete_task
Full name
clickup.clickup_delete_task
ParameterTypeRequiredDescription
task_id string yes Task ID to delete. Supports custom IDs like "DEV-42".
add_tag Write

Add an existing tag to a ClickUp task. The tag must already exist in the space.

Lua path
app.integrations.clickup.add_tag
Full name
clickup.clickup_add_tag
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports custom IDs like "DEV-42".
tag_name string yes Tag name to add.
remove_tag Write

Remove a tag from a ClickUp task.

Lua path
app.integrations.clickup.remove_tag
Full name
clickup.clickup_remove_tag
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports custom IDs like "DEV-42".
tag_name string yes Tag name to remove.
attach_file Write

Upload a local file attachment to a ClickUp task. ClickUp's official task attachment endpoint requires multipart file upload; cloud URL passthrough is not supported by this v2 endpoint.

Lua path
app.integrations.clickup.attach_file
Full name
clickup.clickup_attach_file
ParameterTypeRequiredDescription
task_id string yes Task ID to attach the file to. Supports custom IDs like "DEV-42".
file_path string yes Readable local file path to upload.
filename string no Optional filename override for the uploaded attachment.
file_url string no Deprecated. Public URL uploads are not supported by ClickUp v2 task attachments.
read_comments Read

Get all comments on a ClickUp task. Supports pagination.

Lua path
app.integrations.clickup.read_comments
Full name
clickup.clickup_read_comments
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports custom IDs like "DEV-42".
start string no Timestamp (ms) for pagination.
start_id string no Comment ID for pagination.
add_comment Write

Add a new comment to a ClickUp task.

Lua path
app.integrations.clickup.add_comment
Full name
clickup.clickup_add_comment
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports custom IDs like "DEV-42".
comment_text string yes Comment text.
assignee string no User ID to assign the comment to.
notify_all boolean no Notify all assignees. Default: false.
current_time_entry Read

Get the currently running time tracking entry, if any.

Lua path
app.integrations.clickup.current_time_entry
Full name
clickup.clickup_current_time_entry
ParameterTypeRequiredDescription
workspace_id string no Workspace ID. Uses configured default if omitted.
list_time_entries Read

Get all time entries for a ClickUp task.

Lua path
app.integrations.clickup.list_time_entries
Full name
clickup.clickup_list_time_entries
ParameterTypeRequiredDescription
task_id string yes Task ID. Supports custom IDs like "DEV-42".
start_timer Write

Start a time tracking timer on a ClickUp task.

Lua path
app.integrations.clickup.start_timer
Full name
clickup.clickup_start_timer
ParameterTypeRequiredDescription
task_id string yes Task ID to start the timer on.
description string no Description for the time entry.
billable boolean no Whether the time is billable.
tags string no Comma-separated tag names for the time entry.
workspace_id string no Workspace ID. Uses configured default if omitted.
stop_timer Write

Stop the currently running time tracking timer.

Lua path
app.integrations.clickup.stop_timer
Full name
clickup.clickup_stop_timer
ParameterTypeRequiredDescription
workspace_id string no Workspace ID. Uses configured default if omitted.
log_time Write

Add a manual time entry to a ClickUp task.

Lua path
app.integrations.clickup.log_time
Full name
clickup.clickup_log_time
ParameterTypeRequiredDescription
task_id string yes Task ID.
start string yes Start time in ISO 8601 format.
duration string yes Duration in milliseconds.
description string no Description for the time entry.
billable boolean no Whether the time is billable.
tags string no Comma-separated tag names for the time entry.
workspace_id string no Workspace ID. Uses configured default if omitted.
get_list Read

Get details of a ClickUp list by ID.

Lua path
app.integrations.clickup.get_list
Full name
clickup.clickup_get_list
ParameterTypeRequiredDescription
list_id string yes List ID.
create_folderless_list Write

Create a new list in a ClickUp space.

Lua path
app.integrations.clickup.create_folderless_list
Full name
clickup.clickup_create_list
ParameterTypeRequiredDescription
space_id string yes Space ID to create the list in.
name string yes List name.
content string no List description/content.
status string no List status.
create_list_folder Write

Create a new list in a ClickUp folder.

Lua path
app.integrations.clickup.create_list_folder
Full name
clickup.clickup_create_list_in_folder
ParameterTypeRequiredDescription
folder_id string yes Folder ID to create the list in.
name string yes List name.
content string no List description/content.
status string no List status.
update_list Write

Update a ClickUp list's name, content, or status.

Lua path
app.integrations.clickup.update_list
Full name
clickup.clickup_update_list
ParameterTypeRequiredDescription
list_id string yes List ID.
name string no New list name.
content string no New list description/content.
status string no New list status.
get_folder Read

Get details of a ClickUp folder by ID, including its lists.

Lua path
app.integrations.clickup.get_folder
Full name
clickup.clickup_get_folder
ParameterTypeRequiredDescription
folder_id string yes Folder ID.
create_folder Write

Create a new folder in a ClickUp space.

Lua path
app.integrations.clickup.create_folder
Full name
clickup.clickup_create_folder
ParameterTypeRequiredDescription
space_id string yes Space ID to create the folder in.
name string yes Folder name.
update_folder Write

Update a ClickUp folder's name.

Lua path
app.integrations.clickup.update_folder
Full name
clickup.clickup_update_folder
ParameterTypeRequiredDescription
folder_id string yes Folder ID.
name string yes New folder name.
list_chat_channels Read

List all chat channels in the ClickUp workspace.

Lua path
app.integrations.clickup.list_chat_channels
Full name
clickup.clickup_list_channels
ParameterTypeRequiredDescription
cursor string no Pagination cursor.
workspace_id string no Workspace ID. Uses configured default if omitted.
send_chat_message Write

Send a message to a ClickUp chat channel.

Lua path
app.integrations.clickup.send_chat_message
Full name
clickup.clickup_send_message
ParameterTypeRequiredDescription
channel_id string yes Channel ID.
content string yes Message content, supports markdown.
content_format string no Content format: "text/md" (default) or "text/plain".
type string no Message type: "message" (default) or "post".
post_title string no Post title (required if type is "post").
workspace_id string no Workspace ID. Uses configured default if omitted.
create_document Write

Create a ClickUp document in a space, folder, or list. Specify the parent container and visibility (PUBLIC or PRIVATE).

Lua path
app.integrations.clickup.create_document
Full name
clickup.clickup_manage_document
ParameterTypeRequiredDescription
name string yes Document name/title.
parent_id string yes ID of the parent container (space, folder, or list).
parent_type string yes Type of parent: "space", "folder", "list", "everything", or "workspace".
visibility string no Document visibility: "PUBLIC" or "PRIVATE". Default: PUBLIC.
create_page boolean no Create an initial blank page. Default: true.
workspace_id string no Workspace ID. Uses configured default if omitted.
list_doc_pages Read

List all pages in a ClickUp document.

Lua path
app.integrations.clickup.list_doc_pages
Full name
clickup.clickup_list_doc_pages
ParameterTypeRequiredDescription
document_id string yes Document ID.
max_depth integer no Max page depth (-1 for unlimited).
workspace_id string no Workspace ID. Uses configured default if omitted.
get_doc_pages Read

Get the content of specific pages from a ClickUp document.

Lua path
app.integrations.clickup.get_doc_pages
Full name
clickup.clickup_get_doc_pages
ParameterTypeRequiredDescription
document_id string yes Document ID.
page_ids string yes Comma-separated page IDs to retrieve.
content_format string no Content format: "text/md" (default) or "text/html".
workspace_id string no Workspace ID. Uses configured default if omitted.
create_doc_page Write

Create a new page in a ClickUp document.

Lua path
app.integrations.clickup.create_doc_page
Full name
clickup.clickup_create_doc_page
ParameterTypeRequiredDescription
document_id string yes Document ID.
name string yes Page name/title.
content string no Page content.
content_format string no Content format: "text/md" (default) or "text/html".
sub_title string no Page subtitle.
parent_page_id string no Parent page ID for creating sub-pages.
workspace_id string no Workspace ID. Uses configured default if omitted.
update_doc_page Write

Update an existing page in a ClickUp document. Supports replace, append, or prepend content.

Lua path
app.integrations.clickup.update_doc_page
Full name
clickup.clickup_update_doc_page
ParameterTypeRequiredDescription
document_id string yes Document ID.
page_id string yes Page ID.
name string no New page name/title.
content string no New page content.
content_format string no Content format: "text/md" (default) or "text/html".
edit_mode string no Edit mode: "replace" (default), "append", or "prepend".
sub_title string no New page subtitle.
workspace_id string no Workspace ID. Uses configured default if omitted.