# Discourse API Documentation

This is the complete API documentation for connecting to the Discourse API using MindCloud's Universal API.

MindCloud offers one normalized API to access 3,400+ apps from a single place. It centralizes authentication and normalizes app APIs so they are easier and more consistent to use.

## Quickstart

1. A **MindCloud account** — sign in or create an account at [MindCloud](https://app.mindcloud.co).
2. A **MindCloud API Key** — create one in [API Keys](https://app.mindcloud.co/user/api-keys). Keep it on your server.
3. At least one **Discourse connection** — create or choose one in [Connections](https://app.mindcloud.co/credentials). Note its `connectionId`.

```text
POST https://connect.mindcloud.co/v2/universal/apps/discourse/actions/{actionSlug}/run
```

## Discourse actions

- DELETE `abort-multipart-upload` Abort Multipart Upload
- PUT `activate-user` Activate User
- PUT `add-group-members` Add Group Members
- PUT `anonymize-user` Anonymize User
- POST `batch-presign-multipart-parts` Batch Presign Multipart Parts
- PUT `bookmark-topic` Bookmark Topic
- PUT `change-password` Change Password
- POST `complete-external-upload` Complete External Upload
- POST `complete-multipart-upload` Complete Multipart Upload
- POST `create-backup` Create Backup
- POST `create-badge` Create Badge
- POST `create-category` Create Category
- POST `create-group` Create Group
- POST `create-invite` Create Invite
- POST `create-multipart-upload` Create Multipart Upload
- POST `create-multiple-invites` Create Multiple Invites
- POST `create-tag-group` Create Tag Group
- POST `create-topic` Create Topic
- POST `create-topic-timer` Create Topic Timer
- POST `create-upload` Create Upload
- POST `create-user` Create User
- PUT `deactivate-user` Deactivate User
- DELETE `delete-badge` Delete Badge
- DELETE `delete-group` Delete Group
- DELETE `delete-post` Delete Post
- DELETE `delete-topic` Delete Topic
- DELETE `delete-user` Delete User
- POST `generate-presigned-put` Generate Presigned Put
- GET `get-category` Get Category
- GET `get-group` Get Group
- GET `get-group-by-id` Get Group By Id
- GET `get-notifications` Get Notifications
- GET `get-post` Get Post
- GET `get-site-basic-info` Get Site Basic Info
- GET `get-tag` Get Tag
- GET `get-topic` Get Topic
- GET `get-topic-by-external-id` Get Topic By External ID
- GET `get-topic-posts` Get Topic Posts
- GET `get-user` Get User
- GET `get-user-emails` Get User Emails
- POST `invite-group-to-topic` Invite Group To Topic
- POST `invite-to-topic` Invite To Topic
- PUT `like-post` Like Post
- GET `list-categories` List Categories
- GET `list-category-topics` List Category Topics
- GET `list-group-members` List Group Members
- GET `list-groups` List Groups
- GET `list-latest-topics` List Latest Topics
- GET `list-post-replies` List Post Replies
- GET `list-posts` List Posts
- GET `list-public-users` List Public Users
- GET `list-tags` List Tags
- GET `list-top-topics` List Top Topics
- GET `list-user-actions` List User Actions
- GET `list-user-badges` List User Badges
- PUT `lock-post` Lock Post
- PUT `log-out-user` Log Out User
- PUT `mark-notifications-as-read` Mark Notifications As Read
- PUT `refresh-gravatar` Refresh Gravatar
- PUT `remove-group-members` Remove Group Members
- GET `search` Search
- PUT `send-download-backup-email` Send Download Backup Email
- POST `send-password-reset-email` Send Password Reset Email
- PUT `set-topic-notification-level` Set Topic Notification Level
- PUT `silence-user` Silence User
- PUT `suspend-user` Suspend User
- PUT `update-avatar` Update Avatar
- PUT `update-badge` Update Badge
- PUT `update-category` Update Category
- PUT `update-email` Update Email
- PUT `update-group` Update Group
- PUT `update-post` Update Post
- PUT `update-tag-group` Update Tag Group
- PUT `update-topic` Update Topic
- PUT `update-topic-status` Update Topic Status
- PUT `update-topic-timestamp` Update Topic Timestamp
- PUT `update-user` Update User
- PUT `update-username` Update Username
