$ curl https://canny.io/api/v1/boards/list \
-d apiKey=YOUR_API_KEY
Pagination
Endpoints which list many results will have a limit on the number of results that can be returned, and pagination is the mechanism to retrieve results beyond that limit. To fetch more results, make a subsequent request with the necessary pagination parameters.
There are two approaches to pagination in the Canny API:
- Cursor: Request returns a cursor, which is used to fetch the next page.
- Skip: The skip parameter allows you to bypass the first N results.
Not all endpoints use the same approach, review the documentation for each endpoint to understand how to paginate.
$ curl https://canny.io/api/v2/users/list \
-d apiKey=YOUR_API_KEY \
-d cursor=NTUzYzNlZjhiOGNkY2QxNTAxYmExMjNhXzIwMjUtMDItMDRUMTY6NDA6MDcuNTQxWl8x \
-d limit=10
$ curl https://canny.io/api/v1/posts/list \
-d apiKey=YOUR_API_KEY \
-d skip=10 \
-d limit=10
{
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2017-07-15T22:11:00.000Z",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
}
https://canny.io/api/v1/boards/retrieve
POST
$ curl https://canny.io/api/v1/boards/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba1234
{
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2017-07-15T22:11:00.000Z",
"isPrivate": true,
"name": "Feature Requests",
"postCount": 123,
"privateComments": false,
"url": "https://your-company.canny.io/admin/board/feature-requests"
}
https://canny.io/api/v1/boards/list
POST
$ curl https://canny.io/api/v1/boards/list -X POST \
-d apiKey=YOUR_API_KEY
{
"boards": [{
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2025-02-22T07:37:51.465Z",
"isPrivate": true,
"name": "Feature Requests",
"postCount": 123,
"privateComments": false,
"token": "11111111-2222-3333-4444-555555555555",
"url": "https://your-company.canny.io/admin/board/feature-requests"
}, {
"id": "553c3ef8b8cdcd1501ba1238",
"created": "2025-02-22T07:37:51.465Z",
"isPrivate": false,
"name": "Bug Reports",
"postCount": 42,
"privateComments": true,
"token": "11111111-2222-3333-4444-555555555555",
"url": "https://your-company.canny.io/admin/board/bug-reports"
}]
}
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2025-02-22T07:37:51.466Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.466Z",
"name": "Example Category Name",
"parentID": "552c3ef8b8cdcd1501ba12bb",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=example-category-name"
}
https://canny.io/api/v1/categories/retrieve
POST
$ curl https://canny.io/api/v1/categories/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba12bb
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2025-02-22T07:37:51.466Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.466Z",
"name": "Example Category Name",
"parentID": "552c3ef8b8cdcd1501ba12bb",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=example-category-name"
}
https://canny.io/api/v1/categories/list
POST
$ curl https://canny.io/api/v1/categories/list -X POST \
-d apiKey=YOUR_API_KEY \
-d boardID=553c3ef8b8cdcd1501ba1234
{
"categories": [{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2025-02-22T07:37:51.467Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.467Z",
"name": "Example Category Name",
"parentID": "552c3ef8b8cdcd1501ba12bb",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=example-category-name"
}],
"hasMore": false,
}
https://canny.io/api/v1/categories/create
POST
$ curl https://canny.io/api/v1/categories/create -X POST \
-d apiKey=YOUR_API_KEY \
-d boardID=553c3ef8b8cdcd1501ba1234 \
-d name="new category" \
-d parentID=423c3ef8b8cdcd1501ba3763 \
-d subscribeAdmins=true
{
"id": "553c3ef8b8cdcd1501ba1240",
}
https://canny.io/api/v1/categories/delete
POST
$ curl https://canny.io/api/v1/categories/delete -X POST \
-d apiKey=YOUR_API_KEY \
-d categoryID=553c3ef8b8cdcd1501ba2200"
success
{
"id": "553c3ef8b8cdcd1501ba123b",
"created": "2025-02-22T07:37:51.468Z",
"labels": [],
"lastSaved": "2025-02-22T07:37:51.468Z",
"markdownDetails": "# heading\n**bold**\n[link](https://canny.io)",
"plaintextDetails": "heading\nbold\nlink",
"posts": [{
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2025",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
}],
"publishedAt": "2025-02-22T07:37:51.468Z",
"reactions": {
"like": 2
},
"scheduledFor": null,
"status": "published",
"title": "Entry title",
"types": ["new", "improved"],
"url": "https://your-company.canny.io/changelog/entry-title"
}
https://canny.io/api/v1/entries/create
POST
$ curl https://canny.io/api/v1/entries/create -X POST \
-d apiKey=YOUR_API_KEY \
-d title="Sample entry" \
-d details="Some details..." \
-d type="fixed" \
{
"id": "553c3ef8b8cdcd1501ba1240",
}
List entries
Returns a list of changelog entries. Sorted by newest.
To request translated changelog items, use the Accept-Language header in your HTTP request to specify the preferred language for the response.
- Dansk: da
- Deutsch: de
- English: en
- Español: es
- Français: fr
- Italiano: it
- Nederlands: nl
- Polski: pl
- Português (Brasil): pt
- Português (Portugal): pt-PT
- Русский: ru
- Suomi: fi
https://canny.io/api/v1/entries/list
POST
$ curl https://canny.io/api/v1/entries/list -X POST \
-d apiKey=YOUR_API_KEY
{
"hasMore": false,
"entries": [{
"id": "553c3ef8b8cdcd1501ba123b",
"created": "2025-02-22T07:37:51.470Z",
"labels": [{
"id": "553c3ef8b8cdcd1501ba8761",
"created": "2025-02-22T07:37:51.470Z",
"entryCount": 4,
"name": "Feature",
"url": "https://your-company.canny.io/admin/changelog?labels=feature"
}],
"lastSaved": "2025-02-22T07:37:51.470Z",
"markdownDetails": "# heading\n**bold**\n[link](https://canny.io)",
"plaintextDetails": "heading\nbold\nlink",
"posts": [{
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2025",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
}],
"publishedAt": "2025-02-22T07:37:51.470Z",
"reactions": {
"like": 2
},
"scheduledFor": null,
"status": "published",
"title": "Entry title",
"types": ["new", "improved"],
"url": "https://your-company.canny.io/changelog/entry-title"
}]
}
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.472Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2025-02-22T07:37:51.472Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.472Z",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"internal": false,
"likeCount": 2,
"mentions": [],
"parentID": "553c3ef8b8cdcd1501ba3333",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba2234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"private": false,
"reactions": {
"like": 2
},
"value": "Some cool comment"
}
https://canny.io/api/v1/comments/retrieve
POST
$ curl https://canny.io/api/v1/comments/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba1238
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.472Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2025-02-22T07:37:51.472Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.472Z",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"internal": false,
"likeCount": 2,
"mentions": [],
"parentID": "553c3ef8b8cdcd1501ba3333",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2025",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"private": false,
"reactions": {
"like": 2
},
"value": "Some cool comment"
}
https://canny.io/api/v1/comments/list
POST
$ curl https://canny.io/api/v1/comments/list -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba2468
{
"comments": [{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.473Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2025-02-22T07:37:51.473Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2025-02-22T07:37:51.473Z",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"internal": false,
"likeCount": 2,
"mentions": [],
"parentID": "553c3ef8b8cdcd1501ba3333",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"private": false,
"reactions": {
"like": 2
},
"value": "Some cool comment"
}],
"hasMore": false
}
https://canny.io/api/v1/comments/create
POST
$ curl https://canny.io/api/v1/comments/create -X POST \
-d apiKey=YOUR_API_KEY \
-d authorID=553c3ef8b8cdcd1501ba1238 \
-d postID=553c3ef8b8cdcd1501ba1240 \
-d value="This is the comment's value"
{
"id": "553c3ef8b8cdcd1501ba2200",
}
https://canny.io/api/v1/comments/delete
POST
$ curl https://canny.io/api/v1/comments/delete -X POST \
-d apiKey=YOUR_API_KEY \
-d commentID=553c3ef8b8cdcd1501ba2200"
success
https://canny.io/api/v1/companies/list
POST
$ curl https://canny.io/api/v1/companies/list -X POST \
-d apiKey=YOUR_API_KEY \
-d search=company
{
"companies": [
{
"id": "company1",
"created": "2022-06-17T12:44:38.797Z",
"customFields": {
"number": 1,
"bool": true,
"string": "test"
},
"domain": "example.com",
"memberCount": 5,
"monthlySpend": 100.23,
"name": "company 1"
}
],
"hasMore": false
}
https://canny.io/api/v1/companies/update
POST
$ curl https://canny.io/api/v1/companies/update -X POST -d '{
"apiKey": "YOUR_API_KEY",
"id": "company1",
"created": "2025-02-22T07:37:51.476Z",
"customFields": {
"number": "12",
"string": "value"
"boolean": true,
},
"monthlySpend": 500.59,
"name": "company 1"}' \
-H "Content-Type: application/json"
{
"id": "company1"
}
https://canny.io/api/v1/companies/delete
POST
$ curl https://canny.io/api/v1/companies/delete -X POST \
-d apiKey=YOUR_API_KEY \
-d companyID=company1"
success
salesforce
{
"id": "61a942ed07bfe27b60109ee0",
"closed": true,
"name": "Opportunity Name",
"postIDs": ["61a942ed07bfe27b60109eaf", "61a942ed07bfe27b60109ebc"],
"salesforceOpportunityID": "0063k00000zx6BkAAI",
"value": 1999.99,
"won": true
}
https://canny.io/api/v1/opportunities/list
POST
$ curl https://canny.io/api/v1/opportunities/list -X POST \
-d apiKey=YOUR_API_KEY
{
"hasMore": false,
"opportunities": [{
"id": "61a942ed07bfe27b60109ee0",
"closed": true,
"name": "Opportunity Name",
"postIDs": ["61a942ed07bfe27b60109eaf", "61a942ed07bfe27b60109ebc"],
"salesforceOpportunityID": "0063k00000zx6BkAAI",
"value": 1999.99,
"won": true
}]
}
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-20T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2017-07-15T22:11:00.000Z",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 10,
"created": "2017-08-03T22:11:00.000Z",
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"owner": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-20T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"score": 72,
"status": "in progress",
"tags": [{
"id": "553c3ef8b8cdcd1501ba2234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
https://canny.io/api/v1/posts/retrieve
POST
$ curl https://canny.io/api/v1/posts/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba1238
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2025-02-22T07:37:51.480Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2025-02-22T07:37:51.480Z",
"customFields": [{
"id": "553c3ef8b8cdcd1501ba2238",
"name": "priority",
"value": "high",
}],
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2025-02-22T07:37:51.480Z",
"post": {
"created":"2025-02-22T07:37:51.480Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"owner": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"score": 72,
"status": "in progress",
"statusChangedAt": "2025-02-22T07:37:51.480Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
https://canny.io/api/v1/posts/list
POST
$ curl https://canny.io/api/v1/posts/list -X POST \
-d apiKey=YOUR_API_KEY \
-d boardID=553c3ef8b8cdcd1501ba1234
{
"hasMore": true,
"posts": [{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2025-02-22T07:37:51.480Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2025-02-22T07:37:51.480Z",
"customFields": [{
"id": "553c3ef8b8cdcd1501ba2238",
"name": "priority",
"value": "high",
}],
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2025-02-22T07:37:51.480Z",
"post": {
"created":"2025-02-22T07:37:51.480Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"owner": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2025-02-22T07:37:51.480Z",
"email": "test@test.test",
"isAdmin": true,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"score": 72,
"status": "in progress",
"statusChangedAt": "2025-02-22T07:37:51.480Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
}]
}
https://canny.io/api/v1/posts/create
POST
$ curl https://canny.io/api/v1/posts/create -X POST -d '{
"apiKey": "YOUR_API_KEY",
"authorID": "553c3ef8b8cdcd1501ba1238",
"boardID": "553c3ef8b8cdcd1501ba1234",
"customFields": {
"number": 12,
"string": "value"
},
"details": "This is the post's details",
"title": "Post Title"}' \
-H "Content-Type: application/json"
{
"id": "553c3ef8b8cdcd1501ba1240",
}
https://canny.io/api/v1/posts/change_category
POST
$ curl https://canny.io/api/v1/posts/change_category -X POST \
-d apiKey=YOUR_API_KEY \
-d categoryID=523c3ef8b8cdcd1501ba123a \
-d postID=553c3ef8b8cdcd1501ba1238
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"parentID": null,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2018-06-17T22:42:37.167Z",
"post": {
"created":"2018-06-17T22:42:00.797Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
{"error":"invalid post id"}
https://canny.io/api/v1/posts/change_status
POST
$ curl https://canny.io/api/v1/posts/change_status -X POST \
-d apiKey=YOUR_API_KEY \
-d changerID=553c3ef8b8cdcd1501ba123a \
-d postID=553c3ef8b8cdcd1501ba1238 \
-d shouldNotifyVoters=true \
-d status="in progress"
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"parentID": null,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2018-06-17T22:42:37.167Z",
"post": {
"created":"2018-06-17T22:42:00.797Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
{"error":"invalid post id"}
https://canny.io/api/v1/posts/add_tag
POST
$ curl https://canny.io/api/v1/posts/add_tag -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba1238
-d tagID=553c3ef8b8cdcd1501ba12bb
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2018-06-17T22:42:37.167Z",
"post": {
"created":"2018-06-17T22:42:00.797Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}, {
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2018-04-20T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba12bb",
"name": "Example Tag",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=example-tag"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
{"error":"invalid post id"}
https://canny.io/api/v1/posts/remove_tag
POST
$ curl https://canny.io/api/v1/posts/remove_tag -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba1238
-d tagID=553c3ef8b8cdcd1501ba12bb
{
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": {
"id": "524c3ef8b8cdcd1501ba246b",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@john.test",
"isAdmin": true,
"name": "John Doe",
"url": "https://your-company.canny.io/admin/users/john-doe",
"userID": "5678"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"parentID": null,
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2018-06-17T22:42:37.167Z",
"post": {
"created":"2018-06-17T22:42:00.797Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
}
{"error":"invalid post id"}
https://canny.io/api/v1/posts/update
POST
$ curl https://canny.io/api/v1/posts/update -X POST -d '{
"apiKey": "YOUR_API_KEY",
"postID": "553c3ef8b8cdcd1501ba1238",
"customFields": {
"number": 12,
"string": "value"
},
"details": "Updated post details",
"title": "Updated post title",
"eta": "01/2025",
"imageURLs": ["https://picsum.photos/200"],
"etaPublic": true}' \
-H "Content-Type: application/json"
success
https://canny.io/api/v1/posts/delete
POST
$ curl https://canny.io/api/v1/posts/delete -X POST -d '{
"apiKey": "YOUR_API_KEY",
"postID": "553c3ef8b8cdcd1501ba1238"' \
-H "Content-Type: application/json"
success
https://canny.io/api/v1/posts/link_jira
POST
$ curl https://canny.io/api/v1/posts/link_jira -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=5f3c3ed4b1cacd1501ba1234 \
-d issueKey=PROJ-123
success
https://canny.io/api/v1/posts/unlink_jira
POST
$ curl https://canny.io/api/v1/posts/unlink_jira -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=5f3c3ed4b1cacd1501ba1234 \
-d issueKey=PROJ-123
success
{
"id": "553c3ef8b8cdcd1501ba12bb",
"archived": false,
"created": "2024-09-30T13:32:01.000Z",
"name": "Example Roadmap",
"postCount": 12,
"url": "https://your-company.canny.io/admin/roadmap/example-roadmap"
}
{
"changeComment": {
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"value": "This is the status change comment value"
},
"changer": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba12bb",
"post": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"clickup": {
"linkedTasks": [{
"id": "123",
"linkID": "2334jdsai23234io22",
"name": "Clickup issue",
"postID": "553c3ef8b8cdcd1501ba1238",
"status": "to do",
"url": "https://app.clickup.com/t/123456"
}]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"mergeHistory":[{
"created":"2018-06-17T22:42:37.167Z",
"post": {
"created":"2018-06-17T22:42:00.797Z",
"details":"Awesome feature post details",
"id": "553c3ef8b8cdcd1501ba6789",
"imageURLs":[],
"title":"Another awesome feature request"
}
}],
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
},
"status": "in progress"
}
https://canny.io/api/v1/status_changes/list
POST
$ curl https://canny.io/api/v1/status_changes/list -X POST \
-d apiKey=YOUR_API_KEY \
-d boardID=553c3ef8b8cdcd1501ba1234
{
"hasMore": false,
"statusChanges": [{
"changeComment": {
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"value": "The status has changed!"
},
"changer": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba12bb",
"post": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"changeComment": {
"value": "The status has changed!",
"imageURLs": ["https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b2.png"]
},
"commentCount": 10,
"created": "2017-08-22T13:32:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 72,
"status": "in progress",
"statusChangedAt": "2017-08-24T23:22:00.000Z",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/an-awesome-feature-request"
},
"status": "in progress"
}]
}
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
https://canny.io/api/v1/tags/retrieve
POST
$ curl https://canny.io/api/v1/tags/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba12bb
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
https://canny.io/api/v1/tags/create
POST
$ curl https://canny.io/api/v1/tags/create -X POST \
-d apiKey=YOUR_API_KEY \
-d boardID=553c3ef8b8cdcd1501ba4400 \
-d name="New Tag"
{
"id": "553c3ef8b8cdcd1501ba12bb",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"created": "2017-08-30T13:32:01.000Z",
"name": "Example Tag Name",
"postCount": 12,
"url": "https://your-company.canny.io/admin/board/feature-requests?tag=example-tag-name"
}
{
"id": "553c3ef8b8cdcd1501ba123a",
"alias": "Green Fish",
"avatarURL": "https://canny.io/images/a3db0133d1e7d9122832b67b2c4caaaa.jpg",
"companies": [{
"created": "2020-01-23T04:56:07.890Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"id": "company123",
"monthlySpend": 500.00,
"name": "company name"
}],
"created": "2025-02-22T07:37:51.497Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "test@test.test",
"isAdmin": false,
"lastActivity": "2025-02-22T07:37:51.497Z",
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
}
List users
List the end-users within your workspace.
Returns
Returns an array of users.
https://canny.io/api/v2/users/list
POST
$ curl https://canny.io/api/v2/users/list -X POST \
-d apiKey=YOUR_API_KEY \
-d limit=100 \
-d cursor=NTUzYzNlZjhiOGNkY2QxNTAxYmExMjNhXzIwMjUtMDItMDRUMTY6NDA6MDcuNTQxWl8x
{
"hasNextPage": true,
"cursor": "NTUzYzNlZjhiOGNkY2QxNTAxYmExMjNhXzIwMjUtMDItMDRUMTY6NDA6MDcuNTQxWl8x",
"users": [{
"id": "553c3ef8b8cdcd1501ba123a",
"alias": "Green Fish",
"avatarURL": "https://canny.io/images/a3db0133d1e7d9122832b67b2c4caaaa.jpg",
"created": "2025-02-22T03:01:32.584Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "test@test.test",
"isAdmin": false,
"lastActivity": "2025-02-22T03:01:32.584Z",
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
}]
}
https://canny.io/api/v1/users/retrieve
POST
$ curl https://canny.io/api/v1/users/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba123a
$ curl https://canny.io/api/v1/users/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d userID=1234
$ curl https://canny.io/api/v1/users/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d email="test@test.test"
{
"id": "553c3ef8b8cdcd1501ba123a",
"alias": "Green Fish",
"avatarURL": "https://canny.io/images/a3db0133d1e7d9122832b67b2c4caaaa.jpg",
"created": "2025-02-22T07:37:51.499Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "test@test.test",
"isAdmin": false,
"lastActivity": "2025-02-22T07:37:51.499Z",
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
}
The user's unique identifier in Canny. This can be found through the list users endpoint.
https://canny.io/api/v1/users/create_or_update
https://canny.io/api/v1/users/find_or_create (deprecated)
POST
$ curl https://canny.io/api/v1/users/find_or_create -X POST -d '{
"apiKey": "YOUR_API_KEY",
"alias": "Green Fish",
"companies": [{
"created": "2025-02-22T07:37:51.499Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"id": "company123",
"monthlySpend": 500.00,
"name": "company name"
}],
"created": "2025-02-22T07:37:51.499Z",
"customFields": {
"field1": "value1",
"field2": "value2"
},
"email": "sally@netflix.com",
"name": "Sally Doe",
"userID": "1234-5678"}' \
-H "Content-Type: application/json"
{
"id": "553c3ef8b8cdcd1501ba123a",
}
https://canny.io/api/v1/users/delete
POST
$ curl https://canny.io/api/v1/users/delete -X POST \
-d apiKey=YOUR_API_KEY \
-d userID=553c3ef8b8cdcd1501ba2200"
success
The unique identifier of the user. This can be found through the Retrieve User endpoint.
https://canny.io/api/v1/users/remove_user_from_company
POST
$ curl https://canny.io/api/v1/users/remove_user_from_company -X POST -d '{
"apiKey": "YOUR_API_KEY",
"companyID": "company1",
"id": "553c3ef8b8cdcd1501ba123a"}' \
-H "Content-Type: application/json"
"success"
{
"id": "553c3ef8b8cdcd1501ba123b",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": null,
"created": "2017-08-30T13:32:01.000Z",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba2234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"voter": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-08-30T13:32:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"zendeskTicket": {
"url": "https://your-company.zendesk.com/api/v2/tickets/2.json",
"id": 2,
"created": "2018-12-14T19:20:25Z",
"subject": "Ticket subject",
"description": "Ticket description",
}
}
https://canny.io/api/v1/votes/retrieve
POST
$ curl https://canny.io/api/v1/votes/retrieve -X POST \
-d apiKey=YOUR_API_KEY \
-d id=553c3ef8b8cdcd1501ba123b
{
"id": "553c3ef8b8cdcd1501ba123b",
"board": {
"created": "2017-08-30T13:32:01.000Z",
"id": "553c3ef8b8cdcd1501ba4400",
"name": "Feature Requests",
"postCount": 99,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": null,
"created": "2017-08-30T13:32:01.000Z",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"eta": "February 2020",
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"voter": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-08-30T13:32:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"votePriority": "Important",
}
https://canny.io/api/v1/votes/list
POST
$ curl https://canny.io/api/v1/votes/list -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba2468
{
"hasMore": false,
"votes": [{
"id": "553c3ef8b8cdcd1501ba123b",
"board": {
"created": "2017-07-10T11:22:00.000Z",
"id": "553c3ef8b8cdcd1501ba1234",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"by": null,
"created": "2017-07-15T22:11:00.000Z",
"post": {
"category": {
"id": "553c3ef8b8cdcd1501ba2234",
"name": "Dashboard",
"postCount": 42,
"url": "https://your-company.canny.io/admin/board/feature-requests?category=dashboard"
},
"commentCount": 2,
"id": "553c3ef8b8cdcd1501ba4444",
"imageURLs": [],
"jira": {
"linkedIssues": [{
"id": "123",
"key": "ID-123",
"url": "https://your-company.atlassian.net/browse/ID-123"
}]
},
"score": 13,
"status": "planned",
"tags": [{
"id": "553c3ef8b8cdcd1501ba3234",
"name": "iOS",
"postCount": 15,
"url": "https://your-company.canny.io/admin/board/feature-requests?tags=ios"
}],
"title": "post-title",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"voter": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"zendeskTicket": {
"url": "https://your-company.zendesk.com/api/v2/tickets/2.json",
"id": 2,
"created": "2018-12-14T19:20:25Z",
"subject": "Ticket subject",
"description": "Ticket description",
},
"votePriority": "No priority",
}]
}
https://canny.io/api/v1/votes/create
POST
$ curl https://canny.io/api/v1/votes/create -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba1240 \
-d voterID=553c3ef8b8cdcd1501ba1238
success
https://canny.io/api/v1/votes/delete
POST
$ curl https://canny.io/api/v1/votes/delete -X POST \
-d apiKey=YOUR_API_KEY \
-d postID=553c3ef8b8cdcd1501ba1240 \
-d voterID=553c3ef8b8cdcd1501ba1238
success
{
"created": "2017-07-15T22:11:00.000Z",
"object": {
"id": "553c3ef8b8cdcd1501ba1238",
"author": {
"id": "553c3ef8b8cdcd1501ba123a",
"created": "2017-07-15T22:11:00.000Z",
"email": "test@test.test",
"isAdmin": false,
"name": "Sally Doe",
"url": "https://your-company.canny.io/admin/users/sally-doe",
"userID": "1234"
},
"board": {
"id": "553c3ef8b8cdcd1501ba1234",
"created": "2017-07-15T22:11:00.000Z",
"name": "Feature Requests",
"postCount": 123,
"url": "https://your-company.canny.io/admin/board/feature-requests"
},
"commentCount": 10,
"created": "2017-07-15T22:11:00.000Z",
"details": "Test post details",
"eta": "February 2020",
"imageURLs": [
"https://canny.io/images/93fc5808937760b82c3dc00aa5cd86b8.png",
"https://canny.io/images/316e5600645b81e4be287a52d506dbfd.jpg"
],
"score": 72,
"status": "in progress",
"title": "An awesome feature request",
"url": "https://your-company.canny.io/admin/board/feature-requests/p/post-title"
},
"objectType": "post",
"type": "post.created"
}
import crypto from 'crypto';
function verify(request) {
const {
'canny-nonce': nonce,
'canny-signature': signature
} = request.headers;
const APIKey = 'YOUR_API_KEY';
const calculated = crypto
.createHmac('sha256', APIKey)
.update(nonce)
.digest('base64');
return signature === calculated;
}
Each API request uses one Autopilot credit. Click here to learn more about Autopilot and credits.
When in manual mode, the Autopilot inbox has a limit of 100 items. If you exceed this limit, you won't be able to enqueue any more items until you process them. Enabling automated mode is recommended to skip this limit, and view an audit log of the actions taken by Autopilot.
https://canny.io/api/v1/ai/enqueue
POST
$ curl https://canny.io/api/v1/ai/enqueue -X POST -d '{
"apiKey": "YOUR_API_KEY",
"payload": {
"id": "conversationID",
"authorID": "5bc799625ca6bf6caff284dd",
"sourceURL": "https://twitter.com/cannyHQ/status/1728150249263218855",
"sourceType": "twitter",
"text": "I love this product! No feature requests, just wanted to say thanks!"
},
"type": "conversation"
}' \
-H "Content-Type: application/json"
"success"