Docs

Discourse API Authentication

How to authenticate Discourse API requests: one Bearer API key plus a connectionId. MindCloud handles Discourse's custom auth scheme for you.

Every Discourse API request through MindCloud needs two things: a MindCloud API Key and a connectionId for your Discourse account. This page covers both, plus exactly how to send them, so you do not need to visit any other page to get authenticated.

Steps to authenticate

  1. Create a MindCloud account at app.mindcloud.co if you do not already have one.
  2. Generate a MindCloud API Key in API Keys. This is the Bearer token you send on every request. Keep it on your server.
  3. Create a Discourse connection in Connections. Discourse uses its own authentication scheme. You provide whatever it requires when you create the connection — MindCloud handles the provider-specific details for you.
  4. Copy the connection’s connectionId — you will send it on every request alongside your MindCloud API Key.

How requests are authenticated

Authentication has two layers. Your MindCloud API Key authenticates the request to MindCloud, sent as a Bearer token in the Authorization header. The connectionId selects the connected Discourse account that should run the action. MindCloud stores and refreshes the Discourse credentials behind that connection, so you never send provider tokens with your requests.

Pass connectionId in the query string for GET and DELETE actions, and in the JSON body for POST, PUT, and PATCH actions.

For example, calling List Latest Topics with an Discourse connection looks like this:

curl --request POST \
  --url "https://connect.mindcloud.co/v2/universal/apps/discourse/actions/list-latest-topics/run" \
  --header "Authorization: Bearer $MINDCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "connectionId": "$CONNECTION_ID",
  "arguments": {}
}'

The Authorization: Bearer <your MindCloud API Key> header authenticates you to MindCloud; the connectionId tells MindCloud which Discourse account to run the action against. Missing or invalid Authorization returns 401, and a missing or mismatched connectionId returns 400.

Connect your Discourse forum

You need a Discourse forum base URL, an API key, and the Discourse username associated with that API key.

  1. Copy your forum base URL

    Copy the full URL of your Discourse forum, including https://, for example https://community.example.com.

  2. Open your Discourse admin API key page

    Sign in to your Discourse forum as an admin, then open the API keys page in the admin settings.

    Admin → API keys
  3. Create or copy an API key

    Create a new API key if you do not already have one, and keep the generated API key value available for the connection form.

  4. Copy the API username

    Use the username associated with the API key. In many setups this is the admin user that created the key.

Keep your key safe

Keep your MindCloud API Key on your server; do not ship it in browser code, mobile apps, public repositories, or logs. Anyone with the key can call the Universal API as your MindCloud account, across every connection you have created.