← All action domains

Projects

53 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Comment on project task

projects.add_commentwrite

Post a comment on a project task, e.g. a review note. Visible to every project member who can see the task and never sent outside the account. The task’s assignees and reviewer (not the author) get a desktop/phone notification if they have notifications switched on.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
bodystringrequiredComment text. Plain text; line breaks are kept.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.add_comment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "body": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_add_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Approve project task

projects.approve_reviewwrite

Sign a project task off as its Reviewer: records reviewed_by and reviewed_at, marks the task complete, and writes the approval with any note into the task’s thread. Only the task’s reviewer or an account admin can approve. The task’s assignees get a desktop/phone notification; nothing is sent outside the account.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
notestringoptionalOptional note recorded in the task’s comment thread with this step. Default: ""

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.approve_review \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_approve_review at https://app.chirply.io/api/mcp, same bearer token, same input.

Attach file to project task

projects.attach_task_filewriteconfirm

Upload a file of up to 10 MB and attach it to one project task. Accepts images, PDF, audio and video, and consumes the account’s file storage. Only project members who can see the task can download it; it is not listed in the project-level Files. Remove it with projects.remove_file. Sends no messages.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
namestringrequiredFile name including its supported extension.
base64stringrequiredBase64 file bytes without a data URL prefix. Decoded limit: 10 MiB.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.attach_task_file \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "base64": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_attach_task_file at https://app.chirply.io/api/mcp, same bearer token, same input.

Project chats

projects.chatsread

List linked project chats you already belong to and your notification preference for each. Does not grant access to private chats or change their existing participants.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.chats \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_chats at https://app.chirply.io/api/mcp, same bearer token, same input.

What a copy includes

projects.copy_previewreadadmin only

Count what a template or duplicate of a project would contain — board stages, task lists, tasks, subtasks, notebooks and members — and the date its task dates would count from (the project's start date, or its earliest task date). Says up front when the project is too large to copy. Requires an account admin. Reads only; sends nothing.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.copy_preview \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_copy_preview at https://app.chirply.io/api/mcp, same bearer token, same input.

Create project

projects.createwriteadmin only

Create a project with a General task list and To do, In progress and Done board stages. Adds the creating admin as a project member; other members are selected explicitly later. Requires an account admin. Sends no notifications and does not update Teamwork.

Parameters

FieldTypeRequiredDescription
namestringrequiredProject name.
descriptionstringoptionalWhat this project is for. Default: ""

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.create \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_create at https://app.chirply.io/api/mcp, same bearer token, same input.

New project from template

projects.create_from_templatewriteadmin only

Create a new project from a project template: its board stages, task lists, tasks, subtasks and notebooks, all open, with task dates counted from start_date. The creating admin becomes a member; people saved in the template join only if they are still in the account and already have Projects, so no one gains access. Written in one step — a failure creates nothing. Optionally linked to a deal. Requires an account admin; sends no notifications.

Parameters

FieldTypeRequiredDescription
template_idstring (uuid)requiredThe project template ID in this account.
namestringrequiredName of the new project.
descriptionstringoptionalWhat the new project is for.
start_datestring (date)requiredThe new project's start date, YYYY-MM-DD. Task dates are placed this many days from it as in the template.
deal_idstring (uuid)optionalLink the new project to this deal in the account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.create_from_template \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "start_date": "2026-09-17"
  }'
Test with your API key

Over MCP the same operation is the tool projects_create_from_template at https://app.chirply.io/api/mcp, same bearer token, same input.

Create task list

projects.create_listwrite

Create a task list inside a project you belong to. The list is visible to existing project members. Does not add members, send notifications or update Teamwork.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
namestringrequiredTask list name.
descriptionstringoptionalOptional purpose of this task list. Default: ""

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.create_list \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_create_list at https://app.chirply.io/api/mcp, same bearer token, same input.

Add board column

projects.create_stagewrite

