Discourse API

Get Discourse data as clean JSON with one key: 18 endpoints, 1 to 5 credits per call, the same response shape as every other platform.

What you get#

Onekey exposes Discourse as 18 endpoints behind one API key: 4 endpoints return one record (data is an object) and 14 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for Discourse also works for the rest of the messaging & communities category.

Endpoints#

EndpointWhat it doesParametersCreditsStatus
aboutAbout page data of a Discourse forum.instance1stable
badgesBadges of a Discourse forum.instance5stable
categoriesCategories of a Discourse forum.instance5stable
category_topicsTopics in a Discourse category.id*, instance5stable
directoryUser directory of a Discourse forum (most likes received).instance5stable
latestLatest topics of a Discourse forum.instance5stable
latest_postsLatest posts across a Discourse forum.instance5stable
search_postsSearch posts on a Discourse forum.q*, instance5stable
search_topicsSearch topics on a Discourse forum.q*, instance5stable
tag_topicsTopics with a Discourse tag.tag*, instance5stable
tagsTags of a Discourse forum.instance5stable
topTop topics of a Discourse forum (past week).instance5stable
top_allTop topics of a Discourse forum (all time).instance5stable
topicA Discourse topic.id*, instance1stable
topic_postsPosts (replies) of a Discourse topic.id*, instance5stable
userA Discourse user's profile.username*, instance1stable
user_summaryActivity totals of a Discourse user.username*, instance1stable
user_topicsTopics created by a Discourse user.username*, instance5stable

A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.

Make a request#

This calls discourse.about (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.

curl "https://api.onekey.dev/v1/discourse/about" \
  -H "x-api-key: YOUR_API_KEY"

Fields you get back#

These unified fields come back from Discourse, with the same names as on every other platform. The count is how many of its 18 mapped endpoints return the field; a field the source lacks is null, never missing. 12 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.

FieldTypeEndpoints
engagement.likesinteger13
content.createdAtISO 8601 date12
content.idstring11
entity.namestring11
content.slugstring10
engagement.commentsinteger10
engagement.viewsinteger9
content.titlestring8
author.usernamestring7
content.updatedAtISO 8601 date7
content.textstring6
author.displayNamestring5
author.idstring3
entity.idstring3
entity.descriptionstring2
entity.slugstring1

The full schema is in Unified schema.

Pricing#

Discourse calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.