The three endpoints
Every public Discourse forum exposes these JSON endpoints. If all three return valid JSON, the forum runs Discourse.
| Endpoint | What it returns | What to look for |
|---|---|---|
| /site.json | Forum metadata, categories, groups | A JSON object with a "default_locale" key and a "categories" array |
| /search.json?q=test | Search results for a test query | A JSON object with a "topics" array and a "posts" array |
| /latest.json | The latest topics | A JSON object with a "topic_list" key containing a "topics" array |
What a Discourse response looks like
/site.json (truncated)
{
"default_locale": "en",
"categories": [
{ "id": 1, "name": "General", "slug": "general" }
],
"groups": [{ "id": 0, "name": "everyone" }]
}A non-Discourse forum returns an HTML page, a 404, or a JSON error. The presence of "default_locale" and "categories" in /site.json is the most reliable signal.
Why check
discatch monitors Discourse forums as a first-class source. A catch with site: pointed at a Discourse forum URL searches that forum’s posts and topics through its public JSON API. Knowing whether a forum runs Discourse tells you whether discatch can watch it.
The discatch catch for a Discourse forum
Once you confirm a forum runs Discourse, create a catch with site: and your keyword. The catch fires whenever a new post or topic matches.