asyncapi: 2.0.0
info:
title: Lemmy WebSocket API
version: '2.0'
contact:
name: Mastodon
url: https://mastodon.social/@LemmyDev
description: |-
### About Lemmy
[**Lemmy**](https://github.com/LemmyNet/lemmy) is a decentralized alternative to proprietary link aggregators such as Reddit.
#### More information...
- [Install your own server](https://join.lemmy.ml/docs/en/administration/administration.html)
- [API reference](https://join.lemmy.ml/docs/en/contributing/api_reference.html)
- [HTTP API](https://join.lemmy.ml/docs/en/contributing/http_api.html)
### How to use this WebSocket API document
You can either use it to:
- **Interactively browse the WebSocket API.** Browse the *Channels*, check out the responses and examples (tailor the *PUBLISH* requests to suit with your favorite WebSocket client).
For testing purposes, either [set up your own server](https://join.lemmy.ml/docs/en/administration/administration.html) or use the Enterprise server (*ws://enterprise.lemmy.ml/api/v2/ws*)
- **[Open and save](asyncapi.yaml) this specification file** and use it with the various [AsyncAPI tools](https://www.asyncapi.com/docs/community/tooling) (perhaps to generate code or documentation).
Connect to ws://***host***/api/v2/ws
to get started. If the server supports secure connections, you can use `wss://**server**/api/v1/ws`.
#### Testing with websocat
For example a simple test using [websocat](https://github.com/vi/websocat) might be:
`websocat ws://127.0.0.1:8536/api/v2/ws -nt`
A simple test command:
`{"op": "ListCategories", "data": {}}`
#### Testing with the [WebSocket JavaScript API](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)
```javascript
var ws = new WebSocket("ws://" + host + "/api/v2/ws");
ws.onopen = function () {
console.log("Connection succeed!");
ws.send(JSON.stringify({
op: "ListCategories",
data: {}
}));
};
```
### Structure of this document
- **Channels** - Documents the requests (marked with the PUBLISH button) and responses (marked with SUBSCRIBE) for each endpoint (*channel*)
- **Servers** - Lists some publicly-accessible test servers
- **Messages** - A summary of the requests and responses (a duplication of the information in **Channels**)
- **Schemas** - An alphabetical list of the most commonly accessed data structures in the API.
### The HTTP API
Lemmy also has an [HTTP API](https://join.lemmy.ml/docs/en/contributing/http_api.html) which is almost identical to the WebSocket API; however, this WebSocket API is the primary source since it also details the specifics of HTTP API calls.
license:
name: AGPL
url: 'https://www.gnu.org/licenses/agpl-3.0.en.html'
servers:
ds9:
url: ds9.lemmy.ml/api/v2/ws
protocol: WebSocket
description: DS9 test server
enterprise:
url: enterprise.lemmy.ml/api/v2/ws
protocol: WebSocket
description: Enterprise test server
voyager:
url: voyager.lemmy.ml/api/v2/ws
protocol: WebSocket
description: Voyager test server
externalDocs:
description: Lemmy documentation
url: 'https://lemmy.ml/docs/index.html'
tags:
- name: User, authentication and admin
- name: Site
- name: Community
- name: Post
- name: Comments
channels:
Login:
publish:
summary: Login (request)
description: |-
Login with username or registered email.
#### HTTP API - operation and endpoint.
`POST /user/login`
operationId: loginRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/loginRequest'
subscribe:
summary: Login (response)
description: Returns an authentication string (`jwt`) for the supplied username or emal
operationId: loginResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/loginResponse'
- $ref: '#/components/messages/errorResponse'
GetCaptcha:
publish:
summary: GetCaptcha (request)
description: |-
Get Captcha details for registering a user. These details expire after 10 minutes.
#### HTTP API - operation and endpoint.
`GET /user/get_captcha`
operationId: getCaptchaRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/getCaptchaRequest'
subscribe:
summary: GetCaptcha (response)
description: Captcha details returned from the server
operationId: getCaptchaResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/getCaptchaResponse'
- $ref: '#/components/messages/errorResponse'
Register:
publish:
summary: Register (request)
description: |-
Register a user on the Lemmy server. If Captcha is enabled on the server, obtain those details by using **GetCaptcha** (*before* attempting to register)
#### HTTP API - operation and endpoint.
`POST /user/register`
operationId: registerRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/registerRequest'
subscribe:
summary: Register (response)
description: 'The response to the registration request will be an authentication string (`jwt`) for that user'
operationId: registerResponseMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/registerResponse'
GetUserDetails:
publish:
summary: GetUserDetails (request)
description: |-
- Use the `username` field to return details about a local user
- Use the `user_id` field to return details about a federated user.
#### HTTP API - operation and endpoint.
`GET /user`
operationId: getUserDetailsMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/getUserDetailsRequest'
subscribe:
summary: GetUserDetails (response)
description: Returns full details about a specified user (including the last post the user wrote)
operationId: getUserDetailsResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/getUserDetailsResponse'
- $ref: '#/components/messages/errorResponse'
SaveUserSettings:
publish:
summary: SaveUserSettings (request)
description: |-
Set profile for an existing user.
If you want to set a new password, you *must* provide **old_password**.
#### HTTP API - operation and endpoint.
`PUT /user/save_user_settings`
operationId: saverUserSettingsRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/saveUserSettingsRequest'
subscribe:
summary: SaveUserSettings (response)
description: Get details about a specified user
operationId: saveUserSettingsResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/saveUserSettingsResponse'
- $ref: '#/components/messages/errorResponse'
GetReplies:
publish:
summary: GetReplies (request)
description: |-
See all notifications and comments on all a user's posts
#### HTTP API - operation and endpoint.
`GET /user/replies`
operationId: getUserRepliesRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/getUserRepliesRequest'
subscribe:
summary: GetReplies (response)
description: Returns detailed reply data
operationId: getRepliesResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/repliesResponse'
- $ref: '#/components/messages/errorResponse'
GetUserMentions:
publish:
summary: GetUserMentions (request)
description: |-
Return any @ mentions of the user in posts and comments
#### HTTP API - operation and endpoint.
`GET /user/mention`
operationId: getUserMentionsRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/getUserMentionsRequest'
subscribe:
summary: GetUserMentions (response)
description: Returns detailed data about mentions
operationId: getMentionsResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/mentionsResponse'
- $ref: '#/components/messages/errorResponse'
MarkUserMentionAsRead:
publish:
summary: MarkUserMentionAsRead (request)
description: |-
Mark a specified mention as read. Only the recipient of a mention can do this.
#### HTTP API - operation and endpoint.
`POST /user/mention/mark_as_read`
operationId: markMentionsRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/markMentionsRequest'
subscribe:
summary: MarkUserMentionAsRead (response)
description: Returns detailed data about the mention
operationId: markMentionResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/markMentionResponse'
- $ref: '#/components/messages/errorResponse'
GetPrivateMessages:
publish:
summary: GetPrivateMessages (request)
description: |-
Request a list of messages sent to the user.
#### HTTP API - operation and endpoint.
`GET /private_message/list`
operationId: getPrivateMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/privateMessageRequest'
subscribe:
summary: GetPrivateMessages (response)
description: Returns list of messages
operationId: getMessagesResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/privateMessagesResponse'
- $ref: '#/components/messages/errorResponse'
CreatePrivateMessage:
publish:
summary: CreatePrivateMessage (request)
description: |-
Send a private message to another user.
#### HTTP API - operation and endpoint.
`POST /private_message`
operationId: createPrivateMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/createPrivateMessageRequest'
subscribe:
summary: CreatePrivateMessage (response)
description: Confirm sending of a private message
operationId: createPrivateMessageResponse
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/createPrivateMessageResponse'
- $ref: '#/components/messages/errorResponse'
EditPrivateMessage:
publish:
summary: EditPrivateMessage (request)
description: |-
Replace an existing private message with the provided content.
#### HTTP API - operation and endpoint.
`PUT /private_message`
operationId: editPrivateMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/editPrivateMessageRequest'
subscribe:
summary: EditPrivateMessage (response)
description: Confirm replacement of a private message
operationId: editPrivateMessageResponse
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/editPrivateMessageResponse'
- $ref: '#/components/messages/errorResponse'
DeletePrivateMessage:
publish:
summary: DeletePrivateMessage (request)
description: |-
Delete a specified private message.
#### HTTP API - operation and endpoint.
`POST /private_message/delete`
operationId: deletePrivateMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/deletePrivateMessageRequest'
subscribe:
summary: DeletePrivateMessage (response)
description: Confirm deletion of a private message
operationId: deletePrivateMessageResponse
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/deletePrivateMessageResponse'
- $ref: '#/components/messages/errorResponse'
MarkPrivateMessageAsRead:
publish:
summary: MarkPrivateMessageAsRead (request)
description: |-
Mark a specified private message as read. Only the recipient of a message can do this.
#### HTTP API - operation and endpoint.
`POST /private_message/mark_as_read`
operationId: markPrivateMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/markPrivateMessageRequest'
subscribe:
summary: MarkPrivateMessageAsRead (response)
description: 'Confirm that a private message has been marked as *read*'
operationId: markPrivateMessageResponse
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/markPrivateMessageResponse'
- $ref: '#/components/messages/errorResponse'
MarkAllAsRead:
publish:
summary: MarkAllAsRead (request)
description: |-
Marks all user replies and mentions as read.
#### HTTP API - operation and endpoint.
`POST /user/mark_all_as_read`
operationId: markAllReadMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/markAllReadRequest'
subscribe:
summary: MarkAllAsRead (response)
description: 'Confirm that all replies and mentions have been marked as *read*'
operationId: markAllReadResponse
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/markAllReadResponse'
- $ref: '#/components/messages/errorResponse'
DeleteAccount:
publish:
summary: DeleteAccount (request)
description: |-
Deletes user account and permanently deletes that user's posts and comments.
#### HTTP API - operation and endpoint.
`POST /user/delete_account`
operationId: deleteAccountRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/deleteAccountRequest'
subscribe:
summary: DeleteAccount (response)
description: Confirm that the account has been deleted
operationId: deleteAccountResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/deleteAccountResponse'
- $ref: '#/components/messages/errorResponse'
AddAdmin:
publish:
summary: AddAdmin (request)
description: |-
Grant admin rights to the specified user.
Only admin users can do this - `auth` must be the authentication string for an existing admin user.
#### HTTP API - operation and endpoint.
`POST /admin/add`
operationId: addAdminRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/addAdminRequest'
subscribe:
summary: AddAdmin (response)
description: Confirm that the user has been given admin privileges
operationId: addAdminResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/addAdminResponse'
- $ref: '#/components/messages/errorResponse'
BanUser:
publish:
summary: BanUser (request)
description: |-
Ban user from posting, commenting or adding communities. Optionally, remove all comments, posts and communities at the same time.
Only admin users can do this - `auth` must be the authentication string for an existing admin user.
#### HTTP API - operation and endpoint.
`POST /user/ban`
operationId: banUserRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/banUserRequest'
subscribe:
summary: BanUser (response)
description: Confirm that the user has been banned
operationId: banUserResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/banUserResponse'
- $ref: '#/components/messages/errorResponse'
UserJoin:
publish:
summary: UserJoin (request)
description: |-
Join to receive WebSocket replies, private messages and so on for this user.
#### HTTP API - operation and endpoint.
`POST /user/join`
operationId: userJoinRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/userJoinRequest'
subscribe:
summary: UserJoin (response)
description: Verification that you will receive these WebSocket messages
operationId: userJoinResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/userJoinResponse'
- $ref: '#/components/messages/errorResponse'
GetReportCount:
publish:
summary: GetReportCount (request)
description: |-
- If `community` is specified, returns the *report count* (number of posts and comments) for that community
- If it is not specified, returns the report count for all communities the user moderates.
User must either be a moderator of a community or an admin user.
#### HTTP API - operation and endpoint.
`GET /user/report_count`
operationId: getReportCountRequestMessage
tags:
- name: User, authentication and admin
message:
$ref: '#/components/messages/getReportCountRequest'
subscribe:
summary: GetReportCount (response)
description: |-
Report on the number of posts and comments in one or all of the user's communities
operationId: getReportCountResponseMessage
tags:
- name: User, authentication and admin
message:
oneOf:
- $ref: '#/components/messages/getReportCountResponse'
- $ref: '#/components/messages/errorResponse'
ListCategories:
publish:
summary: ListCategories (request)
description: |-
List all community categories.
#### HTTP API - operation and endpoint.
`GET /categories`
operationId: getCategoriesMessage
tags:
- name: Site
message:
$ref: '#/components/messages/getCategoriesRequest'
subscribe:
summary: ListCategories (response)
description: List all options for community categories
operationId: getCategoriesResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/getCategoriesResponse'
- $ref: '#/components/messages/errorResponse'
Search:
publish:
summary: Search (request)
description: |-
Find comments, posts, communities users and links.
#### HTTP API - operation and endpoint.
`GET /search`
operationId: searchMessage
tags:
- name: Site
message:
$ref: '#/components/messages/searchRequest'
subscribe:
summary: Search (response)
description: Search results
operationId: searchResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/searchResponse'
- $ref: '#/components/messages/errorResponse'
GetModLog:
publish:
summary: GetModLog (request)
description: |-
Details of the site's *Modlog*: sticky and lockwed posts and so on.
#### HTTP API - operation and endpoint.
`GET /modlog`
operationId: getmodLogRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/getModLogRequest'
subscribe:
summary: GetModLog (response)
description: Modlog request results
operationId: getModLogResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/getModLogResponse'
- $ref: '#/components/messages/errorResponse'
CreateSite:
publish:
summary: CreateSite (request)
description: |-
Creates a site on a 'virgin' server (that is one that does't have Lemmy installed on it already)
#### HTTP API - operation and endpoint.
`POST /site`
operationId: createSiteRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/createSiteRequest'
subscribe:
summary: CreateSite (response)
description: Returns site details
operationId: createSiteResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/createSiteResponse'
- $ref: '#/components/messages/errorResponse'
EditSite:
publish:
summary: EditSite (Request)
description: |-
Change the name and, optionally other details of the Lemmy site.
Only admin users can do this - `auth` must be the authentication string for an existing admin user.
#### HTTP API - operation and endpoint.
`PUT /site`
operationId: editSiteRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/editSiteRequest'
subscribe:
summary: EditSite (response)
description: Returns confirmation of site edit
operationId: editSiteResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/editSiteResponse'
- $ref: '#/components/messages/errorResponse'
GetSite:
publish:
summary: GetSite (request)
description: |-
Get the basic details of the Lemmy site, assoicated with the authentication string `auth`
#### HTTP API - operation and endpoint.
`GET /site`
operationId: getSiteRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/getSiteRequest'
subscribe:
summary: GetSite (response)
description: Return full details about the site
operationId: getSiteResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/getSiteResponse'
- $ref: '#/components/messages/errorResponse'
TransferSite:
publish:
summary: TransferSite (request)
description: |-
Transfer ownership of the site from one admin user (`auth`) to another (`user_id`)
#### HTTP API - operation and endpoint.
`POST /site/transfer`
operationId: transferSiteRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/transferSiteRequest'
subscribe:
summary: TransferSite (response)
description: Return full details about the site
operationId: transferSiteResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/transferSiteResponse'
- $ref: '#/components/messages/errorResponse'
GetSiteConfig:
publish:
summary: GetSiteConfig (request)
description: |-
Request the configuration data file for a Lemmy server
#### HTTP API - operation and endpoint.
`GET /site/config`
operationId: getSiteConfigRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/getSiteConfigRequest'
subscribe:
summary: GetSiteConfig (response)
description: Return the configuration data for a Lemmy server
operationId: getSiteConfigResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/getSiteConfigResponse'
- $ref: '#/components/messages/errorResponse'
SaveSiteConfig:
publish:
summary: SaveSiteConfig (request)
description: |-
Request to send configuration data to a Lemmy server
#### HTTP API - operation and endpoint.
`PUT /site/config`
operationId: saveSiteConfigRequestMessage
tags:
- name: Site
message:
$ref: '#/components/messages/saveSiteConfigRequest'
subscribe:
summary: SaveSiteConfig (response)
description: Return the configuration data file for a Lemmy server
operationId: saveSiteConfigResponseMessage
tags:
- name: Site
message:
oneOf:
- $ref: '#/components/messages/saveSiteConfigResponse'
- $ref: '#/components/messages/errorResponse'
GetCommunity:
publish:
summary: GetCommunity (request)
description: |-
Request to get details of a specified community
#### HTTP API - operation and endpoint.
`GET /community`
operationId: getCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/getCommunityRequest'
subscribe:
summary: GetCommunity (response)
description: Return the details for a community
operationId: getCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/getCommunityResponse'
- $ref: '#/components/messages/errorResponse'
CreateCommunity:
publish:
summary: CreateCommunity (request)
description: |-
Request to create a new community
#### HTTP API - operation and endpoint.
`POST /community`
operationId: createCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/createCommunityRequest'
subscribe:
summary: CreateCommunity (response)
description: Return the details for a community
operationId: createCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/createCommunityResponse'
- $ref: '#/components/messages/errorResponse'
ListCommunities:
publish:
summary: ListCommunities (request)
description: |-
Request to list all communities on the Lemmy server
#### HTTP API - operation and endpoint.
`GET /community/list`
operationId: listCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/listCommunityRequest'
subscribe:
summary: ListCommunities (response)
description: Return the details for all communities
operationId: listCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/listCommunityResponse'
- $ref: '#/components/messages/errorResponse'
BanFromCommunity:
publish:
summary: BanFromCommunity (request)
description: |-
Request to ban a user (`user_id`) from a specified community.
#### HTTP API - operation and endpoint.
`POST /community/ban_user`
operationId: banFromCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/banFromCommunityRequest'
subscribe:
summary: BanFromCommunity (response)
description: Confirmation after a ban request
operationId: banFromCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/banFromCommunityResponse'
- $ref: '#/components/messages/errorResponse'
AddModToCommunity:
publish:
summary: AddModToCommunity (request)
description: |-
Request to add another moderator (`user_id`) to the specified community (`community_id`).
The account making the request (`auth`) must be either an admin or a moderator of that community.
#### HTTP API - operation and endpoint.
`POST /community/mod`
operationId: addModToCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/addModToCommunityRequest'
subscribe:
summary: AddModToCommunity (response)
description: Confirmation that the new moderator has been added
operationId: addModToCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/addModToCommunityResponse'
- $ref: '#/components/messages/errorResponse'
EditCommunity:
publish:
description: |-
Request to edit a community.
The account making the request (`auth`) must be either an admin or a moderator of that community.
#### HTTP API - operation and endpoint.
`PUT /community`
operationId: editCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/editCommunityRequest'
subscribe:
summary: EditCommunity (response)
description: Return the details for the requested community
operationId: editCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/editCommunityResponse'
- $ref: '#/components/messages/errorResponse'
DeleteCommunity:
publish:
summary: DeleteCommunity (request)
description: |-
Request to delete a community.
The account making the request (`auth`) must be the creator of that community.
#### HTTP API - operation and endpoint.
`POST /community/delete`
operationId: deleteCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/deleteCommunityRequest'
subscribe:
summary: DeleteCommunity (response)
description: Return the details for the deleted community
operationId: deleteCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/deleteCommunityResponse'
- $ref: '#/components/messages/errorResponse'
RemoveCommunity:
publish:
summary: RemoveCommunity (request)
description: |-
Request to *permanently* delete a community.
The account making the request (`auth`) must be and admin.
#### HTTP API - operation and endpoint.
`POST /community/remove`
operationId: removeCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/removeCommunityRequest'
subscribe:
summary: RemoveCommunity (response)
description: Return the details for the deleted community
operationId: removeCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/removeCommunityResponse'
- $ref: '#/components/messages/errorResponse'
FollowCommunity:
publish:
summary: FollowCommunity (request)
description: |-
Request to follow (join) a community.
#### HTTP API - operation and endpoint.
`POST /community/follow`
operationId: followCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/followCommunityRequest'
subscribe:
summary: FollowCommunity (response)
description: Return the details for the followed community
operationId: followCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/followCommunityResponse'
- $ref: '#/components/messages/errorResponse'
GetFollowedCommunities:
publish:
summary: GetFollowedCommunities (request)
description: |-
Request to list all followed (joined) communities.
#### HTTP API - operation and endpoint.
`GET /user/followed_communities`
operationId: getFollowedCommunitiesRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/getFollowedCommunitiesRequest'
subscribe:
summary: GetFollowedCommunities (response)
description: Return the details for the followed communities
operationId: getFollowedCommunitiesResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/getFollowedCommunitiesResponse'
- $ref: '#/components/messages/errorResponse'
TransferCommunity:
publish:
summary: TransferCommunity (Request)
description: |-
Request to transfer ownership of a community from one person (`auth`) to another (`user_id`).
The account making the request (`auth`) must be an admin user.
#### HTTP API - operation and endpoint.
`POST /community/transfer`
operationId: transferCommunityRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/transferCommunityRequest'
subscribe:
summary: TransferCommunity (response)
description: Response to a request to transfer community ownership
operationId: transferCommunityResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/transferCommunityResponse'
- $ref: '#/components/messages/errorResponse'
CommunityJoin:
publish:
summary: CommunityJoin (request)
description: |-
Join to receive WebSocket messages for this community's posts.
#### HTTP API - operation and endpoint.
`POST /community/join`
operationId: communityJoinRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/communityJoinRequest'
subscribe:
summary: CommunityJoin (response)
description: Verification that you will receive these WebSocket messages
operationId: CommunityJoinResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/communityJoinResponse'
- $ref: '#/components/messages/errorResponse'
ModJoin:
publish:
summary: ModJoin (request)
description: |-
Join to receive WebSocket messages for community moderator updates such as reports.
#### HTTP API - operation and endpoint.
`POST /community/mod/join`
operationId: modJoinRequestMessage
tags:
- name: Community
message:
$ref: '#/components/messages/modJoinRequest'
subscribe:
summary: ModJoin (response)
description: Verification that you will receive these WebSocket messages
operationId: modJoinResponseMessage
tags:
- name: Community
message:
oneOf:
- $ref: '#/components/messages/modJoinResponse'
- $ref: '#/components/messages/errorResponse'
CreatePost:
publish:
summary: CreatePost (request)
description: |-
Create a new post.
#### HTTP API - operation and endpoint.
`POST /post`
operationId: createPostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/createPostRequest'
subscribe:
summary: CreatePost (response)
description: Forthcoming...
operationId: createPostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/createPostResponse'
- $ref: '#/components/messages/errorResponse'
GetPost:
publish:
summary: GetPost (request)
description: |-
Request details of a post.
#### HTTP API - operation and endpoint.
`GET /post`
operationId: getPostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/getPostRequest'
subscribe:
summary: GetPost (response)
description: Details of a post
operationId: getPostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/getPostResponse'
- $ref: '#/components/messages/errorResponse'
GetPosts:
publish:
summary: GetPosts (request)
description: |-
Request details of all posts on the Lemmy server (or, optionally, in a community).
If specifying a community, use:
- `community_name` for a local community
- `community_id` for a federated community.
#### HTTP API - operation and endpoint.
`GET /post/list`
operationId: getPostListRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/getPostListRequest'
subscribe:
summary: GetPost (response)
description: Details of a post
operationId: getPostListResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/getPostListResponse'
- $ref: '#/components/messages/errorResponse'
CreatePostLike:
publish:
summary: CreatePostLike (request)
description: |-
Forthcoming...
#### HTTP API - operation and endpoint.
`POST /post/like`
operationId: createPostLikeRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/createPostLikeRequest'
subscribe:
summary: CreatePostLike (response)
description: Forthcoming...
operationId: createPostLikeResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/createPostLikeResponse'
- $ref: '#/components/messages/errorResponse'
EditPost:
publish:
summary: EditPost (request)
description: |-
Request to edit an existing post
#### HTTP API - operation and endpoint.
`PUT /post`
operationId: editPostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/editPostRequest'
subscribe:
summary: EditPost (response)
description: Response to request to edit a post
operationId: editPostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/editPostResponse'
- $ref: '#/components/messages/errorResponse'
DeletePost:
publish:
summary: DeletePost (request)
description: |-
Request that a post is deleted. *Deleted posts can be restored later.*
#### HTTP API - operation and endpoint.
`POST /post/delete`
operationId: deletePostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/deletePostRequest'
subscribe:
summary: DeletePost (response)
description: Response to a post deletion request
operationId: deletePostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/deletePostResponse'
- $ref: '#/components/messages/errorResponse'
RemovePost:
publish:
summary: RemovePost (request)
description: |-
Request that a post is *permanently* deleted.
Only admin and moderator roles can do this.
#### HTTP API - operation and endpoint.
`POST /post/remove`
operationId: removePostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/removePostRequest'
subscribe:
summary: RemovePost (response)
description: Response to a post removal request
operationId: removePostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/removePostResponse'
- $ref: '#/components/messages/errorResponse'
LockPost:
publish:
summary: LockPost (request)
description: |-
Request to lock a post.
Only admin and moderator roles can do this.
#### HTTP API - operation and endpoint.
`POST /post/lock`
operationId: postLockRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/postLockRequest'
subscribe:
summary: LockPost (response)
description: Response to a post lock request
operationId: postLockResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/postLockResponse'
- $ref: '#/components/messages/errorResponse'
StickyPost:
publish:
summary: StickyPost (request)
description: |-
Request to make a post 'sticky' (sit at the top of a list of posts).
Only admin and moderator roles can do this.
#### HTTP API - operation and endpoint.
`POST /post/sticky`
operationId: stickyPostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/stickyPostRequest'
subscribe:
summary: StickyPost (response)
description: |-
Response to a request to make a post 'sticky'
operationId: stickyPostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/stickyPostResponse'
- $ref: '#/components/messages/errorResponse'
SavePost:
publish:
summary: SavePost (request)
description: |-
Add a post to the user's list of saved posts.
#### HTTP API - operation and endpoint.
`POST /post/save`
operationId: savePostRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/savePostRequest'
subscribe:
summary: SavePost (response)
description: Response to a request to add a post to the list of saved posts
operationId: savePostResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/savePostResponse'
- $ref: '#/components/messages/errorResponse'
PostJoin:
publish:
summary: PostJoin (request)
description: |-
Join to receive WebSocket messages for this post's comments.
#### HTTP API - operation and endpoint.
`POST /post/join`
operationId: postJoinRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/postJoinRequest'
subscribe:
summary: PostJoin (response)
description: Verification that you will receive these WebSocket messages
operationId: postJoinResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/postJoinResponse'
- $ref: '#/components/messages/errorResponse'
CreatePostReport:
publish:
summary: CreatePostReport (request)
description: |-
Raise a report (query) against a post.
#### HTTP API - operation and endpoint.
`POST /post/report`
operationId: createPostReportRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/createPostReportRequest'
subscribe:
summary: CreatePostReport (response)
description: Forthcoming...
operationId: createPostReportResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/createPostReportResponse'
- $ref: '#/components/messages/errorResponse'
ResolvePostReport:
publish:
summary: ResolvePostReport (request)
description: |-
Resolve (clear) a report against a post.
See `ListPostReports` for a list of all reported posts.
#### HTTP API - operation and endpoint.
`PUT /post/report/resolve`
operationId: resolvePostReportRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/resolvePostReportRequest'
subscribe:
summary: ResolvePostReport (response)
description: Response to request to resolve a report against a post
operationId: resolvePostReportResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/resolvePostReportResponse'
- $ref: '#/components/messages/errorResponse'
ListPostReports:
publish:
summary: ListPostReports (request)
description: |-
- If `community` is supplied, returns reports for only that community
- Otherwise returns reports for all communities the user (`auth`) moderates.
#### HTTP API - operation and endpoint.
`GET /post/report/list`
operationId: listPostReportsRequestMessage
tags:
- name: Post
message:
$ref: '#/components/messages/listPostReportsRequest'
subscribe:
summary: ListPostReports (response)
description: Response to request to list all reports against posts
operationId: listPostReportsResponseMessage
tags:
- name: Post
message:
oneOf:
- $ref: '#/components/messages/listPostReportsResponse'
- $ref: '#/components/messages/errorResponse'
CreateComment:
publish:
summary: CreateComment (request)
description: |-
Add a comment to a post.
#### HTTP API - operation and endpoint.
`POST /comment`
operationId: createCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/createCommentRequest'
subscribe:
summary: CreateComment (response)
description: Response to request to create a comment
operationId: createCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/createCommentResponse'
- $ref: '#/components/messages/errorResponse'
EditComment:
publish:
summary: EditComment (request)
description: |-
Edit a comment (only the comment's creator can do this).
#### HTTP API - operation and endpoint.
`PUT /comment`
operationId: editCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/createCommentRequest'
subscribe:
summary: EditComment (response)
description: Response to request to edit a comment
operationId: editCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/editCommentResponse'
- $ref: '#/components/messages/errorResponse'
DeleteComment:
publish:
summary: DeleteComment (request)
description: |-
Delete a comment (only the comment's creator can do this).
#### HTTP API - operation and endpoint.
`POST /comment/delete`
operationId: deleteCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/deleteCommentRequest'
subscribe:
summary: DeleteComment (response)
description: Response to request to delete a comment
operationId: deleteCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/deleteCommentResponse'
- $ref: '#/components/messages/errorResponse'
RemoveComment:
publish:
summary: RemoveComment (request)
description: |-
Request that a comment is *permanently* deleted.
Only admin and moderator roles can do this.
#### HTTP API - operation and endpoint.
`POST /comment/remove`
operationId: removeCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/removeCommentRequest'
subscribe:
summary: RemoveComment (response)
description: Response to request to permanently delete a comment
operationId: removeCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/removeCommentResponse'
- $ref: '#/components/messages/errorResponse'
GetComments:
publish:
summary: GetComments (request)
description: |-
Request details of all comments on the Lemmy server (or, optionally, in a community).
If specifying a community, use:
- `community_name` for a local community
- `community_id` for a federated community.
#### HTTP API - operation and endpoint.
`GET /comment/list`
operationId: getCommentsRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/getCommentsRequest'
subscribe:
summary: GetComments (response)
description: Response to request to list all comments
operationId: getCommentsResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/getCommentsResponse'
- $ref: '#/components/messages/errorResponse'
MarkCommentAsRead:
publish:
summary: MarkCommentAsRead (request)
description: |-
Mark a specified comment as read. Only the recipient of a comment can do this.
#### HTTP API - operation and endpoint.
`POST /comment/mark_as_read`
operationId: markCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/markCommentRequest'
subscribe:
summary: MarkCommentAsRead (response)
description: Response to request mark a comment as read
operationId: markCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/markCommentResponse'
- $ref: '#/components/messages/errorResponse'
SaveComment:
publish:
summary: SaveComment (request)
description: |-
Add comment to the user's list of saved comments.
#### HTTP API - operation and endpoint.
`PUT /comment/save`
operationId: saveCommentRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/saveCommentRequest'
subscribe:
summary: SaveComment (response)
description: Response to request to save a comment
operationId: saveCommentResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/saveCommentResponse'
- $ref: '#/components/messages/errorResponse'
CreateCommentLike:
publish:
summary: CreateCommentLike (request)
description: |-
Forthcoming...
#### HTTP API - operation and endpoint.
`POST /comment/like`
operationId: createCommentLikeRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/createCommentLikeRequest'
subscribe:
summary: CreateCommentLike (response)
description: Forthcoming...
operationId: createCommentLikeResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/createCommentLikeResponse'
- $ref: '#/components/messages/errorResponse'
CreateCommentReport:
publish:
summary: CreateCommentReport (request)
description: |-
Raise a report (query) against a comment.
#### HTTP API - operation and endpoint.
`POST /comment/report`
operationId: createCommentReportRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/createCommentReportRequest'
subscribe:
summary: CreateCommentReport(response)
description: Response to raising a report against a comment
operationId: createCommentReportResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/createCommentReportResponse'
- $ref: '#/components/messages/errorResponse'
ResolveCommentReport:
publish:
summary: ResolveCommentReport (request)
description: |-
Resolve (clear) a report against a comment.
See `ListCommentReports` for a list of all reported comments.
#### HTTP API - operation and endpoint.
`PUT /comment/report/resolve`
operationId: resolveCommentReportRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/resolveCommentReportRequest'
subscribe:
summary: ResolveCommentReport (response)
description: Response to a request to clear a report against a comment
operationId: resolveCommentReportResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/resolveCommentReportResponse'
- $ref: '#/components/messages/errorResponse'
ListCommentReports:
publish:
summary: ListCommentReports (request)
description: |-
- If `community` is supplied, returns reports for only that community
- Otherwise returns reports for all communities the user (`auth`) moderates.
#### HTTP API - operation and endpoint.
`GET /comment/report/list`
operationId: listCommentReportsRequestMessage
tags:
- name: Comment
message:
$ref: '#/components/messages/listCommentReportsRequest'
subscribe:
summary: ListCommentReports (response)
description: Response to a request to list all comment reports
operationId: listCommentReportsResponseMessage
tags:
- name: Comment
message:
oneOf:
- $ref: '#/components/messages/listCommentReportsResponse'
- $ref: '#/components/messages/errorResponse'
components:
messages:
errorResponse:
name: Error response
payload:
type: object
properties:
error:
description: 'The error message'
type: string
example: 'passwords_dont_match'
loginRequest:
name: Login request
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^Login$'
default: 'Login'
data:
type: object
required:
- username_or_email
- password
properties:
username_or_email:
$ref: '#/components/schemas/username_or_email'
password:
$ref: '#/components/schemas/password'
loginResponse:
name: Login response
payload:
type: object
properties:
op:
type: string
pattern: '^Login$'
default: 'Login'
data:
$ref: '#/components/schemas/authSchema'
getUserRepliesRequest:
name: User replies request
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetReplies$'
default: 'GetReplies'
data:
$ref: '#/components/schemas/repliesMentionsRequest'
getUserMentionsRequest:
name: User mentions request
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetUserMentions$'
default: 'GetUserMentions'
data:
$ref: '#/components/schemas/repliesMentionsRequest'
getCaptchaRequest:
name: Captcha request
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetCaptcha$'
default: 'GetCaptcha'
data:
type: object
getCaptchaResponse:
name: Return Captcha request details
payload:
type: object
properties:
op:
type: string
pattern: '^GetCaptcha$'
default: 'GetCaptcha'
data:
type: object
properties:
ok:
type: object
description: 'Will be *undefined* if Captcha is disabled on the Lemmy server'
properties:
png:
type: string
description: 'A [Base64 encoded](https://www.base64encode.org/) representation of the Captcha image (in .PNG format)'
wav:
type: string
description: 'A [Base64 encoded](https://www.base64encode.org/) representation of the Captcha audio (in .WAV format)'
uuid:
type: string
description: The unique id of the Catpcha request
example: '77cfa414-999e-4445-9940-cebe86139d14'
registerRequest:
name: Register a user on the Lemmy server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^Register$'
default: 'Register'
data:
type: object
required:
- username
- password
- admin
- password_verify
- show_nsfw
properties:
username:
type: string
description: 'The name for the new user'
example: 'testuser'
email:
description: |-
The user's email address
type: string
format: email
password:
$ref: '#/components/schemas/password'
password_verify:
$ref: '#/components/schemas/password'
admin:
type: boolean
description: 'Set to *true* if this is to be the admin user. Only the user who was *first* registered on the Lemmy server is allowed to be admin.'
example: false
default: false
show_nsfw:
$ref: '#/components/schemas/show_nsfw'
captcha_uuid:
type: string
description: 'The unique id of the Catpcha request (as reported by **GetCaptcha**)'
example: '77cfa414-999e-4445-9940-cebe86139d14'
captcha_answer:
type: string
description: 'The *answer* to the Captcha test'
example: 'EjhBi7'
registerResponse:
name: Registration request response
payload:
type: object
properties:
op:
type: string
pattern: '^Register$'
default: 'Register'
data:
$ref: '#/components/schemas/authSchema'
saveUserSettingsRequest:
name: Save user settings - response
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^SaveUserSettings$'
default: 'SaveUserSettings'
data:
type: object
required:
- show_nsfw
properties:
show_nsfw:
$ref: '#/components/schemas/show_nsfw'
theme:
$ref: '#/components/schemas/theme'
default_sort_type:
$ref: '#/components/schemas/default_sort_type'
default_listing_type:
$ref: '#/components/schemas/default_listing_type'
lang:
$ref: '#/components/schemas/lang'
avatar:
$ref: '#/components/schemas/avatar'
banner:
$ref: '#/components/schemas/banner'
preferred_username:
$ref: '#/components/schemas/preferred_username'
email:
$ref: '#/components/schemas/email'
bio:
$ref: '#/components/schemas/bio'
matrix_user_id:
$ref: '#/components/schemas/matrix_user_id'
new_password:
$ref: '#/components/schemas/password'
new_password_verify:
$ref: '#/components/schemas/password'
old_password:
$ref: '#/components/schemas/password'
show_avatars:
$ref: '#/components/schemas/show_avatars'
send_notifications_to_email:
$ref: '#/components/schemas/send_notifications_to_email'
auth:
$ref: '#/components/schemas/authStringSchema'
getUserDetailsRequest:
name: Return requested user details
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetUserDetails$'
default: 'GetUserDetails'
data:
type: object
required:
- sort
- saved_only
properties:
user_id:
$ref: '#/components/schemas/user_id'
username:
$ref: '#/components/schemas/user_name'
sort:
$ref: '#/components/schemas/sort'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
community_id:
$ref: '#/components/schemas/community_id'
saved_only:
type: boolean
description: Forthcoming...
default: false
example: false
auth:
$ref: '#/components/schemas/authStringSchema'
saveUserSettingsResponse:
name: Response to saving user settings (profile)
payload:
type: object
properties:
op:
type: string
pattern: '^SaveUserSettings$'
default: 'SaveUserSettings'
data:
type: object
properties:
jwt:
$ref: '#/components/schemas/authStringSchema'
getUserDetailsResponse:
name: User details request response
payload:
type: object
properties:
op:
type: string
pattern: '^GetUserDetails$'
default: 'GetUserDetails'
data:
type: object
user:
$ref: '#/components/schemas/user_view'
posts:
$ref: '#/components/schemas/replies'
comments:
$ref: '#/components/schemas/comments'
moderates:
$ref: '#/components/schemas/moderators'
follows:
description: The list of followers (members) for each community
type: array
items:
properties:
follower:
$ref: '#/components/schemas/user'
community:
$ref: '#/components/schemas/community'
repliesResponse:
name: Returning user replies response
payload:
type: object
properties:
data:
type: object
properties:
replies:
$ref: '#/components/schemas/replies'
op:
type: string
pattern: '^GetReplies$'
default: 'GetReplies'
mentionsResponse:
name: Returning user mentions response
payload:
type: object
properties:
data:
type: object
properties:
mentions:
description: A list of all user mentions
type: array
items:
properties:
UserMentionView:
$ref: '#/components/schemas/mentions'
op:
type: string
pattern: '^GetUserMentions$'
default: 'GetUserMentions'
markMentionsRequest:
name: Request to make a user mention as read
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^MarkUserMentionAsRead$'
default: 'MarkUserMentionAsRead'
data:
type: object
properties:
user_mention_id:
description: 'The id of the recipient'
type: integer
format: int32
read:
description: 'Forthcoming...'
type: boolean
example: false
auth:
$ref: '#/components/schemas/authStringSchema'
markMentionResponse:
name: Returning response for marked mention
payload:
type: object
properties:
op:
type: string
pattern: '^MarkUserMentionAsRead$'
default: 'MarkUserMentionAsRead'
data:
type: object
properties:
mention:
$ref: '#/components/schemas/mentions'
privateMessageRequest:
name: Request to list all a user's private messages
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetPrivateMessages$'
default: 'GetPrivateMessages'
data:
type: object
required:
- unread_only
- auth
properties:
unread_only:
$ref: '#/components/schemas/unread_only'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
auth:
$ref: '#/components/schemas/authStringSchema'
privateMessagesResponse:
name: List of all a user's private messages
payload:
type: object
properties:
data:
type: object
properties:
private_messages:
type: array
items:
$ref: '#/components/schemas/private_message_view'
op:
type: string
pattern: '^GetPrivateMessages$'
default: 'GetPrivateMessages'
createPrivateMessageRequest:
name: |-
Request to create a private message
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreatePrivateMessage$'
default: 'CreatePrivateMessage'
data:
type: object
required:
- content
- recipient_id
- auth
properties:
content:
$ref: '#/components/schemas/content'
recipient_id:
$ref: '#/components/schemas/recipient'
auth:
$ref: '#/components/schemas/authStringSchema'
createPrivateMessageResponse:
name: |-
Confirmation of the sent private message
payload:
type: object
properties:
op:
type: string
pattern: '^CreatePrivateMessage$'
default: 'CreatePrivateMessage'
data:
type: object
properties:
private_message_view:
$ref: '#/components/schemas/private_message_view'
editPrivateMessageRequest:
name: Request to edit a private message
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^EditPrivateMessage$'
default: 'EditPrivateMessage'
data:
type: object
required:
- private_message_id
- content
- auth
properties:
private_message_id:
$ref: '#/components/schemas/private_message_id'
content:
$ref: '#/components/schemas/content'
auth:
$ref: '#/components/schemas/authStringSchema'
editPrivateMessageResponse:
name: Confirmation of the edited private message
payload:
type: object
properties:
data:
type: object
properties:
private_message_view:
$ref: '#/components/schemas/private_message_view'
op:
type: string
pattern: '^EditPrivateMessage$'
default: 'EditPrivateMessage'
deletePrivateMessageRequest:
name: Request to delete a private message
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^DeletePrivateMessage$'
default: 'DeletePrivateMessage'
data:
type: object
required:
- private_message_id
- deleted
- auth
properties:
private_message_id:
$ref: '#/components/schemas/private_message_id'
deleted:
$ref: '#/components/schemas/deleted'
auth:
$ref: '#/components/schemas/authStringSchema'
deletePrivateMessageResponse:
name: Confirmation of the deleted private message
payload:
type: object
properties:
data:
type: object
properties:
private_message_view:
$ref: '#/components/schemas/private_message_view'
op:
type: string
pattern: '^DeletePrivateMessage$'
default: 'DeletePrivateMessage'
markPrivateMessageRequest:
name: Request to mark a private message as read
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^MarkPrivateMessageAsRead$'
default: 'MarkPrivateMessageAsRead'
data:
type: object
required:
- private_message_id
- read
- auth
properties:
private_message_id:
$ref: '#/components/schemas/private_message_id'
read:
$ref: '#/components/schemas/read'
auth:
$ref: '#/components/schemas/authStringSchema'
markPrivateMessageResponse:
name: 'Confirmation that the private message has been marked as *read*'
payload:
type: object
properties:
data:
type: object
properties:
private_message_view:
$ref: '#/components/schemas/private_message_view'
op:
type: string
pattern: '^MarkPrivateMessageAsRead$'
default: 'MarkPrivateMessageAsRead'
markAllReadRequest:
name: Request to mark all user replies and mentions as read
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^MarkAllAsRead$'
default: 'MarkAllAsRead'
data:
type: object
required:
- auth
properties:
auth:
$ref: '#/components/schemas/authStringSchema'
markAllReadResponse:
name: 'Confirmation that all replies and mentions have been marked as *read*'
payload:
type: object
properties:
data:
type: object
properties:
replies:
$ref: '#/components/schemas/replies'
op:
type: string
pattern: '^MarkAllAsRead$'
default: 'MarkAllAsRead'
deleteAccountRequest:
name: Request to delete a user account
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^DeleteAccount$'
default: 'DeleteAccount'
data:
type: object
required:
- password
- auth
properties:
password:
$ref: '#/components/schemas/password'
auth:
$ref: '#/components/schemas/authStringSchema'
deleteAccountResponse:
name: Confirmation that the account has been deleted
payload:
type: object
properties:
data:
type: object
properties:
jwt:
$ref: '#/components/schemas/authStringSchema'
op:
type: string
pattern: '^DeleteAccount$'
default: 'DeleteAccount'
addAdminRequest:
name: Request to grant admin privileges to a user
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^AddAdmin$'
default: 'AddAdmin'
data:
type: object
required:
- user_id
- added
- auth
properties:
user_id:
$ref: '#/components/schemas/user_id'
added:
$ref: '#/components/schemas/added'
auth:
$ref: '#/components/schemas/authStringSchema'
addAdminResponse:
name: Confirmation that the user has been given admin privileges
payload:
type: object
properties:
op:
type: string
pattern: '^AddAdmin$'
default: 'AddAdmin'
data:
type: object
properties:
admins:
$ref: '#/components/schemas/user_view'
banUserRequest:
name: Request to ban a user
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^BanUser$'
default: 'BanUser'
data:
type: object
required:
- user_id
- ban
- auth
properties:
user_id:
$ref: '#/components/schemas/user_id'
ban:
$ref: '#/components/schemas/ban'
remove_data:
$ref: '#/components/schemas/remove_data'
reason:
$ref: '#/components/schemas/reason'
expires:
$ref: '#/components/schemas/expires'
auth:
$ref: '#/components/schemas/authStringSchema'
banUserResponse:
name: Confirmation that the user has been banned
payload:
type: object
properties:
op:
type: string
pattern: '^BanUser$'
default: 'BanUser'
data:
$ref: '#/components/schemas/ban_view'
userJoinRequest:
name: Request to receive WebSocket messages for this user.
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^UserJoin$'
default: 'UserJoin'
data:
type: object
required:
- auth
properties:
auth:
$ref: '#/components/schemas/authStringSchema'
userJoinResponse:
name: Verification that you will receive these WebSocket messages
payload:
type: object
properties:
op:
type: string
pattern: '^UserJoin$'
default: 'UserJoin'
data:
type: object
properties:
joined:
$ref: '#/components/schemas/joined'
getReportCountRequest:
name: Request to return report count numbers
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetReportCount$'
default: 'GetReportCount'
data:
type: object
required:
- auth
properties:
community:
$ref: '#/components/schemas/community_id'
auth:
$ref: '#/components/schemas/authStringSchema'
getReportCountResponse:
name: Report on the number of posts and comments
payload:
type: object
properties:
op:
type: string
pattern: '^GetReportCount$'
default: 'GetReportCount'
data:
type: object
properties:
comment_reports:
description: The number of comments in the community/communities
type: integer
format: int64
example: 123
community:
$ref: '#/components/schemas/community_id'
post_reports:
description: The number of posts in the community/communities
type: integer
format: int64
example: 23
getCategoriesRequest:
name: Request to list categories on the Lemmy server
payload:
type: object
required:
- op
properties:
op:
type: string
pattern: '^ListCategories$'
default: 'ListCategories'
data:
type: object
getCategoriesResponse:
name: Returns list of categories on the server
payload:
type: object
properties:
data:
type: object
properties:
categories:
type: array
items:
properties:
id:
$ref: '#/components/schemas/category_id'
name:
$ref: '#/components/schemas/category_name'
op:
type: string
pattern: '^ListCategories$'
default: 'ListCategories'
searchRequest:
name: Request to find information on the Lemmy server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^Search$'
default: 'Search'
data:
type: object
required:
- q
- type_
- sort
properties:
q:
description: The text to search for on the Lemmy server
type: string
example: 'lemmy'
type_:
$ref: '#/components/schemas/type_'
community_id:
$ref: '#/components/schemas/community_id'
community_name:
$ref: '#/components/schemas/community_name'
sort:
$ref: '#/components/schemas/sort'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
auth:
$ref: '#/components/schemas/authStringSchema'
searchResponse:
name: The search results
payload:
type: object
properties:
op:
type: string
pattern: '^Search$'
default: 'Search'
data:
type: object
properties:
communities:
type: array
items:
properties:
community:
$ref: '#/components/schemas/community'
posts:
$ref: '#/components/schemas/replies'
type_:
$ref: '#/components/schemas/type_'
users:
type: array
items:
properties:
user:
$ref: '#/components/schemas/user_view'
comments:
$ref: '#/components/schemas/comments'
getModLogRequest:
name: Request the site's Modlog
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetModLog$'
default: 'GetModLog'
data:
type: object
properties:
mod_user_id:
$ref: '#/components/schemas/user_id'
community_id:
$ref: '#/components/schemas/community_id'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
getModLogResponse:
name: Modlog request results
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetModLog$'
default: 'GetModLog'
data:
type: object
properties:
removed_posts:
type: array
locked_posts:
type: array
items:
properties:
mod_lock_post:
type: object
properties:
id:
description: Forthcoming...
type: number
example: 1
mod_user_id:
$ref: '#/components/schemas/user_id'
post_id:
$ref: '#/components/schemas/post_id'
locked:
$ref: '#/components/schemas/locked'
when_:
description: 'The date this post was locked (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
type: string
example: '2021-01-26T14:15:21.922339'
moderator:
$ref: '#/components/schemas/creator'
post:
$ref: '#/components/schemas/post'
community:
$ref: '#/components/schemas/community'
stickied_posts:
type: array
items:
properties:
mod_sticky_post:
type: object
properties:
id:
description: Forthcoming...
type: number
example: 1
mod_user_id:
$ref: '#/components/schemas/user_id'
post_id:
$ref: '#/components/schemas/post_id'
stickied:
$ref: '#/components/schemas/stickied'
when_:
description: 'The date this post was made sticky (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
type: string
example: '2021-01-26T14:16:03.899093'
moderator:
$ref: '#/components/schemas/creator'
post:
$ref: '#/components/schemas/post'
community:
$ref: '#/components/schemas/community'
removed_comments:
description: Forthcoming...
type: array
removed_communities:
description: Forthcoming...
type: array
banned_from_community:
description: Forthcoming...
type: array
banned:
description: Forthcoming...
type: array
added_to_community:
description: Forthcoming...
type: array
added:
description: Forthcoming...
type: array
createSiteRequest:
name: Create Lemmy site on a server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateSite$'
default: 'CreateSite'
data:
$ref: '#/components/schemas/site_properties'
createSiteResponse:
name: Returns Lemmy site details
payload:
type: object
properties:
op:
type: string
pattern: '^CreateSite$'
default: 'CreateSite'
data:
type: object
properties:
site_view:
$ref: '#/components/schemas/site_view'
editSiteRequest:
name: Request to edit Lemmy site details
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^EditSite$'
default: 'EditSite'
data:
$ref: '#/components/schemas/site_properties'
editSiteResponse:
name: The response after a site edit
payload:
type: object
properties:
op:
type: string
pattern: '^EditSite$'
default: 'EditSite'
data:
type: object
properties:
site_view:
$ref: '#/components/schemas/site_view'
getSiteRequest:
name: Request to return Lemmy site details
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetSite$'
default: 'GetSite'
data:
type: object
required:
- auth
properties:
auth:
$ref: '#/components/schemas/authStringSchema'
getSiteResponse:
name: Returns Lemmy site details
payload:
type: object
properties:
op:
type: string
pattern: '^GetSite$'
default: 'GetSite'
data:
type: object
properties:
site_view:
$ref: '#/components/schemas/site_view'
federated_instances:
$ref: '#/components/schemas/federated_instances'
my_user:
$ref: '#/components/schemas/my_user'
version:
$ref: '#/components/schemas/version'
banned:
$ref: '#/components/schemas/banned_list'
online:
$ref: '#/components/schemas/online'
admins:
type: array
items:
properties:
counts:
type: object
properties:
comment_score:
description: Forthcoming...
type: number
example: 8
user_id:
$ref: '#/components/schemas/user_id'
post_score:
description: Forthcoming...
type: number
example: 13
id:
description: Forthcoming...
type: number
example: 1
post_count:
description: Forthcoming...
type: number
example: 10
comment_count:
description: Forthcoming...
type: number
example: 9
user:
$ref: '#/components/schemas/creator'
transferSiteRequest:
name: Request to transfer ownership of the site
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^TransferSite$'
default: 'TransferSite'
data:
type: object
required:
- user_id
- auth
properties:
user_id:
$ref: '#/components/schemas/user_id'
auth:
$ref: '#/components/schemas/authStringSchema'
transferSiteResponse:
name: Request to transfer ownership of the site
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^TransferSite$'
default: 'TransferSite'
data:
type: object
properties:
site_view:
$ref: '#/components/schemas/site_view'
admins:
description: The list of administrators for this site
type: array
items:
properties:
user:
$ref: '#/components/schemas/user'
counts:
$ref: '#/components/schemas/counts'
banned:
$ref: '#/components/schemas/banned_list'
online:
$ref: '#/components/schemas/online'
version:
$ref: '#/components/schemas/version'
my_user:
$ref: '#/components/schemas/my_user'
federated_instances:
$ref: '#/components/schemas/federated_instances'
getSiteConfigRequest:
name: Request the configuration data for a Lemmy server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetSiteConfig$'
default: 'GetSiteConfig'
data:
type: object
required:
- auth
properties:
auth:
$ref: '#/components/schemas/authStringSchema'
getSiteConfigResponse:
name: Returns the configuration data for a Lemmy server
payload:
type: object
properties:
op:
type: string
pattern: '^GetSiteConfig$'
default: 'GetSiteConfig'
data:
type: object
properties:
config_hjson:
$ref: '#/components/schemas/config_hjson'
saveSiteConfigRequest:
name: Request to send a configuration data file for a Lemmy server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^SaveSiteConfig$'
default: 'SaveSiteConfig'
data:
type: object
required:
- config_hjson
- auth
properties:
config_hjson:
$ref: '#/components/schemas/config_hjson'
auth:
$ref: '#/components/schemas/authStringSchema'
saveSiteConfigResponse:
name: Returns the configuration data for a Lemmy server
payload:
type: object
properties:
op:
type: string
pattern: '^SaveSiteConfig$'
default: '^SaveSiteConfig$'
data:
type: object
properties:
config_hjson:
$ref: '#/components/schemas/config_hjson'
getCommunityRequest:
name: Request to get details of a commmunity
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetCommunity$'
default: 'GetCommunity'
data:
type: object
properties:
id:
$ref: '#/components/schemas/community_id'
name:
$ref: '#/components/schemas/community_name'
auth:
$ref: '#/components/schemas/authStringSchema'
getCommunityResponse:
name: Returns the details for a community
payload:
type: object
properties:
op:
type: string
pattern: '^GetCommunity$'
default: 'GetCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
online:
type: number
moderators:
$ref: '#/components/schemas/moderators'
createCommunityRequest:
name: Request to get details of a commmunity
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateCommunity$'
default: 'CreateCommunity'
data:
type: object
required:
- name
- title
- category_id
- nsfw
- auth
properties:
name:
$ref: '#/components/schemas/community_name'
title:
$ref: '#/components/schemas/title'
description:
$ref: '#/components/schemas/description'
icon:
$ref: '#/components/schemas/icon'
banner:
$ref: '#/components/schemas/banner'
category_id:
$ref: '#/components/schemas/category_id'
nsfw:
$ref: '#/components/schemas/nsfw'
auth:
$ref: '#/components/schemas/authStringSchema'
createCommunityResponse:
name: Response to the request to create a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateCommunity$'
default: 'CreateCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
listCommunityRequest:
name: Request list of communities on the Lemmy server
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ListCommunities$'
default: 'ListCommunities'
data:
type: object
required:
- type_
- sort
properties:
type_:
$ref: '#/components/schemas/type_'
sort:
$ref: '#/components/schemas/sort'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
auth:
$ref: '#/components/schemas/authStringSchema'
listCommunityResponse:
name: Response to the request to list all communities
payload:
type: object
properties:
op:
type: string
pattern: '^ListCommunities$'
default: 'ListCommunities'
data:
type: object
properties:
communities:
type: array
$ref: '#/components/schemas/community_view'
banFromCommunityRequest:
name: Request to ban a user from a specified community.
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^BanFromCommunity$'
default: 'BanFromCommunity'
data:
type: object
required:
- community_id
- user_id
- ban
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
user_id:
$ref: '#/components/schemas/user_id'
ban:
$ref: '#/components/schemas/ban'
remove_data:
$ref: '#/components/schemas/remove_data'
reason:
$ref: '#/components/schemas/reason'
expires:
$ref: '#/components/schemas/expires'
auth:
$ref: '#/components/schemas/authStringSchema'
banFromCommunityResponse:
name: Response to the request to ban a user from a community
payload:
type: object
properties:
op:
type: string
pattern: '^BanFromCommunity$'
default: 'BanFromCommunity'
data:
$ref: '#/components/schemas/ban_view'
addModToCommunityRequest:
name: Request to add a moderator to a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^AddModToCommunity$'
default: 'AddModToCommunity'
data:
type: object
required:
- community_id
- user_id
- added
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
user_id:
$ref: '#/components/schemas/user_id'
added:
$ref: '#/components/schemas/added'
auth:
$ref: '#/components/schemas/authStringSchema'
addModToCommunityResponse:
name: Confirmation that a moderator has been added to the community
payload:
type: object
properties:
op:
type: string
pattern: '^AddModToCommunity$'
default: 'AddModToCommunity'
data:
type: object
properties:
moderators:
$ref: '#/components/schemas/moderators'
editCommunityRequest:
name: Request to edit a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^EditCommunity$'
default: 'EditCommunity'
data:
type: object
required:
- community_id
- title
- category_id
- nsfw
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
title:
$ref: '#/components/schemas/title'
description:
$ref: '#/components/schemas/description'
icon:
$ref: '#/components/schemas/icon'
banner:
$ref: '#/components/schemas/banner'
category_id:
$ref: '#/components/schemas/category_id'
nsfw:
$ref: '#/components/schemas/nsfw'
auth:
$ref: '#/components/schemas/authStringSchema'
editCommunityResponse:
name: Response to the request to edit a community
payload:
type: object
properties:
op:
type: string
pattern: '^EditCommunity$'
default: 'EditCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
deleteCommunityRequest:
name: Request to delete a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^DeleteCommunity$'
default: 'DeleteCommunity'
data:
type: object
required:
- community_id
- deleted
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
deleted:
$ref: '#/components/schemas/deleted'
auth:
$ref: '#/components/schemas/authStringSchema'
deleteCommunityResponse:
name: Response to the request to delete a community
payload:
type: object
properties:
op:
type: string
pattern: '^DeleteCommunity$'
default: 'DeleteCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
removeCommunityRequest:
name: Request to permanently delete a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^RemoveCommunity$'
default: 'RemoveCommunity'
data:
type: object
required:
- community_id
- removed
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
removed:
$ref: '#/components/schemas/removed'
reason:
$ref: '#/components/schemas/reason'
expires:
$ref: '#/components/schemas/expires'
auth:
$ref: '#/components/schemas/authStringSchema'
removeCommunityResponse:
name: Response to the request to permanently delete a community
payload:
type: object
properties:
op:
type: string
pattern: '^RemoveCommunity$'
default: 'RemoveCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
followCommunityRequest:
name: Request to follow a community
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^FollowCommunity$'
default: 'FollowCommunity'
data:
type: object
required:
- community_id
- follow
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
follow:
description: Forthcoming...
type: boolean
example: true
auth:
$ref: '#/components/schemas/authStringSchema'
followCommunityResponse:
name: Response to the request to follow a community
payload:
type: object
properties:
op:
type: string
pattern: '^FollowCommunity$'
default: 'FollowCommunity'
data:
type: object
properties:
community_view:
$ref: '#/components/schemas/community_view'
getFollowedCommunitiesRequest:
name: Request to list all followed communities
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetFollowedCommunities$'
default: 'GetFollowedCommunities'
data:
type: object
required:
- auth
properties:
auth:
$ref: '#/components/schemas/authStringSchema'
getFollowedCommunitiesResponse:
name: List of followed communities
payload:
type: object
properties:
op:
type: string
pattern: '^GetFollowedCommunities$'
default: 'GetFollowedCommunities'
data:
type: object
properties:
communities:
type: array
items:
properties:
community:
$ref: '#/components/schemas/community'
follower:
$ref: '#/components/schemas/user'
transferCommunityRequest:
name: Request to transfer ownership of a community from one person to another
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^TransferCommunity$'
default: 'TransferCommunity'
data:
type: object
required:
- community_id
- user_id
- auth
properties:
community_id:
$ref: '#/components/schemas/community_id'
user_id:
$ref: '#/components/schemas/user_id'
auth:
$ref: '#/components/schemas/authStringSchema'
transferCommunityResponse:
name: Response to a request to transfer community ownership
payload:
type: object
properties:
op:
type: string
pattern: '^TransferCommunity$'
default: 'TransferCommunity'
data:
type: object
properties:
moderators:
$ref: '#/components/schemas/moderators'
online:
$ref: '#/components/schemas/online'
community_view:
$ref: '#/components/schemas/community_view'
communityJoinRequest:
name: Request to receive WebSocket messages for this community's posts
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CommunityJoin$'
default: 'CommunityJoin'
data:
type: object
required:
- community_id
properties:
community_id:
$ref: '#/components/schemas/community_id'
communityJoinResponse:
name: Verification that you will receive these WebSocket messages
payload:
type: object
properties:
op:
type: string
pattern: '^CommunityJoin$'
default: 'CommunityJoin'
data:
properties:
joined:
$ref: '#/components/schemas/joined'
modJoinRequest:
name: Request to receive WebSocket messages for community moderator updates such as reports.
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ModJoin$'
default: 'ModJoin'
data:
type: object
required:
- community_id
properties:
community_id:
$ref: '#/components/schemas/community_id'
modJoinResponse:
name: Verification that you will receive these WebSocket messages
payload:
type: object
properties:
op:
type: string
pattern: '^ModJoin$'
default: 'ModJoin'
data:
properties:
joined:
$ref: '#/components/schemas/joined'
createPostRequest:
name: Request to create a new post
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreatePost$'
default: 'CreatePost'
data:
type: object
required:
- name
- nsfw
- community_id
- auth
properties:
name:
$ref: '#/components/schemas/post_name'
url:
$ref: '#/components/schemas/url'
body:
$ref: '#/components/schemas/body'
nsfw:
$ref: '#/components/schemas/nsfw'
community_id:
$ref: '#/components/schemas/community_id'
auth:
$ref: '#/components/schemas/authStringSchema'
createPostResponse:
name: Response to request to create a new post
payload:
type: object
properties:
op:
type: string
pattern: '^CreatePost$'
default: 'CreatePost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
getPostRequest:
name: Request details of a post
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetPost$'
default: 'GetPost'
data:
type: object
required:
- id
- auth
properties:
id:
$ref: '#/components/schemas/post_id'
auth:
$ref: '#/components/schemas/authStringSchema'
getPostResponse:
name: Details of a post
payload:
type: object
properties:
op:
type: string
pattern: '^GetPost$'
default: 'GetPost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
comments:
$ref: '#/components/schemas/comments'
community_view:
$ref: '#/components/schemas/community_view'
moderators:
$ref: '#/components/schemas/moderators'
getPostListRequest:
name: Request details of all posts
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetPosts$'
default: 'GetPosts'
data:
$ref: '#/components/schemas/list_request'
getPostListResponse:
name: Details of all posts
payload:
type: object
properties:
op:
type: string
pattern: '^GetPosts$'
default: 'GetPosts'
data:
type: object
properties:
posts:
type: array
items:
properties:
post_view:
$ref: '#/components/schemas/post_view'
createPostLikeRequest:
name: Forthcoming...
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreatePostLike$'
default: 'CreatePostLike'
data:
type: object
required:
- post_id
- score
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
score:
$ref: '#/components/schemas/score_plus_minus'
auth:
$ref: '#/components/schemas/authStringSchema'
createPostLikeResponse:
name: Response to request to create a new post
payload:
type: object
properties:
op:
type: string
pattern: '^CreatePostLike$'
default: 'CreatePostLike'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
editPostRequest:
name: Request to edit an existing post
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^EditPost$'
default: 'EditPost'
data:
type: object
required:
- post_id
- name
- nsfw
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
name:
$ref: '#/components/schemas/post_name'
url:
$ref: '#/components/schemas/url'
nsfw:
$ref: '#/components/schemas/nsfw'
auth:
$ref: '#/components/schemas/authStringSchema'
editPostResponse:
name: Response to request to edit a post
payload:
type: object
properties:
op:
type: string
pattern: '^EditPost$'
default: 'EditPost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
deletePostRequest:
name: Request that a post be deleted
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^DeletePost$'
default: 'DeletePost'
data:
type: object
required:
- post_id
- deleted
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
deleted:
$ref: '#/components/schemas/deleted'
auth:
$ref: '#/components/schemas/authStringSchema'
deletePostResponse:
name: Response to post deletion request
payload:
type: object
properties:
op:
type: string
pattern: '^DeletePost$'
default: 'DeletePost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
removePostRequest:
name: Request that a post be removed
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^RemovePost$'
default: 'RemovePost'
data:
type: object
required:
- post_id
- removed
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
removed:
$ref: '#/components/schemas/removed'
reason:
$ref: '#/components/schemas/reason'
auth:
$ref: '#/components/schemas/authStringSchema'
removePostResponse:
name: Response to post removal request
payload:
type: object
properties:
op:
type: string
pattern: '^RemovePost$'
default: 'RemovePost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
postLockRequest:
name: Request that a post be locked
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^LockPost$'
default: 'LockPost'
data:
type: object
required:
- post_id
- locked
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
locked:
$ref: '#/components/schemas/locked'
auth:
$ref: '#/components/schemas/authStringSchema'
postLockResponse:
name: Response to a 'post lock' request
payload:
type: object
properties:
op:
type: string
pattern: '^LockPost$'
default: 'LockPost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
stickyPostRequest:
name: Request that a post be made 'sticky'
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^StickyPost$'
default: 'StickyPost'
data:
type: object
required:
- post_id
- stickied
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
stickied:
$ref: '#/components/schemas/locked'
auth:
$ref: '#/components/schemas/authStringSchema'
stickyPostResponse:
name: Response to a request to make a post 'sticky'
payload:
type: object
properties:
op:
type: string
pattern: '^StickyPost$'
default: 'StickyPost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
savePostRequest:
name: Request to add a post to the user's list of saved posts
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^SavePost$'
default: 'SavePost'
data:
type: object
required:
- post_id
- save
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
save:
$ref: '#/components/schemas/saved'
auth:
$ref: '#/components/schemas/authStringSchema'
savePostResponse:
name: Response to a request to add a post to the list of saved posts
payload:
type: object
properties:
op:
type: string
pattern: '^SavePost$'
default: 'SavePost'
data:
type: object
properties:
post_view:
$ref: '#/components/schemas/post_view'
postJoinRequest:
name: Request to receive WebSocket messages for this post's comments
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^PostJoin$'
default: 'PostJoin'
data:
type: object
required:
- post_id
properties:
post_id:
$ref: '#/components/schemas/post_id'
postJoinResponse:
name: Verification that you will receive these WebSocket messages
payload:
type: object
properties:
op:
type: string
pattern: '^PostJoin$'
default: 'PostJoin'
data:
type: object
properties:
joined:
$ref: '#/components/schemas/joined'
createPostReportRequest:
name: Request to raise a report against a post
payload:
type: object
properties:
op:
type: string
pattern: '^CreatePostReport$'
default: 'CreatePostReport'
data:
type: object
required:
- post_id
- reason
- auth
properties:
post_id:
$ref: '#/components/schemas/post_id'
reason:
$ref: '#/components/schemas/reason'
auth:
$ref: '#/components/schemas/authStringSchema'
createPostReportResponse:
name: Response to raising a report against a post.
payload:
type: object
properties:
op:
type: string
pattern: '^CreatePostReport$'
default: 'CreatePostReport'
data:
type: object
properties:
success:
$ref: '#/components/schemas/success'
resolvePostReportRequest:
name: Request to resolve a report against a post
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ResolvePostReport$'
default: 'ResolvePostReport'
data:
$ref: '#/components/schemas/resolve_request'
resolvePostReportResponse:
name: Response to request to resolve a report against a post
payload:
type: object
properties:
op:
type: string
pattern: '^ResolvePostReport$'
default: 'ResolvePostReport'
data:
$ref: '#/components/schemas/resolve_response'
listPostReportsRequest:
name: Request to list all reports against posts
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ListPostReports$'
default: 'ListPostReports'
data:
$ref: '#/components/schemas/report_request'
listPostReportsResponse:
name: Response to a request to list all reports against posts
payload:
type: object
properties:
op:
type: string
pattern: '^ListPostReports$'
default: 'ListPostReports'
data:
type: object
properties:
posts:
type: array
items:
properties:
resolver:
$ref: '#/components/schemas/resolver_id'
community:
$ref: '#/components/schemas/community'
creator:
$ref: '#/components/schemas/creator'
post_creator:
$ref: '#/components/schemas/creator'
post:
$ref: '#/components/schemas/post'
post_report:
type: object
properties:
resolver_id:
$ref: '#/components/schemas/resolver_id'
original_post_body:
$ref: '#/components/schemas/body'
resolved:
$ref: '#/components/schemas/resolved'
published:
$ref: '#/components/schemas/published'
creator_id:
$ref: '#/components/schemas/creator_id'
reason:
$ref: '#/components/schemas/reason'
post_id:
$ref: '#/components/schemas/post_id'
id:
$ref: '#/components/schemas/report_id'
original_post_name:
$ref: '#/components/schemas/post_name'
updated:
description: Forthcoming...
type: string
nullable: true
original_post_url:
description: Forthcoming...
type: string
nullable: true
createCommentRequest:
name: Request to create a comment on a post
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateComment$'
default: 'CreateComment'
data:
$ref: '#/components/schemas/comment_request'
createCommentResponse:
name: Response to a request to create a comment
payload:
type: object
properties:
op:
type: string
pattern: '^CreateComment$'
default: 'CreateComment'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
editCommentRequest:
name: Request to edit a comment
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^EditComment$'
default: 'EditComment'
data:
$ref: '#/components/schemas/comment_request'
editCommentResponse:
name: Response to a request to edit a comment
payload:
type: object
properties:
op:
type: string
pattern: '^EditComment$'
default: 'EditComment'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
deleteCommentRequest:
name: Request to delete a comment
payload:
type: object
properties:
op:
type: string
pattern: '^DeleteComment$'
default: 'DeleteComment'
data:
type: object
required:
- comment_id
- deleted
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
deleted:
$ref: '#/components/schemas/deleted'
auth:
$ref: '#/components/schemas/authStringSchema'
deleteCommentResponse:
name: Response to a request to delete a comment
payload:
type: object
properties:
op:
type: string
pattern: '^DeleteComment$'
default: 'DeleteComment'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
removeCommentRequest:
name: Request to permanently delete a comment
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^RemoveComment$'
default: 'RemoveComment'
data:
type: object
required:
- comment_id
- removed
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
removed:
$ref: '#/components/schemas/removed'
reason:
$ref: '#/components/schemas/reason'
auth:
$ref: '#/components/schemas/authStringSchema'
removeCommentResponse:
name: Response to a request to permanently delete a comment
payload:
type: object
properties:
op:
type: string
pattern: '^RemoveComment$'
default: 'RemoveComment'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
getCommentsRequest:
name: Request to retrieve all comments
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^GetComments$'
default: 'GetComments'
data:
$ref: '#/components/schemas/list_request'
getCommentsResponse:
name: Response to a request to retrieve all comments
payload:
type: object
properties:
op:
type: string
pattern: '^GetComments$'
default: 'GetComments'
data:
type: object
properties:
comments:
description: 'The list of comments'
type: array
items:
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
markCommentRequest:
name: Request to mark a commment as read
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^MarkCommentAsRead$'
default: 'MarkCommentAsRead'
data:
type: object
required:
- comment_id
- read
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
read:
$ref: '#/components/schemas/read'
auth:
$ref: '#/components/schemas/authStringSchema'
markCommentResponse:
name: Response to a request to mark a comment as read
payload:
type: object
properties:
op:
type: string
pattern: '^MarkCommentAsRead$'
default: 'MarkCommentAsRead'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
saveCommentRequest:
name: Request to save a commment
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^SaveComment$'
default: 'SaveComment'
data:
type: object
required:
- comment_id
- save
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
save:
$ref: '#/components/schemas/saved'
auth:
$ref: '#/components/schemas/authStringSchema'
saveCommentResponse:
name: Response to a request to save a comment
payload:
type: object
properties:
op:
type: string
pattern: '^SaveComment$'
default: 'SaveComment'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
createCommentLikeRequest:
name: Forthcoming...
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateCommentLike$'
default: 'CreateCommentLike'
data:
type: object
required:
- comment_id
- score
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
score:
$ref: '#/components/schemas/score_plus_minus'
auth:
$ref: '#/components/schemas/authStringSchema'
createCommentLikeResponse:
name: Response to a request to save a comment
payload:
type: object
properties:
op:
type: string
pattern: '^CreateCommentLike$'
default: 'CreateCommentLike'
data:
type: object
properties:
comment_view:
$ref: '#/components/schemas/comment_view'
createCommentReportRequest:
name: Request to report a comment
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^CreateCommentReport$'
default: 'CreateCommentReport'
data:
type: object
required:
- comment_id
- reason
- auth
properties:
comment_id:
$ref: '#/components/schemas/comment_id'
reason:
$ref: '#/components/schemas/reason'
auth:
$ref: '#/components/schemas/authStringSchema'
createCommentReportResponse:
name: Response to raising a report against a comment
payload:
type: object
properties:
op:
type: string
pattern: '^CreateCommentReport$'
default: 'CreateCommentReport'
data:
type: object
properties:
success:
$ref: '#/components/schemas/success'
resolveCommentReportRequest:
name: Request to clear a report against a comment
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ResolveCommentReport$'
default: 'ResolveCommentReport'
data:
$ref: '#/components/schemas/resolve_request'
resolveCommentReportResponse:
name: Response to a request to clear a report against a comment
payload:
type: object
properties:
op:
type: string
pattern: '^ResolveCommentReport$'
default: 'ResolveCommentReport'
data:
$ref: '#/components/schemas/resolve_response'
listCommentReportsRequest:
name: Request to list all reports against comments
payload:
type: object
required:
- op
- data
properties:
op:
type: string
pattern: '^ListCommemtReports$'
default: 'ListCommentReports'
data:
$ref: '#/components/schemas/report_request'
listCommentReportsResponse:
name: Response to a request to list all comment reports
payload:
type: object
properties:
op:
type: string
pattern: '^ListCommemtReports$'
default: 'ListCommentReports'
data:
type: object
properties:
comments:
type: array
items:
properties:
comment_report:
type: object
properties:
resolver_id:
$ref: '#/components/schemas/resolver_id'
published:
$ref: '#/components/schemas/published'
comment_id:
$ref: '#/components/schemas/comment_id'
creator_id:
$ref: '#/components/schemas/creator_id'
reason:
$ref: '#/components/schemas/reason'
original_comment_text:
$ref: '#/components/schemas/body'
id:
description: Forthcoming...
type: number
example: 2
resolved:
$ref: '#/components/schemas/resolved'
updated:
description: Forthcoming...
type: string
nullable: true
resolver:
$ref: '#/components/schemas/resolver_id'
community:
$ref: '#/components/schemas/community'
creator:
$ref: '#/components/schemas/creator'
post:
$ref: '#/components/schemas/post'
comment_creator:
$ref: '#/components/schemas/creator'
comment:
$ref: '#/components/schemas/comment'
schemas:
'actor_id':
type: string
description: |-
URL for the user/community profile/home page, using the format:
- **User profile** - Site URL/u/username
- **Community home page** - Site URL/c/commmunity name
example: 'https:\/\/enterprise.lemmy.ml\/u\/griddle'
'added':
description: Forthcoming...
type: boolean
example: true
'admin':
type: boolean
description: 'Set to *true* if this person is the Lemmy server administrator'
example: false
'ap_id':
type: string
description: The URL of this post, comment or message
example: 'https:\/\/enterprise.lemmy.ml\/post\/223'
'authSchema':
type: object
description: 'The authentication string returned by **Login** and **Register**'
properties:
jwt:
$ref: '#/components/schemas/authStringSchema'
'authStringSchema':
type: string
description: Authentication string for a user
example: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NzcsImlzcyI6ImVudGVycHJpc2UubGVtbXkubWwifQ.8UbfUE1v4mfH88s2diX2h6_5bzLHSa_5wIlpOZmHbMQ'
'avatar':
type: string
nullable: true
description: Forthcoming...
'ban':
description: |-
- If set to *true*, ban the user
- If set to *false*, do not ban them (use in combination with `remove_data` to restore comments and posts that were previously removed as part of a banning process)
type: boolean
example: true
'ban_view':
type: object
properties:
user:
$ref: '#/components/schemas/user_view'
banned:
$ref: '#/components/schemas/banned'
'banned':
type: boolean
description: 'Set to *true* if this account (username) has been banned from posting on the Lemmy server'
example: false
'banned_list':
description: Forthcoming...
type: array
'banner':
type: string
nullable: true
description: Forthcoming...
'bio':
type: string
nullable: true
description: 'A self-written description of the user'
example: 'I am a watercolour artist. I am happy to share the paintings I am working on, give and receive critiques, and post resources such as tutorials.'
'body':
description: 'The body text of the post or comment'
type: string
nullable: true
'category_id':
type: number
minimum: 1
description: |-
Matches the dropdown list in a community's *Category* setting. 1 = the topmost element, 2 = the second element, and so on.
example: 15
'category_name':
description: The category name
type: string
example: 'Politics'
'comment':
type: object
properties:
creator_id:
$ref: '#/components/schemas/creator_id'
content:
$ref: '#/components/schemas/content'
id:
$ref: '#/components/schemas/comment_id'
read:
description: Is *true* if the author of the original post has read the comment
type: boolean
example: true
parent_id:
description: Forthcoming...
type: number
nullable: true
removed:
$ref: '#/components/schemas/removed'
post_id:
$ref: '#/components/schemas/post_id'
local:
$ref: '#/components/schemas/local'
updated:
description: Forthcoming...
type: string
nullable: true
ap_id:
$ref: '#/components/schemas/ap_id'
deleted:
$ref: '#/components/schemas/deleted'
published:
$ref: '#/components/schemas/published'
'comment_count':
description: Total number of comments on the site or community
type: number
example: 231
'comment_id':
description: The number (id) of a comment
type: number
example: 374
'comment_request':
type: object
required:
- content
- post_id
- auth
properties:
content:
$ref: '#/components/schemas/content'
post_id:
$ref: '#/components/schemas/post_id'
form_id:
$ref: '#/components/schemas/form_id'
auth:
$ref: '#/components/schemas/authStringSchema'
'comment_view':
type: object
properties:
community:
$ref: '#/components/schemas/community'
recipient:
$ref: '#/components/schemas/recipient'
counts:
$ref: '#/components/schemas/counts'
post:
ref: '#/components/schemas/post'
creator_banned_from_community:
$ref: '#/components/schemas/creator_banned_from_community'
saved:
$ref: '#/components/schemas/saved'
subscribed:
$ref: '#/components/schemas/subscribed'
my_vote:
$ref: '#/components/schemas/my_vote'
comment:
$ref: '#/components/schemas/comment'
creator:
$ref: '#/components/schemas/creator'
recipient_ids:
type: array
items:
recipient:
$ref: '#/components/schemas/recipient'
form_id:
$ref: '#/components/schemas/authStringSchema'
'comments':
type: array
items:
properties:
comment:
$ref: '#/components/schemas/comment'
recipient:
$ref: '#/components/schemas/recipient'
post:
$ref: '#/components/schemas/post'
creator:
$ref: '#/components/schemas/user'
creator_banned_from_community:
$ref: '#/components/schemas/creator_banned_from_community'
subscribed:
$ref: '#/components/schemas/subscribed'
my_vote:
$ref: '#/components/schemas/my_vote'
counts:
$ref: '#/components/schemas/counts'
saved:
$ref: '#/components/schemas/saved'
community:
$ref: '#/components/schemas/community'
'community':
type: object
properties:
updated:
type: string
description: Forthcoming...
example: '2020-11-14T13:35:10.270578'
name:
$ref: '#/components/schemas/community_name'
category_id:
$ref: '#/components/schemas/category_id'
icon:
$ref: '#/components/schemas/icon'
nsfw:
$ref: '#/components/schemas/nsfw'
deleted:
$ref: '#/components/schemas/deleted'
removed:
$ref: '#/components/schemas/removed'
published:
$ref: '#/components/schemas/published'
creator_id:
$ref: '#/components/schemas/creator_id'
id:
$ref: '#/components/schemas/community_id'
description:
$ref: '#/components/schemas/description'
actor_id:
$ref: '#/components/schemas/actor_id'
local:
$ref: '#/components/schemas/local'
title:
$ref: '#/components/schemas/title'
banner:
$ref: '#/components/schemas/banner'
'community_id':
type: integer
format: int32 # Or int64? It's stated as both in different parts of the API docs
description: 'The id number for a community. The main/frontpage `community_id` is 0'
example: 2
'community_name':
description: The name of a community
type: string
Example: 'main'
'community_view':
type: object
properties:
subscribed:
$ref: '#/components/schemas/subscribed'
counts:
type: object
properties:
published:
$ref: '#/components/schemas/published'
community_id:
$ref: '#/components/schemas/community_id'
users_active_day:
$ref: '#/components/schemas/users_active_day'
id:
description: 'Forthcoming...'
type: number
example: 1
users_active_half_year:
$ref: '#/components/schemas/users_active_half_year'
comments:
$ref: '#/components/schemas/comment_count'
users_active_month:
$ref: '#/components/schemas/users_active_month'
subscribers:
description: The total number of community subscribers (members)
type: number
example: 41
posts:
$ref: '#/components/schemas/posts'
users_active_week:
$ref: '#/components/schemas/users_active_week'
community:
$ref: '#/components/schemas/community'
creator:
$ref: '#/components/schemas/creator'
category:
type: object
properties:
name:
$ref: '#/components/schemas/category_name'
id:
$ref: '#/components/schemas/category_id'
'config_hjson':
description: The configuration data for a Lemmy server (in JSON format)
type: string
example: |-
{\n # for more info about the config, check out the documentation\n # https://lemmy.ml/docs/administration_configuration.html\n\n setup: {\n # username for the admin user\n admin_username: \"lemmy\"\n # password for the admin user\n admin_password: \"lemmy\"\n # name of the site (can be changed later)\n site_name: \"lemmy-test\"\n }\n\n # the domain name of your instance (eg \"lemmy.ml\")\n hostname: \"localhost\"\n # address where lemmy should listen for incoming requests\n bind: \"0.0.0.0\"\n # port where lemmy should listen for incoming requests\n port: 8536\n # json web token for authorization between server and client\n jwt_secret: \"changeme\"\n # settings related to the postgresql database\n database: {\n # name of the postgres database for lemmy\n database: \"lemmy\"\n # username to connect to postgres\n user: \"lemmy\"\n # password to connect to postgres\n password: \"password\"\n # host where postgres is running\n host: \"postgres\"\n }\n# # optional: email sending configuration\n# email: {\n# # hostname and port of the smtp server\n# smtp_server: \"aspmx.l.google.com\"\n# # login name for smtp server\n# smtp_login: \"lemmmy@glemmy.com\"\n# # password to login to the smtp server\n# smtp_password: \"lemom\"\n# # address to send emails from, eg \"noreply@your-instance.com\"\n# smtp_from_address: \"noreply@lemmy.com\"\n# # whether or not smtp connections should use tls\n# use_tls: true\n# }\n}\n\n"
'content':
description: The text of the comment or message
type: string
example: '> Communities\n\n\n![](https:\/\/enterprise.lemmy.ml\/pictrs\/image\/KZ7NoyJgxx.jpg)'
'counts':
type: object
properties:
downvotes:
$ref: '#/components/schemas/downvotes'
published:
$ref: '#/components/schemas/published'
score:
$ref: '#/components/schemas/score'
comment_id:
type: number
description: Forthcoming...
id:
type: number
description: Forthcoming...
upvotes:
$ref: '#/components/schemas/upvotes'
'creator':
type: object
properties:
preferred_username:
$ref: '#/components/schemas/preferred_username'
banned:
$ref: '#/components/schemas/banned'
matrix_user_id:
$ref: '#/components/schemas/matrix_user_id'
updated:
$ref: '#/components/schemas/user_updated'
id:
$ref: '#/components/schemas/user_id'
shared_inbox_url:
description: Forthcoming...
type: string
example: 'https:\/\/enterprise.lemmy.ml\/inbox'
published:
description: Forthcoming...
type: string
example: '2020-09-14T14:54:53.080949'
actor_id:
$ref: '#/components/schemas/actor_id'
deleted:
$ref: '#/components/schemas/deleted'
banner:
$ref: '#/components/schemas/banner'
name:
$ref: '#/components/schemas/user_name'
avatar:
$ref: '#/components/schemas/avatar'
inbox_url:
description: |-
The link to the inbox of the site's creator
type: string
example: 'https:\/\/enterprise.lemmy.ml\/u\/nutomic\/inbox'
local:
$ref: '#/components/schemas/local'
bio:
$ref: '#/components/schemas/bio'
admin:
$ref: '#/components/schemas/admin'
'creator_banned_from_community':
type: boolean
description: Forthcoming...
example: false
'creator_id':
type: number
description: The id of the person who created this site, community, post, comment or message
example: 20
'default_listing_type':
type: integer
format: int16
minimum: 0
maximum: 2
description: |-
What type of listing to display by default:
0. All
1. Subscribed
2. Community (Local)
example: 0
'default_sort_type':
type: integer
format: int16
minimum: 0
maximum: 7
description: |-
This user's default sort type for listings:
0. Active
1. Hot
2. New
3. TopDay
4. TopWeek
5. TopMonth
6. TopYear
7. TopAll
example: 1
'deleted':
type: boolean
description: |-
Set to *true* if this community, post, comment, message or user account should be, or has been, deleted. Unlike *removal*, deletion is not permanent. Deleted items *can* be recovered.
You can undo a delete yourself by setting this value to *false*.
example: false
'description':
type: string
description: |-
The information in the community's **Sidebar** area
example: 'All about the Rolex/Björn Borg collaboration'
'downvotes':
type: number
description: Forthcoming...
example: 0
'email':
description: |-
The user's email address
type: string
format: email
example: 'jane.doe@humanity.org'
'enable_downvotes':
description: Set to *true* if downvoting is allowed on this site
type: boolean
example: false
'expires':
description: Forthcoming...
type: integer
format: int64
'federated_instances':
type: object
properties:
blocked:
$ref: '#/components/schemas/instance'
allowed:
$ref: '#/components/schemas/instance'
linked:
$ref: '#/components/schemas/instance'
'form_id':
description: Forthcoming... (so you know which message came back)
type: string
nullable: true
example: 'IMPORTANT'
'icon':
type: string
nullable: true
description: Forthcoming...
'instance':
type: array
items:
properties:
# COMMENT 'instance' is a guess at the name for this field. Unable to test federation
instance:
description: Forthcoming...
type: string
example: 'ds9.lemmy.ml'
'joined':
description: '*true* if join request was successful'
type: boolean
example: true
'lang':
description: |-
The language to display Lemmy's interface in
type: string
example: 'Browser Default'
'local':
type: boolean
description: |-
- *true* if this is a local user
- *false* if this is a federated user
'locked':
description: |-
Set to *true* if the post is already, or should be, locked. A locked post cannot receive comments.
You can undo a lock yourself by setting this value to *false*.
type: boolean
example: true
'limit':
type: integer
format: int64
minimum: 1
description: Forthcoming...
example: 20
'list_request':
type: object
required:
- type_
- sort
properties:
type_:
$ref: '#/components/schemas/type_listing'
sort:
$ref: '#/components/schemas/sort'
page:
$ref: '#/components/schemas/page'
limit:
$ref: '#/components/schemas/limit'
community_id:
$ref: '#/components/schemas/community_id'
community_name:
$ref: '#/components/schemas/community_name'
auth:
$ref: '#/components/schemas/authStringSchema'
'matrix_user_id':
type: string
nullable: true
description: 'The [Matrix](https://matrix.org/docs/projects/try-matrix-now/) id of the user'
'mentions':
description: 'Forthcoming...'
type: object
required:
- user_mention_id
- read
- auth
properties:
user_mention_id:
description: Forthcoming...
type: integer
format: int32
read:
$ref: '#/components/schemas/read'
auth:
$ref: '#/components/schemas/authStringSchema'
'moderators':
description: The list of moderators for each community
type: array
items:
properties:
moderator:
$ref: '#/components/schemas/user'
community:
$ref: '#/components/schemas/community'
'my_user':
type: object
required:
- show_nsfw
properties:
show_nsfw:
$ref: '#/components/schemas/show_nsfw'
preferred_username:
$ref: '#/components/schemas/preferred_username'
default_sort_type:
$ref: '#/components/schemas/default_sort_type'
banned:
$ref: '#/components/schemas/banned'
default_listing_type:
$ref: '#/components/schemas/default_listing_type'
updated:
$ref: '#/components/schemas/user_updated'
matrix_user_id:
$ref: '#/components/schemas/matrix_user_id'
id:
$ref: '#/components/schemas/user_id'
show_avatars:
$ref: '#/components/schemas/show_avatars'
actor_id:
$ref: '#/components/schemas/actor_id'
deleted:
$ref: '#/components/schemas/deleted'
published:
$ref: '#/components/schemas/published'
banner:
$ref: '#/components/schemas/banner'
name:
$ref: '#/components/schemas/user_name'
avatar:
$ref: '#/components/schemas/avatar'
email:
$ref: '#/components/schemas/email'
lang:
$ref: '#/components/schemas/lang'
local:
$ref: '#/components/schemas/local'
bio:
$ref: '#/components/schemas/bio'
last_refreshed_at:
description: Forthcoming...
type: string
example: '2021-01-21T16:19:08.725191'
send_notifications_to_email:
$ref: '#/components/schemas/send_notifications_to_email'
theme:
$ref: '#/components/schemas/theme'
admin:
$ref: '#/components/schemas/admin'
'my_vote':
type: number
description: Forthcoming...
example: 1
'nsfw':
type: boolean
description: 'Set to *true* if this commmunity, post or comment is deemed [NSFW](https://en.wikipedia.org/wiki/Not_safe_for_work) (hence invisble to users who have the NSFW option selected in their profile'
example: false
'online':
description: Number of registered users who are currently on the system
type: number
example: 1
'open_registration':
description: Forthcoming...
type: boolean
example: true
'page':
type: integer
format: int64
minimum: 1
description: Forthcoming...
example: 1
'password':
type: string
description: '*Exact* password'
example: 'lemmy'
'post':
type: object
properties:
updated:
type: string
description: Forthcoming...
nullable: true
community_id:
$ref: '#/components/schemas/community_id'
embed_title:
type: string
nullable: true
description: 'If the **url** for an associated post was provided, this will be the *