Discourse REST API 文档

Discourse API

请访问 Discourse API 文档网站以获取详细信息:

https://docs.discourse.org

:information_source: 身份验证

API 请求必须使用基于 HTTP Header 的身份验证。 将您的 Api-KeyApi-Username 作为 HTTP Header 传递。不支持通过查询参数或请求体进行身份验证(此功能已于 2020 年 4 月移除)。请参阅下面的 cURL 请求示例。

唯一仍然支持在查询参数中使用凭据的 API 端点是针对 RSS 源、邮件接收器端点和 ICS 路由的请求。

Content-Type 可以设置为 “application/x-www-form-urlencoded”、“multipart/form-data” 或 “application/json”。

以下是一个通过 cURL 发出的 POST 请求示例:

curl -X POST "http://127.0.0.1:3000/categories" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1" \
-F "name=89853c20-4409-e91a-a8ea-f6cdff96aaaa" \
-F "color=49d9e9" \
-F "text_color=f0fcfd"

以下是 API 文档网站 的外观示例:

redoc

使用 API

您可以使用 cURL 命令来使用 API,但我们建议使用 discourse_api gem,以便您可以使用 Ruby。

逆向工程 API 端点

并非所有端点都已记录在案,但您可以通过遵循本指南来查看任何端点的示例 API 请求和响应:

Discourse 中的全局速率限制和限流

Discourse 附带 3 种不同的全局速率限制,可由站点管理员配置。有关这些限制的更多详细信息,请参阅:

通过 API 创建通知

用户 API 密钥规范


最后由 @sam2026-03-17T17:00:00Z 上审阅

97 个赞
API: Can I authenticate without putting the key in the URL?
Online User API?
Deeply integrating Discourse into website
How can I update trust level via SSO site
Discourse Add Group API
Do we have any API or way to get latest post details for a particular Topic in discourse?
JSON API, get topics sorted by created_at
Quick Messages Plugin
Update current user fields through JavaScript?
API call to watch categories and tags
'BAD CSRF' while creating a new post
How to get uploaded image url using the Discourse API?
Discourse Trust Levels for Discord
Discourse API - Unable to query certain endpoints
How to update profile information via API
Get notifications via the API
Use discourse_post_id to get single topic data from API
Synchronizing Changes for SSO users
What determines the order of frequent poster icons in the topic list?
Working with different needs in raw/cooked content
What is Discourse Blog built with?
How to Create a Script to "Bulk Remove" from a Group?
Display username when login in banner
Possible for admins to create bookmarks for users?
API: Can I authenticate without putting the key in the URL?
RSS Feed Stopped Working?
Logout POST Request
Which CMS for Discourse
SSO_SYNC not found
WP Discourse plug in being odd
Drupal SSO generates incorrect user sessions
403 Error during multiple API calls
/admin/users/1/log_out route error
Delete user avatar by API
Acess-Control-Allow-Headers CORS Error with API after updating discourse
How do I send a topic id just created?
What is Discourse API?
Can Discourse API link with Obsidian?
Bot writer's tip: Processing every post
Access reports JSON data via Pipedream
Provide topic count via Discourse AI tool API `discourse.getUser` function
Help me troubleshoot my Discourse SSO
Bulk undelete topics
Best Practise for Using a Raspberry PI as Bot for Posting Updates in Discourse
Getting ["BAD CSRF"] when updating topic via API [python]
"BAD CSRF" when executing PUT using API, curl, and PHP
Getting a user's discourse subscriptions through api
Understanding pageviews and the site traffic report
Where should I put the API keys of discourse so that I can fetch the posts?
Getting an error while trying to fetch individual posts
Update mail-receiver to the release version
Migrate a Jive Clearspace forum to Discourse
Reverse engineer the Discourse API
Use the Discourse API ruby gem
Return only specific fields from the API GET response
Having issue accessing the Discourse APIs from react app
Best way to create external-facing API for creating topics?
User Status
Share your use cases of using Discourse REST API 🧑‍💻
How to do single sign-on with forum program?
How to make "toggle whisper" reply using API and POST request
How to get posts viewed by a user via APIs?
Creating alternate user directory
Can't create new group via api (/admin/groups.json - post method)
Is there an api to set the primary group for a user
All API calls now getting "You are not permitted to view the requested resource"
Finding a user by their identity provider 'external ID'
Issues with the /get-users ending point
"Api-Key" and "Api-Username" for try.discourse.org?
Missing anchor links in certain TOC topics?
Creating a new topic on behalf of a user
How can I update trust level via SSO site
Shopify Integration
[Announce] Search & replace / batch process Discourse posts
API Error: You are not permitted to view the requested resource
Can an admin change a user's email address?
Can't send PM via API (HTTPUnprocessableEntity 422)
Swagger, WADL or similar for the REST API?
Vague error from clicking on a tag link on this site
Work Around to posting
Discourse dislike Api?
A list of server-side functions for weekend/novice Discourse developers?
Seeding a new forum by creating users and content
How to implement Discourse with an already built Rails project
Using the API, can't PUT to topic unless slug is on the URL
Using the API, can't PUT to topic unless slug is on the URL
Incoming webhooks (Incoming into Discourse)
Managing site customization via API
Discourse API Documentation Using RAML
Is it possible to mount a playable video game into a discourse forum?
Interact with discourse from Python?
Is there is any open API for getting similar topic in discourse?