# Discourse API Documentation API

> Discourse API Documentation API on Apizie: 95 endpoints (List calendar events, Export calendar events in iCalendar format, List backups, Create backup, …) returned as clean JSON through one API key. 95 endpoints are live now. Call it over REST at https://zieapi.vercel.app/v1/social-media:discourse/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `social-media:discourse`
- Category: Social Media
- Status: live
- Source: https://discourse
- Page: https://zieapi.vercel.app/api/social-media/discourse
- OpenAPI: https://zieapi.vercel.app/api/social-media/discourse/openapi.json

This page contains the documentation on how to use Discourse through API calls. > Note: For any endpoints not listed you can follow the [reverse engineer the Discourse API](https://meta.discourse.org/t/-/20576) guide…

## Endpoints

### List calendar events
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-events`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| include_details | string | no | Include detailed event information (creator, invitees, stats, etc.) |
| include_card | string | no | Include card fields without detailed event HTML or statistics |
| category_id | integer | no | Filter events by category ID |
| include_subcategories | string | no | Include events from subcategories when filtering by category |
| post_id | integer | no | Filter to events associated with a specific post ID |
| attending_user | string | no | Filter to events where the specified user (username) has RSVP'd as going |
| before | string | no | Return events starting before this date/time (ISO 8601 format) |
| after | string | no | Return events starting after this date/time (ISO 8601 format) |
| order | string | no | Sort order for events by start date (default: asc) |
| limit | integer | no | Maximum number of events to return (default: 200) |
| tags | array | no | Filter to events whose topic has every specified tag |
| search | string | no | Search event names, descriptions, and locations |
| status | string | no | Filter by event attendance status |

### Export calendar events in iCalendar format
`GET https://zieapi.vercel.app/v1/social-media:discourse/export-events-ics`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| category_id | integer | no | Filter events by category ID |
| include_subcategories | string | no | Include events from subcategories when filtering by category |
| attending_user | string | no | Filter to events where the specified user (username) has RSVP'd as going |
| before | string | no | Return events starting before this date/time (ISO 8601 format) |
| after | string | no | Return events starting after this date/time (ISO 8601 format) |
| order | string | no | Sort order for events by start date (default: asc) |
| limit | integer | no | Maximum number of events to return (default: 200) |

### List backups
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-backups`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Create backup
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-backup`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Download backup
`GET https://zieapi.vercel.app/v1/social-media:discourse/download-backup`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| filename | string | yes |  |
| token | string | yes |  |

### Send download backup email
`POST https://zieapi.vercel.app/v1/social-media:discourse/send-download-backup-email`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| filename | string | yes |  |

### List badges
`GET https://zieapi.vercel.app/v1/social-media:discourse/admin-list-badges`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Create badge
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-badge`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Update badge
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-badge`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Delete badge
`POST https://zieapi.vercel.app/v1/social-media:discourse/delete-badge`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Retrieves a list of categories
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-categories`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| include_subcategories | boolean | no |  |

### Creates a category
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-category`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Updates a category
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-category`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### List topics
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-category-topics`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| slug | string | yes |  |
| id | integer | yes |  |

### Show category
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-category`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Create a group
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Delete a group
`POST https://zieapi.vercel.app/v1/social-media:discourse/delete-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Get a group
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| name | string | yes | Use group name instead of id |

### Update a group
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Get a group by id
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-group-by-id`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes | Use group name instead of id |

### List group members
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-group-members`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| name | string | yes | Use group name instead of id |

### Add group members
`POST https://zieapi.vercel.app/v1/social-media:discourse/add-group-members`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Remove group members
`POST https://zieapi.vercel.app/v1/social-media:discourse/remove-group-members`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### List groups
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-groups`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Create an invite
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-invite`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| body | object | no | JSON request body |

### Create multiple invites
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-multiple-invites`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| body | object | no | JSON request body |

### Get the notifications that belong to the current user
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-notifications`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Mark notifications as read
`POST https://zieapi.vercel.app/v1/social-media:discourse/mark-notifications-as-read`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### List latest posts across topics
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-posts`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| before | integer | no | Load posts with an id lower than this value. Useful for pagination. |

### Creates a new topic, a new post, or a private message
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-topic-post-pm`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Retrieve a single post
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-post`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes |  |

### Update a single post
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-post`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes |  |
| body | object | no | JSON request body |

### delete a single post
`POST https://zieapi.vercel.app/v1/social-media:discourse/delete-post`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### List replies to a post
`GET https://zieapi.vercel.app/v1/social-media:discourse/post-replies`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes |  |

### Lock a post from being edited
`POST https://zieapi.vercel.app/v1/social-media:discourse/lock-post`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Like a post and other actions
`POST https://zieapi.vercel.app/v1/social-media:discourse/perform-post-action`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| body | object | no | JSON request body |

### Get a list of private messages for a user
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-user-private-messages`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |

### Get a list of private messages sent for a user
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-user-sent-private-messages`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |

### Search for a term
`GET https://zieapi.vercel.app/v1/social-media:discourse/search`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| q | string | no | The query string needs to be url encoded and is made up of the following options: - Search term. This is just a string. Usually it would… |
| page | integer | no |  |

### Get site info
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-site`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Get site basic info
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-site-basic-info`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Get a list of tag groups
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-tag-groups`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Creates a tag group
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-tag-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Get a single tag group
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-tag-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes |  |

### Update tag group
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-tag-group`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | string | yes |  |
| body | object | no | JSON request body |

### Get a list of tags
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-tags`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |

### Get a specific tag
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-tag`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| name | string | yes |  |

### Get specific posts from a topic
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-specific-posts-from-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |

### Get a single topic
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |

### Remove a topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/remove-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |

### Update a topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Invite to topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/invite-to-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Invite group to topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/invite-group-to-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Bookmark topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/bookmark-topic`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |

### Update the status of a topic
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-topic-status`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Get the latest topics
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-latest-topics`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| order | string | no | Enum: `default`, `created`, `activity`, `views`, `posts`, `category`, `likes`, `op_likes`, `posters` |
| ascending | string | no | Defaults to `desc`, add `ascending=true` to sort asc |
| per_page | integer | no | Maximum number of topics returned, between 1-100 |

### Get the top topics filtered by period
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-top-topics`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| period | string | no | Enum: `all`, `yearly`, `quarterly`, `monthly`, `weekly`, `daily` |
| per_page | integer | no | Maximum number of topics returned, between 1-100 |

### Set notification level
`POST https://zieapi.vercel.app/v1/social-media:discourse/set-notification-level`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Update topic timestamp
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-topic-timestamp`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Create topic timer
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-topic-timer`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | string | yes |  |
| body | object | no | JSON request body |

### Get topic by external_id
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-topic-by-external-id`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| external_id | string | yes |  |

### Creates an upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-upload`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | Form fields as a JSON object |

### Initiates a direct external upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/generate-presigned-put`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Completes a direct external upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/complete-external-upload`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Creates a multipart external upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-multipart-upload`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Generates batches of presigned URLs for multipart parts
`POST https://zieapi.vercel.app/v1/social-media:discourse/batch-presign-multipart-parts`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Abort multipart upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/abort-multipart`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Complete multipart upload
`POST https://zieapi.vercel.app/v1/social-media:discourse/complete-multipart`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Grant a badge to a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/grant-user-badge`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### List badges for a user
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-user-badges`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |

### Creates a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/create-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| body | object | no | JSON request body |

### Get a single user by username
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| username | string | yes |  |

### Update a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| username | string | yes |  |
| body | object | no | JSON request body |

### Get a user by external_id
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-user-external-id`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| external_id | string | yes |  |

### Get a user by identity provider external ID
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-user-identiy-provider-external-id`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| provider | string | yes | Authentication provider name. Can be found in the provider callback URL: `/auth/{provider}/callback` |
| external_id | string | yes |  |

### Update avatar
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-avatar`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |
| body | object | no | JSON request body |

### Update email
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-email`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |
| body | object | no | JSON request body |

### Update username
`POST https://zieapi.vercel.app/v1/social-media:discourse/update-username`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |
| body | object | no | JSON request body |

### Get a public list of users
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-users-public`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| period | string | yes |  |
| order | string | yes |  |
| asc | string | no |  |
| page | integer | no |  |

### Get a user by id
`GET https://zieapi.vercel.app/v1/social-media:discourse/admin-get-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Delete a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/delete-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Activate a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/activate-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Deactivate a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/deactivate-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Suspend a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/suspend-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Silence a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/silence-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |
| body | object | no | JSON request body |

### Anonymize a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/anonymize-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Merge a user
`POST https://zieapi.vercel.app/v1/social-media:discourse/merge-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| Api-Username | string | yes |  |
| id | integer | yes | ID of the user to merge |
| body | object | no | JSON request body |

### Log a user out
`POST https://zieapi.vercel.app/v1/social-media:discourse/log-out-user`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| id | integer | yes |  |

### Refresh gravatar
`POST https://zieapi.vercel.app/v1/social-media:discourse/refresh-gravatar`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |

### List users
`GET https://zieapi.vercel.app/v1/social-media:discourse/admin-list-users`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| order | string | no |  |
| asc | string | no |  |
| page | integer | no |  |
| show_emails | boolean | no | Include user email addresses in response. These requests will be logged in the staff action logs. |
| stats | boolean | no | Include user stats information |
| email | string | no | Filter to the user with this email address |
| ip | string | no | Filter to users with this IP address |

### List users by flag
`GET https://zieapi.vercel.app/v1/social-media:discourse/admin-list-users-flag`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| flag | string | yes |  |
| order | string | no |  |
| asc | string | no |  |
| page | integer | no |  |
| show_emails | boolean | no | Include user email addresses in response. These requests will be logged in the staff action logs. |
| stats | boolean | no | Include user stats information |
| email | string | no | Filter to the user with this email address |
| ip | string | no | Filter to users with this IP address |

### Get a list of user actions
`GET https://zieapi.vercel.app/v1/social-media:discourse/list-user-actions`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| offset | integer | yes |  |
| username | string | yes |  |
| filter | string | yes |  |

### Send password reset email
`POST https://zieapi.vercel.app/v1/social-media:discourse/send-password-reset-email`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| body | object | no | JSON request body |

### Change password
`POST https://zieapi.vercel.app/v1/social-media:discourse/change-password`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| token | string | yes |  |
| body | object | no | JSON request body |

### Get email addresses belonging to a user
`GET https://zieapi.vercel.app/v1/social-media:discourse/get-user-emails`

| Parameter | Type | Required | Description |
|---|---|---|---|
| server | string | yes | Your Discourse API Documentation endpoint URL, for example https://myresource.example.com |
| username | string | yes |  |

## Example
```
curl "https://zieapi.vercel.app/v1/social-media:discourse/list-events" \
  -H "x-api-key: $APIZIE_KEY"
```

## FAQ

### How do I call the Discourse API Documentation API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/social-media:discourse/list-events with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Discourse API Documentation API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card.

### Can AI agents use the Discourse API Documentation API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key social-media:discourse.

### What is the status of the Discourse API Documentation API?
Live: works with just an Apizie key
