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.
kosmo integrations:lua --eval 'dump(app.integrations.clickup.get_hierarchy({workspace_id = "example_workspace_id", space_ids = "example_space_ids"}))' --json 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.
local clickup = app.integrations.clickup
local result = clickup.get_hierarchy({workspace_id = "example_workspace_id", space_ids = "example_space_ids"})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json 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.
# 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
| Value | Level |
|---|---|
| 1 | Urgent |
| 2 | High |
| 3 | Normal |
| 4 | Low |
-- 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")
Navigate hierarchy (find list and folder IDs)
-- 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 atask_idis accepted - Pagination:
search_tasksandget_taskssupport apageparameter (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_taskis 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. 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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| 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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
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. |