diff --git a/docs/api.md b/docs/api.md index ec02ebdd7..78f97c670 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,6 +1,130 @@ # Lemmy WebSocket API *Note: this may lag behind the actual API endpoints [here](../server/src/api).* + + +- [Data types](#data-types) +- [Basic usage](#basic-usage) + * [Endpoint](#endpoint) + * [Testing with Websocat](#testing-with-websocat) + * [Testing with the WebSocket JavaScript API](#testing-with-the-websocket-javascript-api) +- [Rate limits](#rate-limits) +- [Errors](#errors) +- [API documentation](#api-documentation) + * [Sort Types](#sort-types) + * [User / Authentication / Admin actions](#user--authentication--admin-actions) + + [Login](#login) + - [Request](#request) + - [Response](#response) + + [Register](#register) + - [Request](#request-1) + - [Response](#response-1) + + [Get User Details](#get-user-details) + - [Request](#request-2) + - [Response](#response-2) + + [Save User Settings](#save-user-settings) + - [Request](#request-3) + - [Response](#response-3) + + [Get Replies / Inbox](#get-replies--inbox) + - [Request](#request-4) + - [Response](#response-4) + + [Mark all replies as read](#mark-all-replies-as-read) + - [Request](#request-5) + - [Response](#response-5) + + [Delete Account](#delete-account) + - [Request](#request-6) + - [Response](#response-6) + + [Add admin](#add-admin) + - [Request](#request-7) + - [Response](#response-7) + + [Ban user](#ban-user) + - [Request](#request-8) + - [Response](#response-8) + * [Site](#site) + + [List Categories](#list-categories) + - [Request](#request-9) + - [Response](#response-9) + + [Search](#search) + - [Request](#request-10) + - [Response](#response-10) + + [Get Modlog](#get-modlog) + - [Request](#request-11) + - [Response](#response-11) + + [Create Site](#create-site) + - [Request](#request-12) + - [Response](#response-12) + + [Edit Site](#edit-site) + - [Request](#request-13) + - [Response](#response-13) + + [Get Site](#get-site) + - [Request](#request-14) + - [Response](#response-14) + + [Transfer Site](#transfer-site) + - [Request](#request-15) + - [Response](#response-15) + * [Community](#community) + + [Get Community](#get-community) + - [Request](#request-16) + - [Response](#response-16) + + [Create Community](#create-community) + - [Request](#request-17) + - [Response](#response-17) + + [List Communities](#list-communities) + - [Request](#request-18) + - [Response](#response-18) + + [Ban from Community](#ban-from-community) + - [Request](#request-19) + - [Response](#response-19) + + [Add Mod to Community](#add-mod-to-community) + - [Request](#request-20) + - [Response](#response-20) + + [Edit Community](#edit-community) + - [Request](#request-21) + - [Response](#response-21) + + [Follow Community](#follow-community) + - [Request](#request-22) + - [Response](#response-22) + + [Get Followed Communities](#get-followed-communities) + - [Request](#request-23) + - [Response](#response-23) + + [Transfer Community](#transfer-community) + - [Request](#request-24) + - [Response](#response-24) + * [Post](#post) + + [Create Post](#create-post) + - [Request](#request-25) + - [Response](#response-25) + + [Get Post](#get-post) + - [Request](#request-26) + - [Response](#response-26) + + [Get Posts](#get-posts) + - [Request](#request-27) + - [Response](#response-27) + + [Create Post Like](#create-post-like) + - [Request](#request-28) + - [Response](#response-28) + + [Edit Post](#edit-post) + - [Request](#request-29) + - [Response](#response-29) + + [Save Post](#save-post) + - [Request](#request-30) + - [Response](#response-30) + * [Comment](#comment) + + [Create Comment](#create-comment) + - [Request](#request-31) + - [Response](#response-31) + + [Edit Comment](#edit-comment) + - [Request](#request-32) + - [Response](#response-32) + + [Save Comment](#save-comment) + - [Request](#request-33) + - [Response](#response-33) + + [Create Comment Like](#create-comment-like) + - [Request](#request-34) + - [Response](#response-34) + + + ## Data types - `i16`, `i32` and `i64` are respectively [16-bit](https://en.wikipedia.org/wiki/16-bit), [32-bit](https://en.wikipedia.org/wiki/32-bit) and [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) integers. @@ -19,13 +143,18 @@ Connect to ws://***host***/api/v1/ws to get started. If the ***`host`*** supports secure connections, you can use wss://***host***/api/v1/ws. -### Testing with [Websocat](https://github.com/vi/websocat) +### Testing with Websocat + +[Websocat link](https://github.com/vi/websocat) + `websocat ws://127.0.0.1:8536/api/v1/ws -nt` A simple test command: `{"op": "ListCategories"}` -### Testing with the [WebSocket JavaScript API](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) +### Testing with the WebSocket JavaScript API + +[WebSocket JavaScript API](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) ```javascript var ws = new WebSocket("ws://" + host + "/api/v1/ws"); ws.onopen = function () {