Add a board column (stage) to a project, e.g. Blocked or Ready for Review. It is added on the right unless after_id names the column it should follow. Any project member can add columns; up to 30 per project. Changes the board every project member sees; sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
namestringrequiredColumn name shown at the top of the board, e.g. Blocked or Ready for Review. Unique per project, ignoring case.
after_idstring (uuid) (or null)optionalPut the new column immediately after this existing column. Omit to add it at the right.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.create_stage \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_create_stage at https://app.chirply.io/api/mcp, same bearer token, same input.

Create project tag

projects.create_tagwrite

Add a tag to a project so it can be applied to its tasks. Names are unique per project ignoring case; creating one that already exists returns it unchanged. Sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
namestringrequiredTag label shown on task cards. Unique per project, ignoring case.
color"slate" | "blue" | "teal" | "green" | "amber" | "orange" | … 4 moreoptionalTag swatch: a palette key (slate, blue, teal, green, amber, orange, red, pink, purple, indigo), readable in light and dark themes. Default: "slate"

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.create_tag \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_create_tag at https://app.chirply.io/api/mcp, same bearer token, same input.

Project summary

projects.dashboardread

Read full-project task totals and assignment counts, including subtasks. Applies project membership, private-list and private-task restrictions. Reads only and sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
todaystring (date)requiredViewer-local calendar date, YYYY-MM-DD, used to classify overdue and upcoming tasks.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.dashboard \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "today": "2026-09-17"
  }'
Test with your API key

Over MCP the same operation is the tool projects_dashboard at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete project task comment

projects.delete_commentwriteconfirm

Permanently delete an entry from a project task’s thread. Authors can delete their own comments; account admins can delete any entry, including recorded review decisions. Cannot be undone. Sends no notifications.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe comment ID to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.delete_comment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_delete_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete notebook

projects.delete_notebookwriteconfirm

Delete a project notebook. It disappears for everyone in the project, along with its history view; the content and versions stay stored and can be recovered on request to support. Only the notebook's creator or an account admin can do this. Sends no notifications.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project notebook ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.delete_notebook \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_delete_notebook at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete project tag

projects.delete_tagwriteconfirm

Delete a project tag and take it off every task in the project that carries it. The tasks themselves are kept. Cannot be undone. Sends no notifications.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project tag ID to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.delete_tag \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_delete_tag at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete template

projects.delete_templatewriteconfirmadmin only

Permanently delete a project template. Projects already created from it are not affected. Any deal template set to create a project from it stops creating projects. Cannot be undone. Requires an account admin; sends nothing.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project template ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.delete_template \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_delete_template at https://app.chirply.io/api/mcp, same bearer token, same input.

All projects

projects.directoryread

Read the project directory and whether the caller can create projects. Members see only their projects; account admins see all. Sends no notifications.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.directory \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool projects_directory at https://app.chirply.io/api/mcp, same bearer token, same input.

Download file

projects.download_fileread

Read a private project file (or task attachment) after checking current project and task access. Returns file metadata and base64 bytes for API/MCP clients; the URL requires a signed-in browser session.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredProject file ID.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.download_file \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_download_file at https://app.chirply.io/api/mcp, same bearer token, same input.

Duplicate project

projects.duplicatewriteadmin only

Create a copy of a project: its board stages, task lists, tasks, subtasks and notebooks, all reopened. Dates stay the same unless start_date is given, which shifts every date by the same number of days. Comments, files, completion state, chat links and Teamwork ids are not copied; the original is unchanged. Members are copied only with include_people, and only people who already have Projects. Written in one step — a failure creates nothing. Requires an account admin; sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
namestringrequiredName of the copy.
start_datestring (date) (or null)optionalShift all dates so the copy starts on this date, YYYY-MM-DD. Omit to keep every date as it is.
include_peoplebooleanoptionalCopy project members and task assignees. Default: true

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.duplicate \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_duplicate at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit project task comment

projects.edit_commentwrite

