← All action domains

Tasks

23 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.

Tag a task

tasks.add_tagwrite

Put an existing tag on a task. Already-tagged is not an error — the pairing is idempotent.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe task this belongs to.
tag_idstring (uuid)requiredThe tag.

Example

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

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

Approve a task review

tasks.approve_reviewwrite

Sign off a task whose review is waiting — the Approve button. Records who approved and when (reviewed_by, reviewed_at) and marks the task done, which fires the 'task completed' automation trigger like any completion. Only the task's Reviewer or an account owner/admin may approve. An optional note is posted on the task's comment thread. Notifies nobody.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task being approved.
notestringoptionalOptional sign-off note, posted as a task comment.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.approve_review \
  -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 tasks_approve_review at https://app.chirply.io/api/mcp, same bearer token, same input.

Attach a file to a task

tasks.attachwrite

Attach a file that is already in the workspace's media library to a task — a screenshot or screen recording that explains what the task is about. Upload the file first; this records the link. Attaching the same file twice is not an error.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe task this belongs to.
asset_idstring (uuid)requiredId of a file already in the workspace's media library. Upload it first (POST /api/assets/upload or the assets capabilities), then attach it by id.

Example

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

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

Comment on a task

tasks.commentwrite

Post a comment on a task. Visible to everyone in the workspace who can see the task; it is not sent to the contact or to anyone outside the workspace.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe task this belongs to.
bodystringrequiredThe comment text. Plain text; line breaks are preserved.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.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 tasks_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Mark a task done

tasks.completewrite

Mark a task complete (or reopen it with done=false). Same as ticking the checkbox in the app.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task to mark.
donebooleanoptionalfalse reopens the task. Default: true

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.complete \
  -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 tasks_complete at https://app.chirply.io/api/mcp, same bearer token, same input.

Create a task

tasks.createwrite

Create a task. Only a title is required; link it to a contact or deal to have it show on that record's timeline, and name a Reviewer to have someone sign it off. Creating it notifies nobody.

Parameters

FieldTypeRequiredDescription
titlestringrequiredWhat needs doing. Shown as the task's name.
descriptionstringoptionalLonger notes. Free text, no formatting.
status"open" | "done" | "canceled"optionalopen = still to do, done = finished, canceled = abandoned. Default: "open"
priority"low" | "normal" | "high" | "urgent"optionalHow urgent this is. Sorts the list and colours the badge. Default: "normal"
due_atstring (date-time)optionalWhen it's due, as an ISO 8601 timestamp, e.g. 2026-09-01T17:00:00Z.
assignee_idstring (uuid)optionalId of the team member who owns this task.
reviewer_idstring (uuid)optionalId of the account member who signs this task off (its Reviewer). Must be a current team member — see team.list_members. Naming a Reviewer notifies nobody; tasks.request_review does.
contact_idstring (uuid)optionalContact this task relates to. Puts it on that contact's timeline.
deal_idstring (uuid)optionalDeal this task relates to. Puts it on that deal.

Example

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

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

Create a task tag

tasks.create_tagwrite

Create a task tag. Names are unique per workspace ignoring case, so creating one that already exists returns the existing tag rather than a duplicate.

Parameters

FieldTypeRequiredDescription
namestringrequiredThe tag's label, shown on the chip. Unique per workspace, ignoring case.
color"slate" | "blue" | "teal" | "green" | "amber" | "orange" | … 4 moreoptionalThe tag's swatch. A palette key, not a hex value — each swatch has a light and a dark rendering, so the tag stays readable in both themes. Default: "slate"

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.create_tag \
  -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 tasks_create_tag at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a task

tasks.deletewriteconfirm

Permanently delete a task. This cannot be undone.

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 task to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.delete \
  -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 tasks_delete at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a task comment

tasks.delete_commentwriteconfirm

Permanently delete a comment from a task's thread. This cannot be undone.

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 to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.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 tasks_delete_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a task tag

tasks.delete_tagwriteconfirm

Permanently delete a task tag. It comes off every task that carries it. The tasks themselves are not touched. This cannot be undone.

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 tag.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.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 tasks_delete_tag at https://app.chirply.io/api/mcp, same bearer token, same input.

Remove an attachment from a task

tasks.detachwrite

Take a file off a task. The file STAYS in the workspace's media library — this removes the link only, so nothing is destroyed and any other task using it keeps it.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe attachment link to remove.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.detach \
  -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 tasks_detach at https://app.chirply.io/api/mcp, same bearer token, same input.

Open a task

tasks.getread

Fetch one task by id, with all of its fields.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task's id.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.get \
  -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 tasks_get at https://app.chirply.io/api/mcp, same bearer token, same input.

List tasks

tasks.listread

