Skip to main content

The Canny API

Supercharge your experience! ⚡️

Written by Canny

The Canny API lets you communicate with Canny and build your own tools using Canny's data. You can read and write information to and from Canny using the API. Check out the docs below:


What you can do with the API:

Boards:

  • Fetch a board

  • List all boards

Categories:

  • Fetch a category

  • List all categories

  • Create a category

  • Delete a category

Changelog:

  • Fetch changelog entries and their corresponding details

  • Create a changelog entry

  • List all changelog entries

Comments:

  • Fetch a specific comment, or a list of comments for a Post, Board, or Author

  • Retrieve comment details, including the comment body

  • Create a new comment

  • Delete an existing comment

Companies:

  • List all companies

  • Create a company

  • Update a company

  • Delete a company

Opportunities

  • List all opportunities

Posts:

  • Fetch a specific post, or a list of posts by board or user

  • Return a list of posts. Include parameters to specify board, user, query, pagination, filtering, and sorting

  • Retrieve the details of an existing post

  • Create a new post

  • Edit a post

  • Update a post's status

  • Tag/Untag a post

  • Fetch a list of status changes, sorted chronologically

  • Create, list, and retrieve Tags

Users:

  • Find, create, and delete users

  • Vote on behalf of a user

  • Fetch a specific vote, or a list of votes associated with a Post, Board, or Author.

  • Delete votes


Webhooks

By setting up webhooks, your server will be notified of Canny events as they happen. For example, if a user creates a new post, we would send a request to your server to let you know.

You can set up webhooks for your account in the API & Webhooks settings page.

Events:

  • post.created — Occurs when a new post is created.

  • post.deleted — Occurs when a post is deleted.

  • post.jira_issue_linked — Occurs when a Jira issue is linked to a post.

  • post.jira_issue_unlinked — Occurs when a Jira issue is unlinked from a post.

  • post.status_changed — Occurs when a post's status is changed.

  • comment.created — Occurs when a new comment is created.

  • comment.deleted — Occurs when a comment is deleted.

  • vote.created — Occurs when a user votes on a post.

  • vote.deleted — Occurs when a user unvotes on a post.

Verifying webhooks

Canny webhooks are signed following the Standard Webhooks specification. Every delivery carries webhook-id, webhook-timestamp, and webhook-signature headers, so your receiver can verify the request wasn't modified or replayed, using any of the official Standard Webhooks libraries.

  • Your workspace gets its own signing secret (whsec_...) when you add your first webhook. You don't need your API key in your webhook receiver.

  • Admins with the Manage webhooks permission can view, copy, and regenerate the secret on the API & Webhooks settings page, below the webhook list.

  • After regenerating, Canny signs with both the old and new secret for 24 hours, so you can rotate with zero downtime. If a secret leaked, you can revoke the old one immediately.

  • Existing webhook integrations keep receiving the legacy canny-signature header alongside the new headers for now. See the developer docs for verification details.


AI

For Canny accounts using Canny Autopilot, we offer direct access to the API to enqueue feedback for extraction and deduplication. This allows you to programmatically send feedback to Canny for processing.


Related Articles:

Did this answer your question?