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 ** data from that URL' example: 'Covid: Novichok scientist invents vaccine | The Independent' nsfw: $ref: '#/components/schemas/nsfw' deleted: $ref: '#/components/schemas/deleted' removed: $ref: '#/components/schemas/removed' locked: $ref: '#/components/schemas/locked' url: $ref: '#/components/schemas/url' published: $ref: '#/components/schemas/published' stickied: type: boolean description: 'Set to *true* if this post has been made *sticky* (that is, it is presented at the top of a list of posts)' example: false body: $ref: '#/components/schemas/body' embed_html: type: string nullable: true description: Forthcoming... creator_id: $ref: '#/components/schemas/creator_id' thumbnail_url: type: string nullable: true description: Forthcoming... id: $ref: '#/components/schemas/post_id' ap_id: $ref: '#/components/schemas/ap_id' embed_description: type: string nullable: true description: 'If the **url** for an associated post was provided, this will be the *meta name="description"* data from that URL' example: 'Scientist Leonid Rink has a murky past and is well-known for selling nerve agents to criminals' local: $ref: '#/components/schemas/local' name: $ref: '#/components/schemas/post_name' 'post_id': type: number description: The post number example: 223 'post_name': type: string description: 'The title of the post' example: 'Pot. Kettle. Black.' 'post_view': type: object properties: community: $ref: '#/components/schemas/community' read: $ref: '#/components/schemas/read' counts: type: object properties: score: $ref: '#/components/schemas/score' comments: description: The number of comments on this post type: number example: 0 published: $ref: '#/components/schemas/published' post_id: $ref: '#/components/schemas/post_id' upvotes: $ref: '#/components/schemas/upvotes' id: description: Forthcoming... type: number example: 117 newest_comment_time: description: 'The date and time of the most recent comment (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))' type: string example: '2021-02-16T11:22:27.615111' newest_comment_time_necro: description: Forthcoming... type: string example: '2021-02-23T13:26:54.956691' stickied: $ref: '#/components/schemas/stickied' downvotes: $ref: '#/components/schemas/downvotes' post: $ref: '#/components/schemas/post' creator_banned_from_community: type: boolean saved: type: boolean subscribed: type: boolean my_vote: type: number creator: $ref: '#/components/schemas/creator' 'posts': description: Total number of posts on the site or community type: number example: 115 'preferred_username': type: string description: 'If set, this is the name shown instead of, or as well as, *username* in some contexts (also known as **Display name**)' example: 'Queen of the Griddle' 'private_message': type: object properties: read: $ref: '#/components/schemas/unread_only' creator_id: $ref: '#/components/schemas/creator_id' id: description: Forthcoming... type: number example: 16 ap_id: $ref: '#/components/schemas/ap_id' published: $ref: '#/components/schemas/published' recipient_id: $ref: '#/components/schemas/recipient' local: $ref: '#/components/schemas/local' content: $ref: '#/components/schemas/content' deleted: $ref: '#/components/schemas/deleted' updated: description: Forthcoming... type: string nullable: true 'private_message_id': description: The id of the private message type: integer format: int32 example: 17 'private_message_view': type: object properties: private_message: $ref: '#/components/schemas/private_message' creator: $ref: '#/components/schemas/user' recipient: $ref: '#/components/schemas/user' 'published': type: string description: 'The date this site, community, post, comment or message was created (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))' example: '2021-01-21T16:42:39.897148' 'read': type: boolean description: |- Set to *true* if this post, comment or message has been read (or should be marked as being read). If you have marked something as being read, you can undo this yourself by setting this value to *false*. example: false 'reason': description: Give a reason for the action. Why was this post deleted? Why was this user banned? type: string example: 'Breach of terms and conditions' 'recipient': description: Forthcoming... type: number example: 77 'remove_data': description: |- - If set to *true*, also delete that user's comments and posts - If set *false*, *restore* that user's comments and posts type: boolean example: false 'removed': type: boolean description: |- Set to *true* if this community, post, comment or message should be or has been *permanently* deleted. An admin or moderator can undo a removal by setting this value to *false*. example: false 'replies': type: array items: properties: my_vote: $ref: '#/components/schemas/my_vote' post: $ref: '#/components/schemas/post' creator: $ref: '#/components/schemas/user' creator_banned_from_community: $ref: '#/components/schemas/creator_banned_from_community' community: $ref: '#/components/schemas/community' saved: $ref: '#/components/schemas/saved' counts: $ref: '#/components/schemas/counts' recipient: $ref: '#/components/schemas/recipient' comment: $ref: '#/components/schemas/comment' subscribed: $ref: '#/components/schemas/subscribed' 'repliesMentionsRequest': type: object required: - sort - unread_only - auth properties: sort: $ref: '#/components/schemas/sort' page: $ref: '#/components/schemas/page' limit: $ref: '#/components/schemas/limit' unread_only: $ref: '#/components/schemas/unread_only' auth: $ref: '#/components/schemas/authStringSchema' 'report_id': description: The number (id) of a raised report type: integer format: int32 example: 1 'report_request': type: object properties: page: $ref: '#/components/schemas/page' limit: $ref: '#/components/schemas/limit' community: $ref: '#/components/schemas/community_id' auth: $ref: '#/components/schemas/authStringSchema' 'resolve_request': type: object required: - report_id - resolved - auth properties: report_id: $ref: '#/components/schemas/report_id' resolved: $ref: '#/components/schemas/resolved' auth: $ref: '#/components/schemas/authStringSchema' 'resolve_response': type: object properties: report_id: $ref: '#/components/schemas/report_id' resolved: $ref: '#/components/schemas/resolved' 'resolved': description: Forthcoming... type: boolean example: true 'resolver_id': description: The user_id of the person who resolved the report type: number nullable: true 'saved': description: |- *true* if this post or comment has been or should be saved on the user's profile type: boolean example: false 'score': type: number description: Forthcoming... example: 1 'score_plus_minus': description: Forthcoming... type: integer format: int16 example: 1 minimum: -1 maximum: 1 'send_notifications_to_email': description: 'If set to *true*, the user will receive email notifications for any username mentions, post and comment replies' type: boolean example: false 'show_avatars': description: |- If set to *true*, displays other user's avatar images by their username in listings type: boolean example: true 'show_nsfw': type: boolean description: |- Set to *true* if you wish [NSFW](https://en.wikipedia.org/wiki/Not_safe_for_work) content to be viewable by this person/site example: false default: false 'site': type: object required: - show_nsfw properties: description: $ref: '#/components/schemas/site_description' banner: $ref: '#/components/schemas/banner' enable_downvotes: $ref: '#/components/schemas/enable_downvotes' published: $ref: '#/components/schemas/published' enable_nsfw: $ref: '#/components/schemas/show_nsfw' id: type: number name: $ref: '#/components/schemas/site_name' updated: description: Forthcoming... type: string nullable: true example: '2020-09-14T14:58:23.598513' icon: $ref: '#/components/schemas/icon' open_registration: $ref: '#/components/schemas/open_registration' creator_id: $ref: '#/components/schemas/creator_id' 'site_counts': type: object properties: users_active_week: $ref: '#/components/schemas/users_active_week' posts: $ref: '#/components/schemas/posts' comments: $ref: '#/components/schemas/comment_count' communities: description: Total number of communities on the site type: number example: 14 site_id: desciption: Forthcoming... type: number example: 1 users: description: Total number of registered users on the site type: number example: 51 id: desciption: Forthcoming... type: number example: 1 users_active_day: $ref: '#/components/schemas/users_active_day' users_active_month: $ref: '#/components/schemas/users_active_month' users_active_half_year: $ref: '#/components/schemas/users_active_half_year' 'site_description': description: |- A brief overview of the site's purpose type: string example: 'Federation test instance' 'site_name': description: The name of this site type: string example: 'Enterprise' 'site_properties': type: object required: - name - auth - enable_downvotes - open_registration - enable_nsfw properties: name: $ref: '#/components/schemas/site_name' enable_downvotes: $ref: '#/components/schemas/enable_downvotes' open_registration: $ref: '#/components/schemas/open_registration' enable_nsfw: $ref: '#/components/schemas/show_nsfw' description: $ref: '#/components/schemas/site_description' icon: $ref: '#/components/schemas/icon' banner: $ref: '#/components/schemas/banner' auth: $ref: '#/components/schemas/authStringSchema' 'site_view': type: object properties: counts: $ref: '#/components/schemas/counts' site: $ref: '#/components/schemas/site' creator: $ref: '#/components/schemas/creator' 'sort': type: string description: |- Sort the response from the server according to one of the following criteria: - *Active* - the hottest posts/communities, depending on votes, and newest comment publish date - *Hot* - the hottest posts/communities, depending on votes and publish date - *New* - the newest posts/communities - *TopDay* - the most upvoted posts/communities of the current day - *TopWeek* - the most upvoted posts/communities of the current week - *TopMonth* - the most upvoted posts/communities of the current month - *TopYear* - the most upvoted posts/communities of the current year - *TopAll* - the most upvoted posts/communities on the server. enum: - Active - Hot - New - TopDay - TopWeek - TopMonth - TopYear - TopAll 'stickied': description: |- Set to *true* if the post is 'sticky' type: boolean example: true 'subscribed': type: boolean description: Forthcoming... example: true 'success': description: '*true* if report request was successful' type: boolean example: true 'theme': description: 'The theme style to use' type: string example: 'darkly' enum: - Browser Default - cyborg - darkly - i386 - journal - litely - litera - materia - minty - sketchy - solar - united - vaporwave - vaporwave-dark 'title': type: string description: |- The title (**Display name**) of this community. If set, this is the name shown instead of, or as well as, *name* in some contexts example: 'BorgWatch' 'type_': description: What is the scope of the search? type: string example: 'All' enum: - All - Comments - Posts - Communities - Users - Url 'type_listing': description: Choose from one of three types of listing type: string example: 'All' enum: - All - Subscribed - Community 'unread_only': description: If *true*, only fetch unread comments or messages type: boolean example: false 'upvotes': type: number description: Forthcoming... example: 1 'url': type: string description: The link to the URL associated with the post nullable: true example: 'https:\/\/www.independent.co.uk\/news\/world\/europe\/covid-vaccine-novichok-russia-navalny-b1792778.html' 'user': type: object properties: user: type: object properties: updated: $ref: '#/components/schemas/user_updated' bio: $ref: '#/components/schemas/bio' admin: $ref: '#/components/schemas/admin' preferred_username: $ref: '#/components/schemas/preferred_username' deleted: $ref: '#/components/schemas/deleted' banned: $ref: '#/components/schemas/banned' published: $ref: '#/components/schemas/published' matrix_user_id: $ref: '#/components/schemas/matrix_user_id' avatar: $ref: '#/components/schemas/avatar' id: $ref: '#/components/schemas/user_id' actor_id: $ref: '#/components/schemas/actor_id' local: $ref: '#/components/schemas/local' banner: $ref: '#/components/schemas/banner' name: $ref: '#/components/schemas/user_name' 'user_id': description: |- That user's id number type: integer format: int32 example: 77 'user_name': type: string description: The user's username example: 'griddle' 'user_updated': type: string description: 'The last time this user profile was updated (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))' example: '2021-01-21T16:26:16.285610' 'user_view': type: object properties: counts: $ref: '#/components/schemas/counts' user: $ref: '#/components/schemas/user' 'username_or_email': type: string description: 'Username or registered email' example: 'lemmy' 'users_active_day': desciption: Number of 'active' users in the previous 24 hours type: number example: 2 'users_active_half_year': desciption: Number of 'active' users in the previous six months type: number example: 10 'users_active_month': desciption: Number of 'active' users in the previous 28 days type: number example: 10 'users_active_week': description: Number of 'active' users in the previous seven days type: number example: 5 'version': description: The version of the software running the Lemmy server type: string example: '0.9.6'