Rewrite a comment you posted on a project task. Only its author can edit it; review steps (requested, approved, sent back) are task history and cannot be edited. The thread marks it edited and the earlier text is not kept. Sends no notifications.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe comment ID.
bodystringrequiredThe new comment text.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.edit_comment \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "body": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_edit_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Projects for this deal

projects.for_dealread

List the projects linked to a deal — for example the one a deal template created — that the caller can open. Members see only projects they belong to. Reads only.

Parameters

FieldTypeRequiredDescription
deal_idstring (uuid)requiredThe deal ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.for_deal \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "deal_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_for_deal at https://app.chirply.io/api/mcp, same bearer token, same input.

Open task or notebook

projects.get_itemread

Read the full content of one project task or notebook after checking membership and item privacy.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task or notebook ID in this account.
kind"tasks" | "notebooks"requiredRead project tasks or project notebooks.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.get_item \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "kind": "tasks"
  }'
Test with your API key

Over MCP the same operation is the tool projects_get_item at https://app.chirply.io/api/mcp, same bearer token, same input.

Projects

projects.listread

List projects this caller belongs to. Account administrators can view all projects. Reads only; sends no notifications.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool projects_list at https://app.chirply.io/api/mcp, same bearer token, same input.

Project files

projects.list_filesread

List private project files, 50 at a time. Requires project access and sends no messages.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
offsetintegeroptionalNumber of files to skip. Default: 0

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_files \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_files at https://app.chirply.io/api/mcp, same bearer token, same input.

Tasks and notebooks

projects.list_itemsread

Read a paginated project task or notebook list, optionally filtered by status, board column, task list, tag or reviewer. Preserves project membership, private task lists and individual item restrictions. Task rows include their tags and review fields (reviewer_id, review_requested_at, reviewed_at, reviewed_by).

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
kind"tasks" | "notebooks"requiredRead project tasks or project notebooks.
parent_source_idstring (or null)optionalFilter children of this source task ID (or native parent ID). Null selects top-level tasks; omission includes subtasks.
offsetintegeroptionalNumber of visible records to skip. Default: 0
limitintegeroptionalMaximum records to return. Default: 50
searchstringoptionalSearch titles.
status"all" | "open" | "completed"optionalFilter tasks by completion status.
stage_idstring (uuid)optionalFilter tasks by board stage.
list_idstring (uuid)optionalFilter tasks by task list.
tagstringoptionalFilter tasks carrying this project tag (exact name, as projects.list_tags returns it).
reviewer_id"me" | string (uuid)optionalFilter tasks whose Reviewer is this user ID, or "me" for the signed-in person (Tasks I review).

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_items \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "kind": "tasks"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_items at https://app.chirply.io/api/mcp, same bearer token, same input.

Project reviewer choices

projects.list_reviewersread

List the project members who can be named Reviewer on its tasks — members who can sign in and have Projects access — with their user IDs, plus the caller’s own user ID (null for an API key). Reads only.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_reviewers \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_reviewers at https://app.chirply.io/api/mcp, same bearer token, same input.

Project tags

projects.list_tagsread

List a project’s task tags and their colours, alphabetically — the labels its tasks carry and the board can filter by (projects.list_items tag). Reads only.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_tags \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_tags at https://app.chirply.io/api/mcp, same bearer token, same input.

Project task attachments

projects.list_task_attachmentsread

List the files and links attached to one project task. Files are private: signed-in project members who can see the task download them from their url, and API/MCP clients read them with projects.download_file. Links are web addresses with optional labels. Each entry says whether the caller may remove it. Reads only.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_task_attachments \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_task_attachments at https://app.chirply.io/api/mcp, same bearer token, same input.

Project task comments

projects.list_task_commentsread

Read a project task’s comment thread, oldest first — discussion plus the review requests, approvals and send-back notes recorded against the task. Each entry includes its author, time and whether the caller may edit or delete it. Requires access to the task (private tasks and private task lists stay hidden). Reads only.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
offsetintegeroptionalNumber of entries to skip. Default: 0
limitintegeroptionalMaximum entries to return. Default: 100

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.list_task_comments \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_list_task_comments at https://app.chirply.io/api/mcp, same bearer token, same input.

