← All action domains

Support

19 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 a feature request

support.comment_on_featurewrite

Add a public comment to a feature request and email its author. Only requests on a board this account is on can be commented on; anything else reports as not found. Set internal=true (platform admins only) for a note nobody else sees.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe feature request to comment on.
bodystringrequiredThe comment to post.
internalbooleanoptionalPlatform admins only — an internal note, hidden from the board. Default: false

Example

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

Delete a bug report

support.delete_bug_reportwriteconfirm

Permanently delete a bug report, its whole thread, and its uploaded screenshots. Only the person who filed it, or the platform team, can do this.

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

Example

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

Delete a feature comment

support.delete_feature_commentwriteconfirm

Permanently delete one comment from a feature request, along with anything attached to it. Only its author, or the platform team, can do this.

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/support.delete_feature_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 support_delete_feature_comment at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a feature request

support.delete_feature_requestwriteconfirm

Permanently delete a feature request, its comments, its votes, and its attachments. Only the person who posted it, or the platform team, can do this.

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

Example

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

Raise a client report with Chirply

support.escalate_client_reportwriteconfirmadmin only

Raise a client's bug report with Chirply as a genuine platform fault. This opens a SEPARATE ticket between this agency and Chirply, quoting what the client wrote, and Chirply's team answers the agency on it. The client is not told, is never contacted by Chirply, and sees nothing change on their own ticket — the agency stays the only company they deal with. When Chirply finishes, an internal note lands back on the client's ticket and the agency's support desk is emailed — the client's report is NOT closed for them, because only the agency may tell their own customer anything. One escalation per client ticket; asking twice is refused. Refuses any ticket that is not on this agency's desk.

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
report_idstring (uuid)requiredThe client ticket to raise with Chirply.
notestringoptionalWhat Chirply should know: what has already been checked, how to reproduce it, anything you would tell an engineer. Read by Chirply's team, never by the client.

Example

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

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

Report a bug

support.file_bugwrite

File a support report on behalf of the signed-in user or the person who created its API credential. Right away, an AI answers whatever current Chirply help guides can answer, in the report's public thread (emailed to the reporter), quoting the guides it relies on: a plain question the guides fully answer is then resolved; anything else it answers in part stays open in the support queue for the team. Anything about money, legal or security, and reports with no question in them, get no automatic answer. The team is emailed either way. Screenshots and screen recordings can only be attached from the app.

Parameters

FieldTypeRequiredDescription
titlestringrequiredA short summary of what's broken.
bodystringrequiredWhat happened, and how to reproduce it.
severity"low" | "normal" | "high" | "critical"optionalThe reporter's read on impact. Default: "normal"
page_urlstringoptionalThe in-app path it happened on, e.g. /contacts. Off-site URLs are dropped.

Example

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

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

Open a bug report

support.get_bug_reportread

Fetch one bug report with its full reply thread. Account owners and admins may open any report filed by their team; members may open only their own. Internal platform-team notes are included only for platform admins.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe bug report's id.

Example

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

Read a client report

support.get_client_reportread

Read one bug report filed by a client of this agency, in full, with every reply on the thread. Internal notes the agency's own staff left are included; the client cannot see those. If the ticket was raised with Chirply, says where that escalation got to — `chirply_answered` means Chirply has finished and the client is still waiting to hear it from the agency. Reads only. Refuses any ticket that is not on this agency's desk.

Parameters

FieldTypeRequiredDescription
report_idstring (uuid)requiredThe ticket's id, as returned by support.list_client_reports. Must be a ticket this agency answers.

Example

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

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

Open a feature request

support.get_feature_requestread

Fetch one feature request with its vote count and its comment thread. Only requests on a board this account is on are readable — its own public-board posts, or the private board of the white-label agency it belongs to; anything else reports as not found. Internal platform-team comments are included only for platform admins.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe feature request's id.

Example

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

List bug reports

support.list_bug_reportsread

List bug reports newest first, with reply and attachment counts. Account owners and admins see every report filed by their team; members see only reports they filed. Optionally filter by status, keep only tickets awaiting a reply from the platform team, or search titles and descriptions.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
status"open" | "in_progress" | "needs_info" | "resolved" | "closed" | "wont_fix"optionalOnly tickets in this status.
open_onlybooleanoptionaltrue hides resolved, closed, and won't-fix tickets. Default: false
awaiting_replybooleanoptionaltrue keeps only tickets whose latest message came from the reporter — the ones waiting on a reply from the platform team. Pair with open_only to match the admin queue's Awaiting-reply view. Default: false
querystringoptionalText to match in the title or description.

Example

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

Client ideas

support.list_client_ideasread

List the feature requests this agency's client accounts have posted to the agency's OWN board — what their clients are asking THEM to build, sorted by how many clients voted for it. A white-label agency's clients post here rather than to Chirply's public board, so nobody outside the agency's own accounts can see these. Reads only. Not to be confused with support.list_feature_requests, which is the board this agency posts to as Chirply's customer.

Parameters

FieldTypeRequiredDescription
status"open" | "under_review" | "planned" | "in_progress" | "shipped" | "declined"optionalFilter to one status. Omit for all of them. 'open' is the useful one: ideas the agency has not yet answered.
limitintegeroptionalHow many to return, most-voted first. Maximum 200. Default: 50

Example

curl -X POST https://app.chirply.io/api/v1/actions/support.list_client_ideas \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "open",
    "limit": 50
  }'
Test with your API key

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

Client reports

support.list_client_reportsread

