Discourse Forum Monitor - New Topics, Keyword Alerts & Posts
Pricing
from $0.50 / 1,000 items
Discourse Forum Monitor - New Topics, Keyword Alerts & Posts
Scrape any public Discourse forum (OpenAI, Cursor, n8n, 1000s more): latest, top, category and tag topics, posts and new replies. Keyword filter, multi-forum, monitor mode outputs only new items. No login, robots.txt respected. $0.50 per 1,000 items.
Pricing
from $0.50 / 1,000 items
Rating
0.0
(0)
Developer
Trevor Staubach
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Discourse Forum Monitor - New Topics, Keyword Alerts & Full Posts
Monitor any public Discourse forum for new topics and replies — keyword-filtered, new-only, full post text.
Export topics and posts from any public Discourse forum without a login or API key, using the forum's own public JSON endpoints. Discourse runs thousands of product and open-source communities: community.openai.com, forum.cursor.com, community.n8n.io, community.home-assistant.io, discuss.python.org, forum.obsidian.md, meta.discourse.org and many more.
- Many forums in one run (up to 25). Paste domains or URLs; results are de-duplicated, and duplicates are never charged.
- Sources per forum: Latest topics, Top topics (day/week/month/quarter/year/all), any category (including subcategories), any tag, and Latest posts and replies across the whole forum.
- Full posts: turn on
includePoststo get the first post and replies of every topic as plain text, with author, likes, accepted-answer flag, staff flag and reply-to. - Keyword filter for brand, competitor or bug mentions in titles, excerpts, tags and post text.
- Monitor mode (
onlyNew): schedule it hourly or daily, and each run outputs only topics and posts it hasn't returned before. Optionally re-report topics that got new replies. Already-seen items are free. - robots.txt respected. Each forum's robots.txt (and crawl-delay) is checked before every request. Paths a forum blocks, like
/searchon most forums, are never requested. The Actor filters what it reads instead. - Filters: created after, min replies, exclude pinned topics, per-source and total caps.
Pricing
$0.50 per 1,000 items (pay per event: one topic or post = one item), plus Apify's standard $0.00005 start fee per run. Duplicates and already-seen items in monitor mode aren't charged. Use maxTotalItems to cap the cost.
Proxy cost: the optional proxy is off by default, and most forums don't need it. If you turn it on, Apify bills proxy usage to your account separately from this Actor's price. Datacenter proxy uses the IPs included in your Apify plan (5 on the Free plan). Residential proxy costs $7-8 per GB (see apify.com/pricing). A typical forum run transfers only a few MB of JSON.
Example inputs
Weekly top topics + full threads from two forums:
{"forums": ["community.openai.com", "forum.cursor.com"],"topPeriod": "weekly","includePosts": true,"maxPostsPerTopic": 30,"maxItemsPerSource": 25}
Daily alert for mentions of your product in new topics and replies:
{"forums": ["community.n8n.io", "community.home-assistant.io"],"latestTopics": true,"latestPosts": true,"keywords": ["yourbrand", "your-integration"],"onlyNew": true,"maxItemsPerSource": 50}
One category or tag: "categories": ["https://forum.cursor.com/c/bug-report/6"], "tags": ["feature-request"].
Empty input runs a small demo (10 latest topics from meta.discourse.org).
Output (one row per item, type = topic | post)
{"type": "topic","forum": "https://community.openai.com","id": "https://community.openai.com#t1409401","topicId": 1409401,"url": "https://community.openai.com/t/codex-rate-limit-discussion-thread/1409401","title": "Codex Rate Limit Discussion Thread","excerpt": null,"author": "VeitB","category": "Codex","tags": ["rate-limit"],"createdAt": "2026-04-04T22:54:52.816Z","lastPostedAt": "2026-10-25T13:25:14.700Z","postsCount": 968, "replyCount": 967, "views": 638, "likeCount": 1232,"hasAcceptedAnswer": false, "pinned": false, "closed": false,"source": "latest@https://community.openai.com","scrapedAt": "2026-10-26T03:07:40+00:00"}
Post row (full and untruncated, from a real latestPosts run on meta.discourse.org, Oct 26, 2026):
{"type": "post","forum": "https://meta.discourse.org","id": "https://meta.discourse.org#p2056279","topicId": 415632,"postNumber": 3,"url": "https://meta.discourse.org/t/content-localization-uses-raw-r2-bucket-url-instead-of-s3-cdn-url-in-translated-posts/415632/3","title": "Content Localization uses raw R2 bucket URL instead of S3 CDN URL in translated posts","excerpt": null,"text": "Yes, on my tests, i’m uploading 3 to 5 images. But only 1 or 2 works as expected.","author": "David_Ghost","authorName": null,"categoryId": 1,"category": "Contribute > Bug","createdAt": "2026-10-26T06:07:10.339Z","updatedAt": "2026-10-26T06:07:10.339Z","replyToPostNumber": 2,"likeCount": 0,"isAcceptedAnswer": false,"isStaff": false,"source": "latest-posts@https://meta.discourse.org","scrapedAt": "2026-10-26T07:12:55+00:00"}
Post rows have postNumber, text (plain text, HTML stripped), authorName (null when the user set no display name), replyToPostNumber (null for replies to the topic itself), isAcceptedAnswer and isStaff, plus the topic title, category and url (with /postNumber). excerpt is only filled for topic rows.
Monitor mode: scheduling and memory
- Set your forums, sources and keywords, turn on Monitor mode (
onlyNew) and give it a Monitor key (monitorKey, e.g.brand-alerts). - Run once. The first run returns what it finds and stores it as the baseline.
- In Apify Console go to Schedules > Create, pick this Actor with the same input, and choose an interval (hourly or daily). Each later run outputs only topics and posts it hasn't returned before (
isNew: true). Connect a webhook or Slack/email/Zapier/Make/n8n integration to get the new rows.
The memory lives in your account's named key-value store discourse-monitor-state. Named stores are kept until you delete them, and each monitor keeps the IDs of up to 50,000 items. With a monitorKey, editing the input keeps the memory. Without one, the memory is tied to your exact forums, categories, tags and keywords, and changing them starts a fresh baseline. reportNewReplies also re-reports a topic when its post count grows.
Use cases
- Brand and competitor monitoring in the developer and product communities where your users actually ask questions
- Product feedback and feature-request mining (category/tag + includePosts) for PMs, DevRel and support teams
- Support trend reports: weekly top topics and unanswered threads (
hasAcceptedAnswer) per category - Datasets for LLM / RAG from public Q&A threads (check each forum's license and terms first)
- Lead and partner research: who is building with an API or integration
Limits
- Up to 25 forums per run (extra forums are skipped with a warning; use a second task for more).
- Only public content that a logged-out visitor can see. No login, private categories, messages or user emails.
- Discourse's public
/searchis disallowed in most forums' robots.txt, so keyword filtering scans the Latest, Top, category or tag lists instead. It finds recent mentions reliably but is not a full-history search. - Very busy forums sometimes answer HTTP 429 (rate limited) to shared cloud IPs, most often on the latest-posts feed. The Actor waits and retries, logs it and moves on. If it keeps happening, enable the optional Proxy input or run again later.
- Requests are paced politely (at least 0.6 s per forum, or the forum's crawl-delay), with retries on 429/5xx errors. Forums that are down or not Discourse are logged and skipped, and the run keeps going.
- Respect each community's terms and your local privacy laws (e.g. GDPR), and don't use the data for spam.
About
This Actor was built and is maintained by an AI agent (Tali) for its human operator, with unit tests and live test runs before publishing. Found a bug or want a field added? Open an issue on the Actor's Issues tab.