Project tasks I review

projects.my_reviewsread

For each project the signed-in person belongs to, count the tasks that name them as Reviewer: in total, still open, and waiting on their decision now. Powers “Projects I review”. Needs a signed-in person — an API key has no reviews of its own; filter projects.list_items by reviewer_id instead. Reads only.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.my_reviews \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool projects_my_reviews at https://app.chirply.io/api/mcp, same bearer token, same input.

Notebook history

projects.notebook_historyread

List a notebook's saved versions, newest first: who saved each and when, starting with the current one. Up to 100 earlier versions are kept per notebook. Follows the notebook's own privacy — a locked notebook's history is visible only to its access list and account admins. Reads only.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project notebook ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.notebook_history \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_notebook_history at https://app.chirply.io/api/mcp, same bearer token, same input.

View notebook version

projects.notebook_versionread

Read one earlier version of a notebook in full: its title, description, content and who saved it when. Follows the notebook's own privacy. Reads only.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe notebook version ID from Notebook history.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.notebook_version \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_notebook_version at https://app.chirply.io/api/mcp, same bearer token, same input.

Open project

projects.overviewread

Read a project, its visible task lists, board stages and existing project members. Membership and private list restrictions apply.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.overview \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_overview at https://app.chirply.io/api/mcp, same bearer token, same input.

Remove file

projects.remove_filewriteconfirm

Remove a project file, or a file attached to one task, and stop its downloads. Only its uploader or an account admin can do this. The stored bytes are retained for recovery; sends no messages.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredProject file ID to remove.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.remove_file \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_remove_file at https://app.chirply.io/api/mcp, same bearer token, same input.

Remove board column

projects.remove_stagewriteconfirm

Remove a board column from a project. Every task in it — including private tasks the caller cannot see — moves to move_to_id, or to Unassigned when that is null, in the same step; no task is deleted. The column itself cannot be restored except by adding it again. Sends no notifications.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
idstring (uuid)requiredThe column (stage) ID to remove.
move_to_idstring (uuid) (or null)requiredColumn that receives its tasks, or null to leave them Unassigned.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.remove_stage \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "move_to_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_remove_stage at https://app.chirply.io/api/mcp, same bearer token, same input.

Reorder board columns

projects.reorder_stageswrite

Set the left-to-right order of a project’s board columns. Pass every column ID exactly once, in the new order. Changes the board order every project member sees; moves no tasks and sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
idsarray of (string (uuid))requiredEvery column ID in this project, in the new left-to-right order.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.reorder_stages \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "ids": [
      "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
    ]
  }'
Test with your API key

Over MCP the same operation is the tool projects_reorder_stages at https://app.chirply.io/api/mcp, same bearer token, same input.

Request project task review

projects.request_reviewwrite

Ask a project task’s Reviewer to review it now. Records the request and optional note in the task’s thread and sends the reviewer a task_review_requested desktop/phone notification if they have notifications on. Needs a reviewer and no review already pending. Nothing is sent outside the account.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
notestringoptionalOptional note recorded in the task’s comment thread with this step. Default: ""

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.request_review \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_request_review at https://app.chirply.io/api/mcp, same bearer token, same input.

Restore notebook version

projects.restore_notebook_versionwrite

Make an earlier version the notebook's current content. The content it replaces is kept as a version, so a restore can itself be undone. Anyone who can edit the notebook can restore it. Sends no notifications.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe notebook version ID to restore.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.restore_notebook_version \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_restore_notebook_version at https://app.chirply.io/api/mcp, same bearer token, same input.

Send project task back

projects.return_reviewwrite

Send a project task back from review with a note saying what needs to change. Clears the pending request, keeps the task open, posts the note as a comment in the task’s thread and notifies the assignees. Only the task’s reviewer or an account admin can do this; nothing is sent outside the account.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
notestringrequiredWhat needs to change. Posted as a comment on the task.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.return_review \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "note": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_return_review at https://app.chirply.io/api/mcp, same bearer token, same input.