List the organization's tasks, newest first. Optionally filter by status, priority, assignee, Reviewer ("Tasks I review"), whether a review is waiting, or the contact/deal a task hangs off, and search titles and descriptions. Each task carries its review columns: reviewer_id, review_requested_at, reviewed_at, reviewed_by.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
status"open" | "done" | "canceled"optionalOnly tasks in this status.
priority"low" | "normal" | "high" | "urgent"optionalOnly tasks at this priority.
assignee_idstring (uuid)optionalOnly tasks assigned to this user.
reviewer_idstring (uuid) | "me"optionalOnly tasks this user reviews — a user id, or "me" for the signed-in person (the Tasks screen's "Tasks I review"). An API key has no "me"; pass an id.
awaiting_reviewbooleanoptionaltrue = only open tasks whose review was requested and not yet approved or sent back. Omit (or false) for every task.
contact_idstring (uuid)optionalOnly tasks linked to this contact.
deal_idstring (uuid)optionalOnly tasks linked to this deal.
querystringoptionalText to match in title or description.

Example

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

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

List task attachments

tasks.list_attachmentsread

List the files attached to a task. Each one points at a row in the workspace's media library, which holds the file's name, type and public URL.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
task_idstring (uuid)requiredThe task this belongs to.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.list_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 tasks_list_attachments at https://app.chirply.io/api/mcp, same bearer token, same input.

List task comments

tasks.list_commentsread

Read a task's comment thread, oldest first.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
task_idstring (uuid)requiredThe task this belongs to.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.list_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 tasks_list_comments at https://app.chirply.io/api/mcp, same bearer token, same input.

List task tags

tasks.list_tagsread

List every task tag defined in this workspace, with its colour. These are the labels the task board groups and filters by.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.list_tags \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

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

Untag a task

tasks.remove_tagwrite

Take a tag off a task. The tag itself, and every other task carrying it, are unaffected.

Parameters

FieldTypeRequiredDescription
task_idstring (uuid)requiredThe task this belongs to.
tag_idstring (uuid)requiredThe tag.

Example

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

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

Request review of a task

tasks.request_reviewwrite

Mark an open task as ready for its Reviewer to sign off — the Request review button. Stamps review_requested_at, clears any earlier decision, and sends the Reviewer an in-app notification (desktop/phone push to that one team member; nothing leaves the team). The task needs a Reviewer first (tasks.set_reviewer). An optional note is posted on the task's comment thread.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task that is ready for review.
notestringoptionalOptional message for the Reviewer, posted as a task comment.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.request_review \
  -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 tasks_request_review at https://app.chirply.io/api/mcp, same bearer token, same input.

Send a task back from review

tasks.return_reviewwrite

Return a task whose review is waiting with changes requested — the Send back button. Clears the review request, keeps the task open, and posts the note on the task's comment thread so the assignee sees what to fix. Only the task's Reviewer or an account owner/admin may send it back. Notifies nobody.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task being sent back.
notestringrequiredWhat needs to change. Required; posted as a task comment.

Example

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

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

Set a task's reviewer

tasks.set_reviewerwrite

Name the account member who signs this task off, or clear it with null. The Reviewer must be a current team member. If a review is already waiting it moves to the new Reviewer, who gets an in-app notification; clearing the Reviewer withdraws a waiting review. Sends nothing outside the team.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task.
reviewer_idstring (uuid) (or null)requiredThe Reviewer's user id (a current team member — see team.list_members), or null to clear it.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.set_reviewer \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "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 tasks_set_reviewer at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit a task

tasks.updatewrite

Update any field on an existing task. Omitted fields are left alone. Setting status to 'done' stamps the completion time automatically. Changing reviewer_id behaves exactly like tasks.set_reviewer (a review already waiting moves to the new Reviewer, who is notified).

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe task to edit.
titlestringoptionalWhat needs doing. Shown as the task's name.
descriptionstring (or null)optionalLonger notes. Free text, no formatting.
status"open" | "done" | "canceled"optionalopen = still to do, done = finished, canceled = abandoned.
priority"low" | "normal" | "high" | "urgent"optionalHow urgent this is. Sorts the list and colours the badge.
due_atstring (date-time) (or null)optionalWhen it's due, as an ISO 8601 timestamp, e.g. 2026-09-01T17:00:00Z.
assignee_idstring (uuid) (or null)optionalId of the team member who owns this task.
reviewer_idstring (uuid) (or null)optionalId of the account member who signs this task off (its Reviewer). Must be a current team member — see team.list_members. Naming a Reviewer notifies nobody; tasks.request_review does.
contact_idstring (uuid) (or null)optionalContact this task relates to. Puts it on that contact's timeline.
deal_idstring (uuid) (or null)optionalDeal this task relates to. Puts it on that deal.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.update \
  -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 tasks_update at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit a task comment

tasks.update_commentwrite

Rewrite a comment you posted. The thread marks it as edited; the original text is not kept.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe comment to edit.
bodystringrequiredThe comment text. Plain text; line breaks are preserved.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.update_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 tasks_update_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Rename or recolour a task tag

tasks.update_tagwrite

Rename a task tag or change its colour. Every task carrying it updates at once — the tag is one record, not a copy per task.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe tag.
namestringoptionalThe tag's label, shown on the chip. Unique per workspace, ignoring case.
color"slate" | "blue" | "teal" | "green" | "amber" | "orange" | … 4 moreoptionalThe tag's swatch. A palette key, not a hex value — each swatch has a light and a dark rendering, so the tag stays readable in both themes.

Example

curl -X POST https://app.chirply.io/api/v1/actions/tasks.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 tasks_update_tag 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=tasks — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.