Mutating actions - gated by the write scope.
create_projectCreate a new project under this API key’s organisation. Returns the project plus the URL of its public board. Default boards, statuses, changelog tags, and docs section are auto-seeded.
update_projectUpdate an existing project: slug (rename; the old slug keeps working and redirects), name, tagline, description, accent_color, and/or is_public (visibility of the public board). Accepts the project slug or id. Returns the updated project plus its public board URL.
create_tagCreate a feedback tag on a project.
delete_tagDelete a feedback tag from a project. Removes the tag from all posts that used it.
set_post_tagsReplace the tags on a feedback post (full set). Pass an empty tag_ids array to clear.
create_surveyCreate an NPS or CSAT survey campaign on a project. Returns the campaign id and public response URL.
update_surveyUpdate a survey campaign (activate/deactivate and/or edit title/question). At least one field required.
delete_surveyPermanently delete a survey campaign and all of its responses from a project.
create_ticketCreate a support ticket with an opening inbound message. Defaults to status=open, priority=normal.
update_ticketUpdate a support ticket status, priority, and/or assignee. At least one field required.
reply_to_ticketAdd a message to a support ticket. Outbound replies move new/pending tickets to open.
create_postCreate a new feedback / roadmap post. Defaults to the feature-requests board and the project default status (Open).
set_publish_guardSet project-level publish guard rules. on_security / on_internal / on_embarrassing / on_minor / on_off_topic take publish, rewrite, hold, skip, or null to inherit from the org. Owners and admins can always change them; members only while the org lets projects override.
update_postEdit the title and/or body of an existing feedback or roadmap post. The new wording passes the publish guard like create_post. Use update_post_status for status, pin, lock or release estimate.
update_post_statusUpdate a post: roadmap status, pin/lock flags, and/or release estimate. Status moves accept feedback (open → planned), start work, or ship.
comment_on_postAdd a comment (or reply, via parent_id) to a post. The author is the user who created this API key.
create_commentAlias of comment_on_post. Add a comment (or reply, via parent_id) to a post. The author is the user who created this API key.
add_voteCast a vote on a post as the API key owner. Idempotent: if the user already voted, returns ok without double-counting. Authors cannot vote on their own posts.
publish_changelogCreate a changelog / Updates entry. Set publish=false to leave it as a draft. Auto-derives a slug from the title if none is given. The optional `tag` becomes the pill on the public Updates feed. The optional `translations` ({ "fi": { title, body_md } }) show readers their language; the entry keeps one slug, date and notification.
update_changelogEdit an existing changelog / Updates entry (title, body_md, tag, translations) and/or publish it with publish=true. `translations` merges per locale: a { title, body_md } value replaces that locale, null removes it, other locales stay. publish=false moves a published entry back to draft. The slug never changes. Publishing runs the same public-safety check as publish_changelog, including all translation text.
upsert_doc_pageCreate or update a documentation page (uniquely identified by project + slug + locale). Body is Markdown. Pass visibility=internal to keep the page hidden from the public site.
delete_status_subscriberRemove a status-page email subscriber (same effect as the public unsubscribe link). Pending incident emails for that subscriber are dropped via cascade.
set_status_page_enabledEnable or disable the public status page for a project (same as Settings → Status page).
create_status_incidentOpen a status-page incident (starts in investigating). Does not require the public status page to be enabled.
add_status_incident_updatePost an update on a status-page incident and advance its lifecycle (investigating → identified → monitoring → resolved).
create_status_componentAdd a component to the project status page.
update_status_componentSet the current operational status of a status-page component (for automation / CI hooks).
report_ci_statusRecord a CI run (GitHub Actions, GitLab CI, or generic) against a project. Same payload as POST /api/integrations/ci/webhook.
add_domainAdd a custom hostname to a project. Returns the TXT name and value to publish, then call verify_domain. Needs the Starter plan or higher; Free orgs get a plan_required error.
verify_domainCheck the TXT challenge for a pending custom hostname and mark it verified when the record matches. Verifying a pending hostname needs the Starter plan or higher (plan_required otherwise); verified hostnames keep working on any plan.
create_huddle_siteRegister a customer website for Huddle on-page feedback. Detects the platform when not given and returns the install snippet (or WordPress plugin steps). New sites start as draft and review-only; set status live to start collecting pins.
update_huddle_siteChange a Huddle site: status (draft, live, paused), white label branding (accent, toolbar_bg, toolbar_text, radius, label, display_name, position, logo_url, hide_branding, board; null clears a field), logo_upload (PNG, JPEG or WebP; no SVG), platform, install method, review_only (overlay only for guest links, staff and signed users), unapprove_on_new_pin, extra allowed origins (staging hosts), or the query params that make a different page. Hiding the Hollahoop credit needs the Starter plan or higher. Returns the site, the branding guests will really see (unreadable text colours are replaced) and a fresh install snippet.
reply_huddle_pinPost a staff reply on the thread behind a Huddle pin (a comment on its linked feedback post). The publish guard runs first; held or skipped replies are refused. The author is the user who created this API key.
resolve_huddle_pinMark a Huddle pin as resolved. It disappears from the live site and fires huddle.pin.resolved.
reopen_huddle_pinReopen a resolved Huddle pin so it shows on the live site again. Fires huddle.pin.reopened.
create_huddle_guest_linkCreate a time-limited guest review link for a Huddle site so a client can leave pins without an account. The review_url is shown once; only a hash is stored.
revoke_huddle_guest_linkRevoke a Huddle guest review link right away. Revoking twice is a no-op.