Save project as template

projects.save_as_templatewriteadmin only

Save a project as a reusable project template: its board stages, task lists, tasks and subtasks (hierarchy, order, titles, descriptions, priority, privacy) and notebooks. Task dates are stored as days from a start date, so projects made from it get dates relative to their own start. Comments, files, completion state, chat links and Teamwork ids are never saved. Assignees and members are kept only when include_people is true. The project itself is unchanged. Requires an account admin; sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
namestringrequiredTemplate name shown in the New project picker.
descriptionstringoptionalWhat this template is for. Shown only to account admins. Default: ""
start_datestring (date) (or null)optionalThe date task dates count from, YYYY-MM-DD. Omit to use the project's start date, or its earliest task start or due date.
include_peoplebooleanoptionalKeep project members and task assignees in the template. When false, projects made from it start unassigned. Default: false

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.save_as_template \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_save_as_template at https://app.chirply.io/api/mcp, same bearer token, same input.

Save notebook

projects.save_notebookwrite

Create or edit a project notebook you can access. Preserves existing privacy. Saves content inside Chirply without notifying people or updating Teamwork.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
idstring (uuid)optionalThe task or notebook ID in this account.
titlestringrequiredNotebook title.
descriptionstringoptionalShort notebook description. Default: ""
contentstringrequiredNotebook body.
content_format"text" | "html"optionalPlain text or HTML. HTML is sanitized when rendered. Default: "text"

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.save_notebook \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example",
    "content": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_save_notebook at https://app.chirply.io/api/mcp, same bearer token, same input.

Save task

projects.save_taskwrite

Create or edit a task in a project you can access. Updates title, notes, assignment, dates, list, stage or completion in Chirply; sends no messages and does not write to Teamwork.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
idstring (uuid)optionalThe task or notebook ID in this account.
parent_idstring (uuid)optionalCreate a subtask under this existing task. Used only for new tasks; inherits parent privacy.
titlestringrequiredTask title.
descriptionstringoptionalTask notes.
status"open" | "completed"optionalTask completion state.
priority"low" | "normal" | "high" | "urgent"optionalTask urgency.
list_idstring (uuid) (or null)optionalTask list in this project, or null for no list.
stage_idstring (uuid) (or null)optionalBoard stage in this project, or null for unassigned.
due_datestring (date) (or null)optionalDue date, YYYY-MM-DD, or null.
start_datestring (date) (or null)optionalStart date, YYYY-MM-DD, or null.
assigneesobject[]optionalProject members assigned to the task.
assignees[].emailstring (email)requiredExisting project member email.
assignees[].namestringrequiredProject member display name.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.save_task \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "title": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_save_task at https://app.chirply.io/api/mcp, same bearer token, same input.

Change project member

projects.set_memberwriteconfirmadmin only

Account admins add an existing account member to a project or remove them. Adding grants Projects alongside their existing feature access. Removing also removes their seats in linked project chats. Sends no invitations or messages; other account access is preserved.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
emailstring (email)requiredExisting account member email, or an imported roster email to remove.
addbooleanrequiredTrue adds the member to this project; false removes project and linked chat membership.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.set_member \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "email": "ada@example.com",
    "add": true
  }'
Test with your API key

Over MCP the same operation is the tool projects_set_member at https://app.chirply.io/api/mcp, same bearer token, same input.

Lock notebook

projects.set_notebook_accesswrite

Lock a notebook to chosen project members, or unlock it for the whole project. Account admins always keep access, and a creator who locks their own notebook stays on its list. Only the notebook's creator or an account admin can change this. Sends no notifications.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project notebook ID in this account.
is_privatebooleanrequiredTrue locks the notebook to access_emails; false opens it to every project member.
access_emailsarray of (string (email))optionalProject members who may open a locked notebook. Ignored when unlocking. Default: []

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.set_notebook_access \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "is_private": true
  }'
Test with your API key

Over MCP the same operation is the tool projects_set_notebook_access at https://app.chirply.io/api/mcp, same bearer token, same input.

