Discourse Forum Monitor — Mentions & Feedback avatar

Discourse Forum Monitor — Mentions & Feedback

Pricing

Pay per usage

Go to Apify Store
Discourse Forum Monitor — Mentions & Feedback

Discourse Forum Monitor — Mentions & Feedback

Monitor any Discourse-powered forum for new topics, feature requests, and brand mentions — by latest or keyword search, across one or many forums at once. Keyless official Discourse JSON. Zero-config: latest topics from meta.discourse.org.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Bikram

Bikram

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Monitor any Discourse-powered forum for new topics, feature requests, and brand mentions — by latest or by keyword search, across one or many forums at once. It reads the official JSON that every Discourse forum already serves, so there's no API key, no login, and no browser scraping. Run it with zero configuration to get the latest topics from meta.discourse.org, or point it at your own community, your competitors', and your category's forums and search them all in a single pass.

What it does

Discourse powers thousands of developer, SaaS, crypto, gaming, and open-source communities — meta.discourse.org, community.openai.com, forum.cursor.com, and countless others. Every one exposes machine-readable JSON for any page simply by appending .json to the URL.

This Actor uses that to pull the latest topics from each forum's front page, or search each forum for a keyword (a product name, a competitor, "feature request", a bug phrase). It then normalizes every topic into one clean schema, deduplicates on forum_host + topic_id, sorts newest-first, and writes the result to your dataset — ready to export as JSON, CSV, or Excel, pipe into a webhook, or query from an AI agent over MCP.

Why monitor Discourse forums

Community feedback is scattered across forums you don't own, and it moves fast. PMs, developer-relations, growth, and competitive-intelligence teams use this to catch feature requests the moment they're posted, track brand and competitor mentions across multiple forums, spot bugs and complaints early by searching their product name where users actually hang out, and mine voice-of-customer for content and roadmap.

Think of it as a DIY, self-hosted version of social-listening tools like Octolens or feedback boards like Canny — pointed at the Discourse forums you care about, on your own schedule, paying only per topic returned.

Input

Every field is optional. Empty input {} returns the latest topics from meta.discourse.org.

FieldTypeDefaultDescription
forumsarray["meta.discourse.org"]One or more Discourse forum hostnames. Protocol and trailing slashes are stripped automatically, so https://forum.cursor.com/ and forum.cursor.com both work.
modeenum"latest"latest = newest topics from each forum. search = topics matching keyword.
keywordstringSearch term used when mode = "search". Matches topic titles and post bodies. Ignored in latest mode.
maxTopicsinteger100Max total topics output across all forums, after dedupe and sorting. With multiple forums the budget is shared so no single busy forum starves the others.

Zero-config (latest from meta.discourse.org):

{}

Latest topics from several forums:

{
"forums": ["community.openai.com", "forum.cursor.com"],
"mode": "latest",
"maxTopics": 50
}

Cross-forum mention / feature-request monitor (the differentiator):

{
"forums": ["community.openai.com", "forum.cursor.com", "meta.discourse.org"],
"mode": "search",
"keyword": "feature request",
"maxTopics": 150
}

Searching a keyword across a list of forums in one run is what turns this from a single-forum dumper into a mention monitor — set keyword to your product, a competitor, or a problem phrase and watch every forum at once.

Output schema

One normalized item per topic. Missing fields are null or empty — never fabricated.

FieldTypeDescription
forum_hoststringForum hostname, e.g. meta.discourse.org.
topic_idintegerDiscourse topic id (unique within a forum).
topic_titlestringTopic title.
topic_urlstringCanonical link, https://{forum}/t/{slug}/{id}.
category_idinteger / nullDiscourse category id the topic belongs to.
author_usernamestring / nullOriginal Poster's username.
created_atstring / nullWhen the topic was created, ISO 8601.
last_posted_atstring / nullWhen the most recent post was made, ISO 8601.
reply_countinteger / nullNumber of replies.
viewsinteger / nullView count (present in latest mode; usually absent in search).
like_countinteger / nullLikes on the topic / matched post.
tagsarrayTopic tags.
excerptstring / nullShort excerpt / blurb of the opening post.
is_solvedbool / nulltrue if the topic has an accepted answer (Discourse Solved plugin); null if the forum doesn't expose it.
matched_keywordstring / nullThe search term, in search mode only; null in latest mode.

