Canny Public Roadmap
Pricing
Pay per event
Canny Public Roadmap
Fetch public Canny roadmap/board posts. One company slug or public URL in. Structured posts out (title, status, score, commentCount, url, createdAt, boardName, tags).
Pricing
Pay per event
Rating
0.0
(0)
Developer
Nock
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Unpublished / not listed on Apify Store yet. Publisher: Nock.
Fetch public Canny roadmap and board posts over anonymous HTTP. One company slug or public URL in. Structured posts out.
This Actor is not affiliated with, endorsed by, or related to Canny. It only reads pages and JSON that a public Canny portal already serves without a login.
What it does
Give the Actor a public company slug (ahrefs), a public portal URL (https://ahrefs.canny.io), or a public board URL (https://feedback.canny.io/feature-requests). It returns a dataset of public posts with an allowlisted set of fields.
No Canny API key. No login. No cookies. No voter identities, author names, emails, or avatars.
Features
- One slug or public
*.canny.ioURL as input - Structured posts: title, status, score, commentCount, url, createdAt, boardName, tags
- Public HTTP/JSON only
- Private and login-only boards are skipped
- Pay-per-event ready: one
postevent per public post written to the default dataset (prices are set later in Apify Console, not in this tree)
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
board | string | yes | — | Company slug, public *.canny.io URL, or public board URL |
maxPages | integer | no | 5 | Number of 10-item pages requested per public board |
Example:
{"board":"ahrefs","maxPages":1}
Other accepted board values:
ahrefshttps://ahrefs.canny.iohttps://feedback.canny.io/feature-requests
A local example lives at .actor/example_input.json. The Apify CLI apify run path uses storage/key_value_stores/default/INPUT.json.
Output
Each dataset item has only these fields:
| Field | Type | Source |
|---|---|---|
title | string or null | post title |
status | string or null | e.g. open, planned, in progress, complete |
score | number or null | public vote score |
commentCount | number or null | public comment count |
url | string or null | https://{subdomain}.canny.io/{board}/p/{urlName} |
createdAt | string or null | ISO timestamp when the public list includes it |
boardName | string or null | public board name |
tags | string[] | public tag names only, when present |
tags is often []. Public list JSON frequently omits tag names.
What is collected
- Public post title, status, score, comment count, URL, created time, board name, tag names
What is not collected
- Author names, author IDs,
author,authorID,by - Voters, voter identities, emails, avatars
- Private or login-only boards (
settings.accessother thanpublic) - Empty boards
- Posts marked
notAuthorized
How to run on Apify
This Actor is not published and not listed. After a later upload to an Apify account (not done from this tree):
- Open the Actor in Apify Console.
- Set input to a public slug such as ahrefs, or another public slug/URL.
- Run. Results land in the default dataset.
Do not publish until you have reviewed store listing, icon, and monetization.
How to run locally
Requires Node.js 18+. From this directory, install the listed package.json dependencies, then run scrape.js with a board slug such as ahrefs and optional --max-pages 1.
You can also pass a public portal URL or a public board URL. The CLI path prints JSON to stdout and writes the default local dataset under storage/datasets/default.
If the Apify CLI is present, apify run uses storage/key_value_stores/default/INPUT.json.
Public HTTP endpoints
Anonymous POST with a JSON body. No cookies and no API key.
- List public boards:
https://{subdomain}.canny.io/api/boards/getAllwith body{} - List public posts:
https://{subdomain}.canny.io/api/posts/getwith a pages count and optional boardURLNames - Public roadmap (optional):
https://{subdomain}.canny.io/api/roadmap/getwith a pages count
Company-level runs also try the optional roadmap endpoint and merge any extra public posts. Private/login boards are skipped.
Pricing (pay-per-event, not priced in this tree)
The Actor is wired for pay-per-event. Do not invent prices. Configure events in Apify Console when you monetize:
apify-actor-start: synthetic platform event charged automatically when a run starts. Do not charge this event from code.post: one event per public post written to the default dataset via Actor.pushData with event name post.
Set prices, free-event allowances, and whether apify-default-dataset-item is enabled in Console. This repository does not include a price list.
Limits
- Public HTTP/JSON only. No browser automation, no captcha solving, no login.
- Public boards only. Private or login-gated portals are skipped.
- Pagination is pages = number of 10-post pages. Large boards need a higher maxPages.
- This tree is unpublished and not listed. Upload and store publication are separate later steps.
FAQ
Is this an official Canny tool? No. Nock publishes this Actor independently. It is not affiliated with Canny.
Do I need a Canny API key? No. The Actor only calls public HTTP endpoints.
Will I get voter or author data? No. Those fields are stripped. Output is an allowlist.
License
UNLICENSED. Unpublished Actor source for Nock.
Later upload (not performed here)
When you are ready, authenticate the Apify CLI on your machine, then run the CLI push command from this directory. That creates or updates the unpublished Actor on your account. Publishing to the Store is a separate Console step.