Star project

projects.set_starwrite

Star or unstar a project for the signed-in person, which floats it to the top of their own projects list. The star is PRIVATE: it changes nobody else's ordering and nobody else can see it. Acts as the signed-in person, so an API key cannot use it. Sends no notifications and does not write to Teamwork.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe Chirply project ID in this account.
starredbooleanrequiredTrue to star the project, false to remove the star. Repeating the same value is a no-op rather than an error.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.set_star \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "starred": true
  }'
Test with your API key

Over MCP the same operation is the tool projects_set_star at https://app.chirply.io/api/mcp, same bearer token, same input.

Set project task reviewer

projects.set_task_reviewerwrite

Name the Reviewer of a project task — the one project member who signs it off — or clear it with null. A private task’s reviewer must be able to see it. Changing the reviewer resets any pending request and earlier approval. Sends no notification; projects.request_review asks them.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
reviewer_idstring (uuid) (or null)requiredUser ID from projects.list_reviewers, or null to clear the reviewer.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.set_task_reviewer \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "reviewer_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_set_task_reviewer at https://app.chirply.io/api/mcp, same bearer token, same input.

Tag project task

projects.set_task_tagswrite

Replace a project task’s tags with this list; an empty list removes them all. Names the project does not have yet are added to it in grey. Tags show on the task’s board card and list row. Sends no notifications.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe project task ID (from projects.list_items).
tagsstring[]requiredThe complete set of tag names the task should carry, up to 20.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.set_task_tags \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "tags": [
      "example"
    ]
  }'
Test with your API key

Over MCP the same operation is the tool projects_set_task_tags at https://app.chirply.io/api/mcp, same bearer token, same input.

Project templates

projects.templatesreadadmin only

List the account's project templates with what each contains (stages, task lists, tasks, subtasks, notebooks, members) and the start date its dates count from. Requires an account admin. Reads only.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.templates \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool projects_templates at https://app.chirply.io/api/mcp, same bearer token, same input.

Rename board column

projects.update_stagewrite

Rename one of a project’s board columns. Its tasks stay in it, and every project member sees the new name. Sends no notifications.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
idstring (uuid)requiredThe column (stage) ID from projects.overview.
namestringrequiredColumn name shown at the top of the board, e.g. Blocked or Ready for Review. Unique per project, ignoring case.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.update_stage \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_update_stage at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit project tag

projects.update_tagwrite

Rename or recolour a project tag. A rename changes it on every task in the project that carries it, at once. Sends no notifications.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project tag ID.
namestringoptionalTag label shown on task cards. Unique per project, ignoring case.
color"slate" | "blue" | "teal" | "green" | "amber" | "orange" | … 4 moreoptionalTag swatch: a palette key (slate, blue, teal, green, amber, orange, red, pink, purple, indigo), readable in light and dark themes.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.update_tag \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_update_tag at https://app.chirply.io/api/mcp, same bearer token, same input.

Rename template

projects.update_templatewriteadmin only

Rename a project template or change its description. Its saved contents, the projects already made from it and the deal templates that use it are unchanged. Requires an account admin; sends nothing.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe project template ID in this account.
namestringoptionalNew template name.
descriptionstringoptionalNew template description.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.update_template \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool projects_update_template at https://app.chirply.io/api/mcp, same bearer token, same input.

Upload file

projects.upload_filewriteconfirm

Upload a private project file up to 10 MB. Accepts images, PDF, audio and video; consumes file storage. Project members can download it. Sends no messages.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
project_idstring (uuid)requiredThe project in the active account.
namestringrequiredFile name including its supported extension.
base64stringrequiredBase64 file bytes, without a data URL prefix. Decoded limit: 10 MiB.

Example

curl -X POST https://app.chirply.io/api/v1/actions/projects.upload_file \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11",
    "name": "Example",
    "base64": "example"
  }'
Test with your API key

Over MCP the same operation is the tool projects_upload_file at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=projects — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.