Sample item (latest mode):

{
"forum_host": "meta.discourse.org",
"topic_id": 1,
"topic_title": "New to Discourse? Start here!",
"topic_url": "https://meta.discourse.org/t/new-to-discourse-start-here/1",
"category_id": 67,
"author_username": "Discourse",
"created_at": "2013-02-01T04:52:28.073Z",
"last_posted_at": "2013-02-01T04:52:28.397Z",
"reply_count": 5,
"views": 116216,
"like_count": 433,
"tags": [],
"excerpt": "We're so glad you're here! This is our official community…",
"is_solved": false,
"matched_keyword": null
}

How it works — the Discourse .json pattern

Discourse serves the same data to humans and machines. Append .json to any page URL:

PageJSON endpoint
Latest topicshttps://{forum}/latest.json?page=N
Searchhttps://{forum}/search.json?q={term}
Categoryhttps://{forum}/c/{slug}/{id}.json
Topic detailhttps://{forum}/t/{id}.json

These are first-party, federation-grade endpoints the Discourse software itself uses — not a scraper hitting HTML. This Actor reads latest.json and search.json, pages through results, resolves each topic's author from the response's user table, and maps everything into the schema above. Anonymous JSON is rate-limited (~60 requests/minute); the Actor honors Retry-After on 429.

Use cases

  • Product feedback monitoring — daily run with mode: search, keyword: "feature request" across your community and adjacent ones.
  • Brand & competitor listening — search your product and competitors' names across a forum list; pipe matches to Slack via a webhook.
  • DevRel triage — surface the newest unanswered topics (is_solved: false) so your team can jump in fast.
  • AI agents (MCP) — let an agent answer "what are people saying about us on the OpenAI forum this week?" by calling this Actor live.

Run on a schedule (mention alerts)

  1. Set forums, mode, and keyword.
  2. Create an Apify Schedule — a daily run catches new topics within ~24h.
  3. Add a webhook to push results to email, Slack, Teams, or your own system.

Use from Claude, Cursor & AI agents (MCP)

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/sse?actors=bikram07/discourse-forum-monitor",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Or call the API directly:

curl -X POST "https://api.apify.com/v2/acts/bikram07~discourse-forum-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"forums":["community.openai.com"],"mode":"search","keyword":"agent"}'

What it is NOT

  • Public Discourse forums only. It reads what anonymous visitors can read. Forums that require login (login_required) are skipped cleanly — they're reported as skipped in the run status, never as an error, and never with fabricated data.
  • Not a private-content scraper. It does not log in, bypass paywalls, or access gated categories. It uses the same JSON an anonymous browser would receive.
  • Not a generic single-forum dumper. The point is breadth: searching a keyword across a list of forums to monitor mentions and feature requests. You can run it on one forum, but the differentiator is the cross-forum view.
  • Discourse only. It works with forums running the Discourse platform. It does not cover phpBB, Reddit, Slack, Discord, or other systems.
  • Not real-time to the second. Freshness is whatever the forum has published when you run it; schedule it as often as you need within rate limits.
  • Not affiliated with Discourse or any forum it reads. Independent tool built on Discourse's public JSON endpoints.

Built on the public JSON endpoints that every Discourse forum serves. Not affiliated with or endorsed by Discourse or any forum operator.

Related searches: Discourse forum scraper · Discourse API · forum monitoring · community feedback monitor · feature request tracker · brand mention monitoring · competitor mention tracker · Discourse search API · cross-forum monitor · developer community listening · Octolens alternative · DIY social listening for forums