Overview
The Taskz REST API is a thin HTTP layer over the same tool registry that powers the MCP server, so it covers everything the app can do and never drifts out of date. Each capability is one endpoint. It's a JSON API: send a Bearer token, get JSON back.
Token auth
Scoped Personal Access Tokens (tzk_api_…), created in-app and shown once.
Acts as you
A key never exceeds the creating member's live permissions — checked every call.
Rate-limited
Per-minute burst limit + a daily quota, so automation can't overwhelm the host.
Pro only
Available to Pro workspaces. Free workspaces get a 402.
Authentication
Create a key in Taskz under API (Org section of the sidebar; you need the API Access permission). Pick the scopes it may use — you can only grant capabilities your own role has. The full secret is shown once; only a hash is stored. Pass it as a Bearer token on every request:
Authorization: Bearer tzk_api_xxxxxxxxxxxxxxxxxxxxxxxx
Revoking a key, deactivating the member, or removing the API Access permission from their role makes every one of their keys stop working immediately.
Base URL
https://mineplex.taskz.org/api/v1
Append the endpoint name, e.g. https://mineplex.taskz.org/api/v1/tasks_list. A machine-readable OpenAPI 3.1 spec lives at /api/v1/openapi.json — import it into Postman, Insomnia, or a codegen client.
Pro requirement
The REST API is a Pro feature. Key creation and every request check the workspace plan, so a workspace that downgrades has its keys deactivated instantly. Free workspaces receive 402 Payment Required.
Rate limits & quotas
Two layers protect the workspace and the host:
- Burst limit — 60 requests/minute per key and 300/minute per workspace. Exceed it and you get
429with aRetry-Afterheader (seconds). - Daily quota — 5,000 calls/day per key, resetting at 00:00 UTC. Each response carries
X-RateLimit-LimitandX-RateLimit-Remaining.
Build clients that back off on 429 and respect Retry-After. Limits exist so one busy integration can't degrade the workspace for everyone else.
Permissions & scopes
A request must clear three gates: the key's granted scope for the endpoint, your role's live permission, and any per-resource access rules — all re-checked on every call. identity:read is always available. Scopes:
| Scope | Grants |
|---|---|
identity:read | Know who it is acting as and today's date. Always on. |
boards:read | List and view boards, lists, views, templates, and activity. |
boards:write | Create and update boards, lists, columns, and views. |
boards:manage | Delete boards, lists, and board templates. |
tasks:read | View tasks, subtasks, comments, attachments, time, and fields. |
tasks:write | Create, update, move, comment on, and reorder tasks; log time; set fields and labels. |
tasks:assign | Add or remove task assignees. |
tasks:delete | Delete tasks, comments, attachments, time entries, labels, and fields. |
docs:read | List, search, and read documents, versions, and comments. |
docs:write | Create, update, comment on, and organize documents. |
docs:delete | Move documents to trash and restore them. |
docs:purge | Permanently delete documents from trash. No undo. |
messages:read | Read channels, threads, and DMs the user can already see. |
messages:write | Post and edit your own messages; start DMs; join channels. |
messages:moderate | Edit or delete other people's messages. |
channels:manage | Create, rename, and delete channels. |
members:read | List members, profiles, activity, and pending invites. |
members:manage | Invite, remove, deactivate, and change member roles. |
roles:manage | Create roles, set permissions, and assign roles to members. |
teams:read | View teams and their boards, channels, docs, and stats. |
teams:manage | Create, update, and delete teams; manage team membership. |
timelines:read | View timeline tasks and boards. |
timelines:write | Adjust task start/due dates on the timeline. |
goals:read | List goals and their progress. |
goals:write | Create goals and update their progress. |
forms:read | List forms and their submissions. |
forms:write | Create and update forms. |
forms:approve | Approve or reject form submissions. |
visualize:read | View flowcharts and charts. |
visualize:write | Create and update flowcharts and charts. |
analytics:read | View dashboards, KPIs, and storage usage. |
analytics:export | Export analytics and workspace data as CSV/JSON. |
audit:read | Read the workspace audit log. |
billing:read | View plan, usage, and billing information. |
Making requests
Read endpoints are GET with parameters in the query string. Write endpoints are POSTwith a JSON body. The response is the endpoint's data as JSON (or an { "error", "code" } object with a 4xx/5xx status).
# Read — GET with query params
curl "https://mineplex.taskz.org/api/v1/tasks_list?limit=10&status=open" \
-H "Authorization: Bearer tzk_api_…"
# Write — POST with a JSON body
curl -X POST "https://mineplex.taskz.org/api/v1/task_create" \
-H "Authorization: Bearer tzk_api_…" \
-H "Content-Type: application/json" \
-d '{"board_id":"…","list_id":"…","title":"Ship the API"}'Errors
Errors return a JSON body { "error": "message", "code": "machine_code" } with an appropriate status:
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | Missing, invalid, revoked, or expired API key. |
| 402 | payment_required | Workspace is not on the Pro plan. |
| 403 | forbidden_permission | Your role lacks the API Access (api:use) permission. |
| 403 | forbidden_scope | The key wasn't granted the endpoint's scope. |
| 404 | unknown_endpoint | No endpoint by that name (check the path). |
| 404 | request_failed | Resource not found or not accessible to you. |
| 405 | method_not_allowed | Reads use GET; writes use POST. |
| 400 | invalid_json / invalid_params | Body/params failed validation. |
| 429 | rate_limited | Per-minute burst exceeded (60/min per key, 300/min per workspace). Honor Retry-After. |
| 429 | quota_exceeded | Daily call cap reached. Resets at 00:00 UTC. |
| 403 | request_failed | The action isn't allowed at your permission level. |
| 500 | internal_error | Unexpected server error. |
Endpoints (170)
Every endpoint, generated from the live registry. Parameters marked * are required.
Identity
/api/v1/get_current_dateidentity:readReturn today's date in ISO 8601 (YYYY-MM-DD) and the server's UTC timestamp. Call this before computing relative dates like 'tomorrow' or 'next Friday'.
/api/v1/get_workspaceidentity:readReturn basic info about the current workspace (organization): id, name, slug, and plan.
/api/v1/list_member_directoryidentity:readList organization members as a lightweight directory (user id, display name, username, role) for resolving an assignee or mention target. For emails, activity, and profile details use members_list (requires the 'Read members' scope).
/api/v1/whoamiidentity:readReturn the calling user's identity in this org: user id, display name, email, and system role (owner / admin / member). Always available.
Boards
/api/v1/board_createboards:writeCreate a new board with a name and optional description/color.
name*:string, description:string, color:string
/api/v1/board_deleteboards:managePermanently delete a board and all of its lists and tasks. No undo.
board_id*:string
/api/v1/board_getboards:readGet a single board including its lists (in order) so you know which list_id to target when creating or moving tasks.
board_id*:string
/api/v1/board_statuses_listboards:readList a board's statuses in order (the Status view groups tasks by these, distinct from lists/columns). Use a returned status id with task_update's status_id to set a task's exact status.
board_id*:string
/api/v1/board_updateboards:writeUpdate a board's name, description, or color.
board_id*:string, name:string, description:any, color:string
/api/v1/boards_listboards:readList boards in the workspace the user can see (open boards, boards they created, or boards their role can access).
/api/v1/list_createboards:writeCreate a new list (column) on a board. Pass is_done=true if completing this list should mark tasks as done.
board_id*:string, name*:string, is_done:boolean
/api/v1/list_deleteboards:manageDelete a list and every task in it. No undo.
list_id*:string
/api/v1/list_updateboards:writeUpdate a list's name or done-state flag.
list_id*:string, name:string, is_done:boolean
Tasks
/api/v1/board_custom_fields_listtasks:readList the custom field definitions on a board (name, type, options, required), ordered by position.
board_id*:string
/api/v1/board_labels_listtasks:readList the labels defined on a board (name, color, description), ordered by name.
board_id*:string
/api/v1/custom_field_createtasks:writeCreate a custom field on a board. field_type is one of: text, longtext, number, date, dropdown, multi, link, email, person, checkbox. options is optional JSON (e.g. dropdown choices).
board_id*:string, name*:string, field_type*:text | longtext | number | date | dropdown | multi | link | email | person | checkbox, options:any, is_required:boolean
/api/v1/custom_field_deletetasks:deleteDelete a custom field definition from a board. Cascades to all task values for that field. No undo.
field_id*:string
/api/v1/custom_field_updatetasks:writeUpdate a custom field definition's name, options, position, or required flag.
field_id*:string, name:string, options:any, position:integer, is_required:boolean
/api/v1/label_createtasks:writeCreate a label on a board (unique name per board). color is a #rrggbb hex string.
board_id*:string, name*:string, color*:string, description:any
/api/v1/label_deletetasks:deleteDelete a board label. No undo.
label_id*:string
/api/v1/label_updatetasks:writeUpdate a label's name, color, or description.
label_id*:string, name:string, color:string, description:any
/api/v1/my_taskstasks:readList tasks assigned to the calling user. Filter by status (default: only 'open').
status:open | done, limit:integer
/api/v1/overdue_taskstasks:readGet tasks past their due date and still open, limited to boards the user can see.
/api/v1/search_workspacetasks:readSearch tasks, documents, and boards by keyword. Returns up to 10 of each, filtered to what the user can see.
query*:string
/api/v1/subtasks_listtasks:readList the direct subtasks of a task (child cards whose parent is this task), in board order.
task_id*:string
/api/v1/task_assignee_addtasks:assignAdd an org member as an assignee on a task. No-op if already assigned.
task_id*:string, user_id*:string
/api/v1/task_assignee_removetasks:assignRemove an assignee from a task.
task_id*:string, user_id*:string
/api/v1/task_assignees_listtasks:readList all assignees on a task with their profile info.
task_id*:string
/api/v1/task_assignees_settasks:assignReplace a task's assignees with the exact set of user_ids given (pass [] to clear all). All ids must be org members.
task_id*:string, user_ids*:array
/api/v1/task_attachment_deletetasks:deleteDelete a task attachment record. The uploader may delete their own; otherwise board delete permission is required. No undo.
attachment_id*:string
/api/v1/task_attachment_urltasks:readGenerate a short-lived (1 hour) signed URL to view or download a single task attachment. Set download=true to force a save dialog.
attachment_id*:string, download:boolean
/api/v1/task_attachments_listtasks:readList file attachments on a task (file name, size, type, uploader, storage path). Use task_attachment_url to fetch a viewable URL.
task_id*:string
/api/v1/task_card_detailstasks:readBatched card detail for a task: recent comments, attachment file names, and blocked-by / blocks dependency titles.
task_id*:string
/api/v1/task_comment_addtasks:writeAdd a comment to a task.
task_id*:string, content*:string
/api/v1/task_comment_deletetasks:deleteSoft-delete a task comment. The author may delete their own; otherwise board delete permission is required.
comment_id*:string
/api/v1/task_comment_edittasks:writeEdit a task comment. Only the comment's own author may edit it (author-only).
comment_id*:string, content*:string
/api/v1/task_comments_listtasks:readList comments on a task in chronological order.
task_id*:string, limit:integer
/api/v1/task_createtasks:writeCreate a new task in a board and list. Resolve list_id via board_get first.
board_id*:string, list_id*:string, title*:string, description:string, priority:none | low | medium | high | urgent, due_date:string, start_date:string, assignee_id:string
/api/v1/task_deletetasks:deletePermanently delete a task. No undo.
task_id*:string
/api/v1/task_dependencies_listtasks:readList a task's dependencies: tasks that block it (blockedBy) and tasks it blocks (blocks).
task_id*:string
/api/v1/task_dependency_addtasks:writeAdd a dependency: blocking_task_id must be completed before blocked_task_id. Both tasks must be on boards you can edit.
blocking_task_id*:string, blocked_task_id*:string
/api/v1/task_dependency_removetasks:writeRemove a task dependency by its id.
dependency_id*:string
/api/v1/task_field_cleartasks:writeClear a single custom field value from a task (the field definition stays on the board).
task_id*:string, field_id*:string
/api/v1/task_field_settasks:writeSet (upsert) a custom field value on a task. value is JSON matching the field type (string, number, boolean, array, etc.).
task_id*:string, field_id*:string, value*:any
/api/v1/task_field_values_listtasks:readList the custom field values set on a task, each joined to its field name and type.
task_id*:string
/api/v1/task_is_watchingtasks:readCheck whether the calling user is watching a task.
task_id*:string
/api/v1/task_movetasks:writeMove a task to a different list on the same board.
task_id*:string, target_list_id*:string
/api/v1/task_reference_linktasks:writeLink a diagram (flowchart or chart) to a task. You must be able to view the referenced diagram.
task_id*:string, ref_type*:flowchart | chart, ref_id*:string
/api/v1/task_reference_unlinktasks:writeRemove a diagram reference from a task by its reference id. The reference's creator (or a board editor) may remove it.
reference_id*:string
/api/v1/task_references_listtasks:readList the diagrams (flowcharts / charts) linked to a task, hydrated with each target's title and type.
task_id*:string
/api/v1/task_time_entry_deletetasks:deleteDelete a time entry and decrement the task's timeSpent. The logger may delete their own; otherwise board delete permission is required. No undo.
entry_id*:string
/api/v1/task_time_listtasks:readList time entries logged against a task, newest first, with the logging user's profile info.
task_id*:string, limit:integer
/api/v1/task_time_logtasks:writeLog time (in minutes) against a task as the calling user. Increments the task's running timeSpent. logged_at is an optional YYYY-MM-DD date.
task_id*:string, minutes*:integer, description:string, logged_at:string
/api/v1/task_time_summarytasks:readGet a time-tracking summary for a task: total minutes logged, the task's running timeSpent, and the entry count.
task_id*:string
/api/v1/task_unwatchtasks:writeRemove the calling user from a task's watchers.
task_id*:string
/api/v1/task_updatetasks:writeUpdate a task's title, description, status, priority, dates, or assignee. Pass status_id to set the exact board status (discover ids via board_statuses_list); it takes precedence over the open/done `status` flag.
task_id*:string, title:string, description:any, status:open | done, status_id:any, priority:none | low | medium | high | urgent, due_date:any, start_date:any, assignee_id:any
/api/v1/task_watchtasks:writeMake the calling user a watcher of a task. No-op if already watching.
task_id*:string
/api/v1/task_watchers_listtasks:readList the users watching a task (subscribed to its updates).
task_id*:string
/api/v1/tasks_listtasks:readList tasks in the workspace, optionally filtered by board, status, priority, or assignee. Only returns tasks on boards the user can see.
board_id:string, status:open | done, priority:none | low | medium | high | urgent, assignee_id:string, limit:integer
Documents
/api/v1/doc_comment_adddocs:writeAdd a comment to a document.
document_id*:string, content*:string
/api/v1/doc_comment_deletedocs:deleteDelete a document comment. Only the comment's author or an org admin/owner may delete it.
comment_id*:string
/api/v1/doc_comment_resolvedocs:writeMark a document comment as resolved.
comment_id*:string
/api/v1/doc_comment_unresolvedocs:writeReopen a resolved document comment.
comment_id*:string
/api/v1/doc_comments_listdocs:readList comments on a document in chronological order. By default excludes resolved comments.
document_id*:string, include_resolved:boolean, limit:integer
/api/v1/doc_createdocs:writeCreate a new document (or folder) with a title and optional plain-text body. The body is converted to a minimal TipTap doc — do not pass JSON.
title*:string, content:string, parent_id:string, is_folder:boolean
/api/v1/doc_favorite_toggledocs:writeToggle the calling user's favorite flag on a document. Returns the new favorited state.
document_id*:string
/api/v1/doc_from_templatedocs:writeCreate a new document from an existing template, optionally nested under a parent folder.
template_id*:string, parent_id:string
/api/v1/doc_getdocs:readGet a single document including its TipTap content (as stored JSON). Excludes trashed documents.
document_id*:string
/api/v1/doc_permanent_deletedocs:purgePermanently delete a trashed document and all its versions and descendants. No undo.
document_id*:string
/api/v1/doc_restoredocs:deleteRestore a trashed document (and its descendants) out of the trash. Restores to root if its parent is gone.
document_id*:string
/api/v1/doc_soft_deletedocs:deleteMove a document (and, if it is a folder, its descendants) to the trash. Reversible via doc_restore.
document_id*:string
/api/v1/doc_template_deletedocs:purgePermanently delete a document template. No undo.
template_id*:string
/api/v1/doc_templates_listdocs:readList the org's document templates with name, description, and category.
/api/v1/doc_updatedocs:writeUpdate a document's title and/or body. Body is plain text — converted to a TipTap doc, replacing existing content. Do not pass JSON.
document_id*:string, title:string, content:string, icon:any
/api/v1/doc_version_restoredocs:writeRestore a document to a saved version. The current content is snapshotted as a new version first.
version_id*:string
/api/v1/doc_version_savedocs:writeSnapshot a document's current content as a new version in its history.
document_id*:string
/api/v1/doc_versions_listdocs:readList saved version snapshots of a document, newest first, with version number, title, and timestamp.
document_id*:string, limit:integer
/api/v1/docs_favoritesdocs:readList documents the calling user has favorited. Excludes trashed documents.
/api/v1/docs_listdocs:readList documents and folders the user can see (open docs, docs they created, or docs their role can access). Excludes trashed documents.
parent_id:string, limit:integer
/api/v1/docs_recentdocs:readList the most recently updated documents the user can see. Excludes trashed documents.
limit:integer
/api/v1/docs_searchdocs:readSearch documents by title and body text. Returns up to 20 matches the user can see, newest-updated first. Excludes trashed documents.
query*:string
/api/v1/docs_trash_listdocs:readList soft-deleted documents in the trash (org-wide). Requires view-documents permission.
limit:integer
Messaging
/api/v1/channel_createchannels:manageCreate a channel. Pass is_private=true for an invite-only channel; you are auto-joined as the creator.
name*:string, description:string, is_private:boolean
/api/v1/channel_deletechannels:managePermanently delete a channel and all of its messages. No undo. Requires the delete-channels permission.
channel_id*:string
/api/v1/channel_getmessages:readGet a single channel and its members. Private channels require membership.
channel_id*:string
/api/v1/channel_joinmessages:writeJoin a public channel. Private channels can't be joined without an invite. Requires the join-channels permission.
channel_id*:string
/api/v1/channel_leavemessages:writeLeave a channel you're a member of.
channel_id*:string
/api/v1/channel_mark_readmessages:writeMark a channel as read up to now for the calling user.
channel_id*:string
/api/v1/channel_messagesmessages:readList recent top-level messages in a channel, newest first. Requires view-messages permission and, for private channels, membership.
channel_id*:string, limit:integer
/api/v1/channel_updatechannels:manageUpdate a channel's name, description, or topic.
channel_id*:string, name:string, description:any, topic:any
/api/v1/channels_listmessages:readList channels in the workspace. Private channels the user isn't a member of are omitted; channels the user's roles can't view are omitted.
/api/v1/dm_create_or_getmessages:writeStart a direct-message thread with one or more org members, or return the existing 1:1 thread. Requires send-messages permission.
member_ids*:array
/api/v1/dm_messagesmessages:readList recent top-level messages in a DM thread, newest first. The caller must be a participant.
thread_id*:string, limit:integer
/api/v1/dm_threads_listmessages:readList the direct-message threads the calling user participates in, with the other members and last message.
/api/v1/message_deletemessages:moderateDelete a message. You may delete your own (needs delete-messages) or, with delete_others-messages, anyone's. Soft delete.
message_id*:string
/api/v1/message_editmessages:writeEdit one of YOUR OWN messages. Requires edit-messages permission. To edit someone else's message use message_edit_others.
message_id*:string, content*:string
/api/v1/message_edit_othersmessages:moderateEdit another member's message. Requires the edit_others-messages permission.
message_id*:string, content*:string
/api/v1/message_sendmessages:writeSend a message to a channel OR a DM thread (exactly one of channel_id / thread_id). Optionally reply under a parent message. Requires send-messages permission and channel/DM access.
channel_id:string, thread_id:string, content*:string, parent_message_id:string
/api/v1/thread_repliesmessages:readList replies under a parent message in chronological order. The caller must be able to see the parent (channel membership / DM participation).
parent_message_id*:string, limit:integer
Members & Roles
/api/v1/invite_link_generatemembers:manageGenerate a shareable 30-day invite link that anyone can use to join this workspace. Generating an admin-role link requires you to be an owner or admin. Respects the free-tier seat cap.
role:admin | member, custom_role_id:string
/api/v1/invite_resendmembers:manageRe-send a still-pending invitation: rotates its token, resets the 7-day expiry, and emails it again.
invite_id*:string
/api/v1/invite_revokemembers:manageRevoke a pending invitation so its link can no longer be used.
invite_id*:string
/api/v1/invites_listmembers:readList invitations for this workspace (pending, accepted, expired, revoked) newest first.
status:pending | accepted | expired | revoked
/api/v1/member_activitymembers:readGet a member's recent board activity (their actions across boards in this workspace), newest first.
user_id*:string, limit:integer
/api/v1/member_bulk_invitemembers:manageInvite multiple people at once by passing a list of email addresses. Inviting at the admin role requires you to be an owner or admin. Each invite is checked against the free-tier seat cap; returns per-email results.
emails*:array, role:admin | member
/api/v1/member_deactivatemembers:manageDeactivate a member: they remain in the workspace but lose all access until reactivated. The primary owner cannot be deactivated (co-owners can, by an owner), and you cannot deactivate yourself.
member_id*:string
/api/v1/member_getmembers:readGet a single workspace member (by org member id) with profile, system role, and assigned custom roles. Email is null for members who hide it unless you are owner/admin.
member_id*:string
/api/v1/member_invitemembers:manageInvite a person by email to this workspace. Inviting at the admin role requires you to be an owner or admin. Respects the free-tier seat cap.
email*:string, role:admin | member, custom_role_id:string
/api/v1/member_job_title_setmembers:manageSet or clear a member's per-org job title. Pass an empty string to clear it (the display then falls back to a role's preset title, if any). Editing your own title requires the members edit_own_job_title permission; editing others requires edit_job_title (owner/admin always may).
member_id*:string, job_title*:any
/api/v1/member_reactivatemembers:manageReactivate a previously deactivated member, restoring their access.
member_id*:string
/api/v1/member_removemembers:managePermanently remove a member from this workspace. The primary owner cannot be removed (co-owners can, by an owner), and you cannot remove yourself. No undo.
member_id*:string
/api/v1/member_role_changemembers:manageChange a member's system role (admin or member). Promoting/demoting admins or owners is reserved to owners. Co-owners can be demoted here, but the primary owner's role can't be changed (use Transfer ownership).
member_id*:string, role*:admin | member
/api/v1/member_roles_setroles:manageReplace the full set of custom roles assigned to a member. Pass an empty list to clear all of their custom roles. All roles must belong to this workspace.
member_id*:string, role_ids*:array
/api/v1/members_listmembers:readList the members of this workspace with display name, username, email, system role, and per-org job title. Emails of members who hide their email are returned as null unless you are an owner/admin.
include_deactivated:boolean
/api/v1/role_createroles:manageCreate a new custom role with a name, hex color, optional description, and optional preset job title (shown to every member holding the role).
name*:string, color:string, description:any, job_title:any
/api/v1/role_deleteroles:manageDelete a custom role. Members holding it lose it. System roles cannot be deleted. No undo.
role_id*:string
/api/v1/role_permissions_getroles:manageList the (resource_type, action) permission grants attached to a role.
role_id*:string
/api/v1/role_permissions_setroles:manageReplace the full permission set of a custom role with the given (resource_type, action) grants. Pass an empty list to clear all grants. System roles cannot be modified.
role_id*:string, permissions*:array
/api/v1/role_updateroles:manageUpdate a custom role's name, color, description, or preset job title. Pass job_title as an empty string or null to clear the preset. System roles cannot be modified.
role_id*:string, name:string, color:string, description:any, job_title:any
/api/v1/roles_listroles:manageList the custom and system roles in this workspace, ordered by position.
Teams
/api/v1/team_activityteams:readGet recent board activity for a team. Requires that the user can see the team AND holds the view_activity grant (owner/admin bypass).
team_id*:string, limit:integer
/api/v1/team_boardsteams:readList the boards belonging to a team, with list and task counts. Requires that the user can see the team.
team_id*:string
/api/v1/team_channelsteams:readList the channels belonging to a team. Requires that the user can see the team.
team_id*:string
/api/v1/team_createteams:manageCreate a new team with a name, optional description, and color.
name*:string, description:any, color:string
/api/v1/team_deleteteams:managePermanently delete a team. Its boards/channels/documents are detached (team_id set null), not deleted. No undo.
team_id*:string
/api/v1/team_documentsteams:readList the documents belonging to a team (excluding trashed). Requires that the user can see the team.
team_id*:string
/api/v1/team_getteams:readGet a single team with its members (display name, username, email). Requires that the user can see the team.
team_id*:string
/api/v1/team_member_addteams:manageAdd an existing org member to a team. The target must already be an active org member.
team_id*:string, user_id*:string
/api/v1/team_member_removeteams:manageRemove a member from a team. Removing yourself (self-leave) is always allowed; removing others requires manage_members on the team. The team owner cannot be removed until ownership is transferred.
team_id*:string, user_id*:string
/api/v1/team_ownership_transferteams:manageTransfer team ownership to another current team member. Allowed for the current team owner or an org owner/admin. The new owner must already be a member of the team.
team_id*:string, new_owner_id*:string
/api/v1/team_statsteams:readGet aggregated counts for a team (tasks, open/completed/overdue, members, boards, channels). Requires that the user can see the team.
team_id*:string
/api/v1/team_updateteams:manageUpdate a team's name, description, or color.
team_id*:string, name:string, description:any, color:string
/api/v1/teams_listteams:readList the teams the user can see in this workspace. Owner/admin see every team; everyone else sees only teams they belong to. Includes member counts.
Timelines
/api/v1/timeline_boardstimelines:readList boards available as timeline filters (id, name, color). Returns nothing if the user can't view timelines.
/api/v1/timeline_task_dates_settimelines:writeSet or clear a task's start date and/or due date on the timeline. Pass null for either to clear it. Dates are 'YYYY-MM-DD'.
task_id*:string, start_date*:any, due_date*:any
/api/v1/timeline_taskstimelines:readList tasks that have a start date and/or due date so they can be plotted on the timeline. Only returns tasks on boards the user can see. Optionally filter by board, assignee, priority, or status.
board_id:string, assignee_id:string, priority:none | low | medium | high | urgent, status:open | done
Goals
/api/v1/goal_creategoals:writeCreate a new goal/OKR with a target value and unit (percent | number | currency | tasks).
name*:string, description:string, target_value:integer, unit:percent | number | currency | tasks, due_date:string
/api/v1/goal_deletegoals:writePermanently delete a goal. No undo. The goal creator, an admin, or a role with goals:delete may delete.
goal_id*:string
/api/v1/goal_getgoals:readGet a single goal by id with its full detail.
goal_id*:string
/api/v1/goal_updategoals:writeUpdate a goal's name, description, target value, unit, due date, current value, or status. The goal creator, an admin, or a role with the goals:edit permission may update.
goal_id*:string, name:string, description:any, target_value:integer, current_value:integer, unit:percent | number | currency | tasks, due_date:any, status:on_track | at_risk | behind | completed
/api/v1/goal_update_progressgoals:writeUpdate a goal's current value and/or status (on_track | at_risk | behind | completed). The goal creator, an admin, or a role with goals:edit may update.
goal_id*:string, current_value:integer, status:on_track | at_risk | behind | completed
/api/v1/goals_listgoals:readList all goals/OKRs in the workspace with their target value, stored current value, unit, status, and due date.
Forms
/api/v1/form_createforms:writeCreate a new intake form on a board and target list. At least one field must map to 'title'. Resolve board_id/list_id via board_get first.
board_id*:string, list_id*:string, name*:string, description:any, fields*:array, is_public:boolean, requires_approval:boolean, approver_role_id:any, team_id:any
/api/v1/form_deleteforms:writePermanently delete a form. No undo. Does not delete tasks already created from its submissions.
form_id*:string
/api/v1/form_getforms:readGet a single form by id including its field definitions, board, and target list.
form_id*:string
/api/v1/form_submission_approveforms:approveApprove a pending form submission. Creates the deferred task in the form's target list, links it on the submission, marks the submission approved, and increments the form's submit count.
submission_id*:string
/api/v1/form_submission_rejectforms:approveReject a pending form submission with an optional reason. Never creates a task and never increments the form's submit count.
submission_id*:string, reason:any
/api/v1/form_submissions_listforms:readList submissions for a form, most recent first, with their status (pending | approved | rejected), submitter email, linked task id, and any rejection reason.
form_id*:string, limit:integer
/api/v1/form_updateforms:writeUpdate a form's name, description, fields, active/public state, target list, or approval settings. If fields are provided, at least one must map to 'title'.
form_id*:string, name:string, description:any, fields:array, is_active:boolean, is_public:boolean, list_id:string, requires_approval:boolean, approver_role_id:any
/api/v1/forms_listforms:readList all intake forms in the workspace with their board, target list, active/public state, submit count, and approval settings.
Visualize
/api/v1/chart_createvisualize:writeCreate a new chart with a title, optional description, and chart type (defaults to bar). Set data/config afterward with chart_update.
title:string, description:string, chart_type:bar | line | pie | donut | area | scatter | radar | heatmap | treemap | sankey
/api/v1/chart_deletevisualize:writeMove a chart to the trash (soft delete, recoverable).
chart_id*:string
/api/v1/chart_getvisualize:readGet a single chart including its type, data rows, and rendering config.
chart_id*:string
/api/v1/chart_updatevisualize:writeUpdate a chart's title, description, type, data rows, or rendering config. Pass data as an array of row objects and config as a settings object.
chart_id*:string, title:string, description:any, chart_type:bar | line | pie | donut | area | scatter | radar | heatmap | treemap | sankey, data:any, config:any
/api/v1/charts_listvisualize:readList charts in the workspace the user can see (open ones, ones they created, or ones their role/team can access). Excludes trashed charts. Returns metadata only, not the chart data/config.
limit:integer
/api/v1/flowchart_createvisualize:writeCreate a new flowchart with a title and optional description. The diagram starts empty.
title:string, description:string
/api/v1/flowchart_deletevisualize:writeMove a flowchart to the trash (soft delete, recoverable).
flowchart_id*:string
/api/v1/flowchart_getvisualize:readGet a single flowchart's title, description, and metadata. Does not return the raw Yjs/binary diagram state.
flowchart_id*:string
/api/v1/flowchart_updatevisualize:writeUpdate a flowchart's title or description.
flowchart_id*:string, title:string, description:any
/api/v1/flowcharts_listvisualize:readList flowcharts in the workspace the user can see (open ones, ones they created, or ones their role/team can access). Excludes trashed flowcharts. Returns metadata only, not the diagram contents.
limit:integer
Analytics
/api/v1/analytics_activityanalytics:readActivity-log analytics for a period: total actions, distinct active categories, and a breakdown of action counts by category.
period:24h | 7d | 30d | all
/api/v1/analytics_overviewanalytics:readWorkspace overview KPIs for a period (24h/7d/30d/all): active members, tasks completed, messages sent, and documents created.
period:24h | 7d | 30d | all
/api/v1/analytics_storageanalytics:readPer-category storage usage for the workspace in bytes: task attachments, message attachments, other, and the canonical total.
/api/v1/analytics_tasksanalytics:readTask analytics: open count, completed-in-period count, overdue count, plus a breakdown by status and by priority. Optionally scope to a single team.
period:24h | 7d | 30d | all, team_id:string
/api/v1/audit_logaudit:readRead the workspace audit log, newest first. Optionally filter by category, acting user, period (24h/7d/30d/all), or a text search over entity name and action.
category:string, user_id:string, period:24h | 7d | 30d | all, search:string, limit:integer
/api/v1/data_export_documentsanalytics:exportExport the workspace document/folder tree metadata (title, type, created/updated). Excludes trashed documents. Owner/admin only.
/api/v1/data_export_fullanalytics:exportExport a full structured snapshot of the workspace: organization, members, boards, tasks, documents, teams, and labels. Owner/admin only.
/api/v1/data_export_membersanalytics:exportExport the member roster (name, email, system role, joined date, team memberships). Owner/admin only.
/api/v1/data_export_tasksanalytics:exportExport every task in the workspace as a structured list (title, status, priority, dates, board, list, assignee, labels). Owner/admin only.
Billing
/api/v1/billing_infobilling:readRead the workspace plan, subscription state, and usage (storage bytes, member count, AI request usage). Read-only — does not start checkout.
What's not exposed
By design, a few operations are unavailable over the API: deleting a workspace, changing its slug or transferring ownership; uploading file attachments (binary upload isn't a JSON operation — you can read attachment URLs); and the binary collaborative state of documents and diagrams (you can read/write their content as structured JSON).