List the bug reports filed by this agency's client accounts — the tickets the agency answers itself, because its clients bought a white-labelled product and have never heard of Chirply. Shows each ticket's title, status, severity, which client account it came from, who is waiting on whom, whether it has already been raised with Chirply, and whether Chirply has since ANSWERED that escalation — `chirply_answered` marks a ticket where the fix is done but the client has still been told nothing, because Chirply never contacts them. Reads only. This is the agency's own desk; it never returns tickets belonging to another agency, or the agency's own tickets with Chirply.

Parameters

FieldTypeRequiredDescription
status"active" | "awaiting" | "all"optionalWhich slice of the desk: 'active' for everything not resolved, closed or won't-fix (the default); 'awaiting' for the ones where the client spoke last and is waiting on a reply; 'all' for the complete history including closed tickets. Default: "active"
limitintegeroptionalHow many tickets to return, newest first. Maximum 200. Default: 50

Example

curl -X POST https://app.chirply.io/api/v1/actions/support.list_client_reports \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "active",
    "limit": 50
  }'
Test with your API key

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

List feature requests

support.list_feature_requestsread

List the feature-request board this account is on, with vote and comment counts. Which board that is depends on the account: a client of a white-label agency is on that agency's own private board, and everyone else is on the platform-wide public board, which is shared by every account on purpose and carries no customer data — only a poster's display name. A white-label agency can additionally pass board=clients to read the board its own clients post to. Never returns another agency's board.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
status"open" | "under_review" | "planned" | "in_progress" | "shipped" | "declined"optionalOnly requests in this status.
sort"top" | "new" | "discussed"optionaltop = most upvoted, new = newest, discussed = most commented. Default: "top"
board"mine" | "clients"optionalmine = the board this account posts to. clients = the private board this account's own clients post to, which only a white-label agency has. Default: "mine"

Example

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

Send a client idea to Chirply

support.promote_client_ideawriteconfirmadmin only

Send one of this agency's client ideas up to Chirply as a request for the platform itself. Opens a SEPARATE request on Chirply's public board, authored by this agency, quoting what the client wrote and carrying the number of client accounts that voted for it — that vote count is the argument, so it travels with the request. The client is not told, is never contacted by Chirply, and their own post is unchanged. One promotion per idea; asking twice is refused. Refuses any request that is not on this agency's board.

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
request_idstring (uuid)requiredThe client idea to send up, from support.list_client_ideas.
notestringoptionalContext for Chirply: why this matters to your clients, what you would want it to do. Read by Chirply, never by the client.

Example

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

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

Reply on a bug report

support.reply_to_bugwrite

Post a reply on a bug report's thread. Account owners and admins may reply to any report filed by their team; members may reply only to their own. A platform admin's public reply emails the reporter; a reporter's reply emails the platform team and, if the ticket was resolved or closed, automatically reopens it. Set internal=true (platform admins only) to leave a note the reporter never sees.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe bug report to reply on.
bodystringrequiredThe message to post.
internalbooleanoptionalPlatform admins only — an internal note, hidden from the reporter. Default: false

Example

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

Reply to a client report

support.reply_to_client_reportwriteconfirmadmin only

Post a reply on a client's bug report. A public reply is SENT TO A REAL PERSON — the client who filed it gets an email, branded as this agency, and sees the message in their own account. An internal note is visible only to this agency's staff and is never shown to the client. Refuses any ticket that is not on this agency's desk.

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
report_idstring (uuid)requiredThe ticket to reply on.
bodystringrequiredThe reply. On a public reply this text is emailed verbatim to the client who filed the ticket, so write it as something a customer reads.
internalbooleanoptionalTrue for a private note visible only to this agency's staff — nothing is emailed and the client never sees it. False (the default) replies to the client and emails them. Default: false

Example

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

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

Request a feature

support.request_featurewrite

Post a feature request, and upvote it for its author. Posted on behalf of the signed-in user — or, for an API key, OAuth connection, or installed app, the person who created that credential. If you are an agent and the platform is missing something you need, this is the right way to ask for it — but search support.list_feature_requests first and upvote an existing request instead of posting a duplicate. It lands on whichever board this account posts to — the platform-wide public board, where every user on the platform can see and vote on it, or, for a client of a white-label agency, that agency's own private board. The team that answers that board is emailed.

Parameters

FieldTypeRequiredDescription
titlestringrequiredA short name for the idea.
bodystringrequiredWhat you'd like, and why.

Example

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

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

Update a client report

support.set_client_report_statuswriteconfirmadmin only

Change the status and/or severity of a client's bug report on this agency's desk. CHANGING THE STATUS EMAILS THE CLIENT who filed it, branded as this agency — marking something resolved tells a real person their problem is fixed, so do not use it to tidy a queue. Refuses any ticket that is not on this agency's desk.

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
report_idstring (uuid)requiredThe ticket to update.
status"open" | "in_progress" | "needs_info" | "resolved" | "closed" | "wont_fix"optionalThe new status. Changing it emails the client. 'needs_info' asks them for more detail; 'resolved' tells them it is fixed; 'wont_fix' tells them it will not be.
severity"low" | "normal" | "high" | "critical"optionalThe new severity. This is the agency's own triage and is not emailed to anyone.

Example

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

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

Upvote a feature request

support.vote_featurewrite

Upvote a feature request, or take your vote back. Only requests on a board this account is on can be voted on; anything else reports as not found. Votes are one per person and drive that board's “most wanted” ranking, which is how the team behind it decides what to build next.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe feature request to vote on.
votedbooleanoptionalfalse removes your upvote. Default: true

Example

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