{ "openapi": "3.1.0", "info": { "title": "Lolzteam Public API: Forum", "description": "## [Market API](https://lzt-market.readme.io) ## [Telegram chat](https://t.me/lztmarket_api) ## Free API Client packages * [Node.js](https://github.com/NztForum/node-lzt) * [Python](https://github.com/AS7RIDENIED/LOLZTEAM) - [Documentation](https://github.com/AS7RIDENIED/LOLZTEAM/blob/main/Documentation/Forum.md) ## Rate limit 300 requests per minute (0.2 second delay between requests). If you exceed the limit, the response code 429 will be returned to you. ## Token configuration You can pass the token as a query parameter or in the request headers * Query parameter: **oauth_token=_token_** * Header: **Authorization**: \"**Bearer _token_**\" ## Discoverability System information and availability can be determined by sending a GET request to **/** (index route). A list of resources will be returned. If the request is authenticated, the revisions of API system and installed modules will also made available for further inspection. ## Status codes | Code | Name | Description | | ---- | --------------------- | ------------------------------------------------------------------------------------------------------- | | 200 | OK | The request was successfully completed. | | 400 | Bad Request | The request is invalid due to client error. | | 401 | Unauthorized | [Authentication is required.](/reference/information#/token-configuration) | | 403 | Forbidden | You do not have permission to view this page or perform this action. | | 429 | Too Many Requests | [Too many requests in a short period.](/reference/information#/rate-limit) | | 500 | Internal Server Error | An internal server error occurred, try again later or report it [here](https://lolz.live/forums/bugs/). | | 502 | Bad Gateway | The gateway encountered an error while processing the request, try again later. | | 503 | Service Unavailable | The server is temporarily unavailable, try again later. | | 504 | Gateway Timeout | The gateway timed out waiting for a response, try again later. | ## Common Parameters ### i18n All API requests accept **locale** parameter to switch user facing messages to specified language. The value must be a valid language code (ISO 639-1) with optional inclusion of a valid country code (ISO 3166-1 alpha 2) separated by a hyphen (\"-\"). If no complete match can be found, a language with the same language code (even with different country code) will be used. In the worst case that there are no installed languages of requested language code, the default language will be used. Since api-2015100401. ### Fields filtering For API method with resource data like a forum or a thread, the data can be filtered to get interested fields only. The general format is \"key.sub_key.deep_key\" if you want to include/exclude a specific field. The including rules take precedence over excluding ones. * **fields_include**: comma-separated list of fields of a resource. For additional fields, it is possible to use wildcard (*****) to include all default fields before specifying additional ones. * **fields_exclude**: comma-separated list of fields of a resource to exclude in the response. Since r2016062001, it is possible to use wildcard as a prefix (e.g. \"*.key\") to exclude the field everywhere. ### Resource ordering For API method with list of resources, the resources can be ordered differently with the parameter **order**. List of supported orders will be specified for each method. The default order will always be **natural**. Most of the time, the natural order is the order of which each resource is added to the system (resource id for example). ### Encryption For sensitive information like password, encryption can be used to increase data security. For all encryption with key support, the **client_secret** will be used as the key. List of supported encryptions: * **aes128**: AES 128 bit encryption (mode: ECB, padding: PKCS#7). Because of algorithm limitation, the binary md5 hash of key will be used instead of the key itself. ### Headers * **Api-Bb-Code-Chr: !youtube**: Replace multimedia tags (except youtube) in bbcode html with **tools/chr** link. Since forum-2018100301. * **Api-Username-Inline-Style**: Return rich username for **username** fields. Since forum-2018052101. ### Content-Type API always returns the response as application/json (With few exceptions). You should send requests to API with application/json or application/x-www-form-urlencoded content type. You can import the API into Postman using [this](https://raw.githubusercontent.com/AS7RIDENIED/LOLZTEAM/refs/heads/main/Official%20Documentation/forum.json) file.", "version": "1.1.30a" }, "servers": [ { "url": "https://prod-api.lolz.live", "description": "Production." }, { "url": "https://prod-api.zelenka.guru", "description": "Production 2." }, { "url": "https://api.lolz.live", "description": "Production Alternative." }, { "url": "https://api.zelenka.guru", "description": "Production 2 Alternative." } ], "paths": { "/oauth/token": { "post": { "tags": [ "Authentication" ], "summary": "Get Access Token", "description": "Obtain an access token using various grant types.\n\nSupports the following grant types:\n- Client Credentials\n- Authorization Code\n- Refresh Token\n- Password", "operationId": "OAuth.Token", "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "oneOf": [ { "title": "Client Credentials", "required": [ "grant_type", "client_id", "client_secret", "scope" ], "properties": { "grant_type": { "type": "string", "description": "Grant type.", "enum": [ "client_credentials" ] }, "client_id": { "type": "string", "description": "Client ID." }, "client_secret": { "type": "string", "description": "Client secret." }, "scope": { "type": "array", "description": "Scope.", "uniqueItems": true, "items": { "type": "string", "enum": [ "basic", "read", "post", "conversate", "market", "payment", "invoice" ] } } } }, { "title": "Authorization Code", "required": [ "code", "client_id", "client_secret", "redirect_uri", "grant_type", "scope" ], "properties": { "grant_type": { "type": "string", "description": "Grant type.", "enum": [ "authorization_code" ] }, "code": { "type": "string", "description": "Authorization code." }, "client_id": { "type": "string", "description": "Client ID." }, "client_secret": { "type": "string", "description": "Client secret." }, "redirect_uri": { "type": "string", "description": "Redirect URI." }, "scope": { "type": "array", "description": "Scope.", "uniqueItems": true, "items": { "type": "string", "enum": [ "basic", "read", "post", "conversate", "market", "payment", "invoice" ] } } } }, { "title": "Refresh Token", "required": [ "refresh_token", "client_id", "client_secret", "grant_type" ], "properties": { "grant_type": { "type": "string", "description": "Grant type.", "enum": [ "refresh_token" ] }, "refresh_token": { "type": "string", "description": "Refresh token." }, "client_id": { "type": "string", "description": "Client ID." }, "client_secret": { "type": "string", "description": "Client secret." } } }, { "title": "Password", "required": [ "username", "password", "client_id", "client_secret", "grant_type", "scope" ], "properties": { "grant_type": { "type": "string", "description": "Grant type.", "enum": [ "password" ] }, "username": { "type": "string", "description": "Account username/email." }, "password": { "type": "string", "description": "Account password." }, "client_id": { "type": "string", "description": "Client ID." }, "client_secret": { "type": "string", "description": "Client secret." }, "scope": { "type": "array", "description": "Scope.", "uniqueItems": true, "items": { "type": "string", "enum": [ "basic", "read", "post", "conversate", "market", "payment", "invoice" ] } } } } ] }, "encoding": { "scope": { "style": "spaceDelimited" } } } } }, "responses": { "200": { "description": "Successful token response", "content": { "application/json": { "schema": { "type": "object", "properties": { "access_token": { "type": "string", "description": "The access token issued by the authorization server" }, "token_type": { "type": "string", "description": "The type of the token", "example": "Bearer" }, "expires_in": { "type": "integer", "description": "The lifetime in seconds of the access token" }, "refresh_token": { "type": "string", "description": "The refresh token, which can be used to obtain new access tokens" }, "scope": { "type": "string", "description": "The scope of the access token" } }, "required": [ "access_token", "token_type", "expires_in" ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "description": "Error code" }, "error_description": { "type": "string", "description": "Human-readable error description" } } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string", "description": "Error code" }, "error_description": { "type": "string", "description": "Human-readable error description" } } } } } } }, "security": [] } }, "/css": { "get": { "tags": [ "Assets" ], "summary": "Get CSS", "description": "Gets css rulesets for requested selectors.", "operationId": "Assets.Css", "parameters": [ { "name": "css", "in": "query", "description": "The names or identifiers of the CSS selectors to retrieve.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "contents", "system_info" ], "properties": { "contents": { "title": "Contents", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/categories": { "get": { "tags": [ "Categories" ], "summary": "Get Categories", "description": "List of all categories in the system.\n\nRequired scopes:\n+ **read**", "operationId": "Categories.List", "parameters": [ { "name": "parent_category_id", "in": "query", "description": "Id of parent category. If exists, filter categories that are direct children of that category.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent Category Id", "type": "integer", "description": "Id of parent category. If exists, filter categories that are direct children of that category." } }, { "name": "parent_forum_id", "in": "query", "description": "Id of parent forum. If exists, filter categories that are direct children of that forum.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent Forum Id", "type": "integer", "description": "Id of parent forum. If exists, filter categories that are direct children of that forum." } }, { "name": "order", "in": "query", "description": "Ordering of categories.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of categories.", "enum": [ "natural", "list" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "categories": { "title": "Categories", "type": "array", "items": { "type": "object", "properties": { "category_id": { "title": "Category", "type": "integer" }, "category_title": { "title": "Category", "type": "string" }, "category_description": { "title": "Category", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] } }, "required": [ "category_id", "category_title", "category_description", "links", "permissions" ] } }, "categories_total": { "title": "Categories", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "categories", "categories_total", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/categories/{category_id}": { "get": { "tags": [ "Categories" ], "summary": "Get Category", "description": "Detail information of a category.\n\nRequired scopes:\n+ **read**", "operationId": "Categories.Get", "parameters": [ { "name": "category_id", "in": "path", "description": "Id of category.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Categoryid", "type": "integer", "description": "Id of category." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "category": { "title": "Category", "type": "object", "properties": { "category_id": { "title": "Category", "type": "integer" }, "category_title": { "title": "Category", "type": "string" }, "category_description": { "title": "Category", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] } }, "required": [ "category_id", "category_title", "category_description", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "category", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forums": { "get": { "tags": [ "Forums" ], "summary": "Get Forums", "description": "List of all forums in the system.\n\nRequired scopes:\n+ **read**", "operationId": "Forums.List", "parameters": [ { "name": "parent_category_id", "in": "query", "description": "Id of parent category. If exists, filter forums that are direct children of that category.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent Category Id", "type": "integer", "description": "Id of parent category. If exists, filter forums that are direct children of that category." } }, { "name": "parent_forum_id", "in": "query", "description": "Id of parent forum. If exists, filter forums that are direct children of that forum.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent Forum Id", "type": "integer", "description": "Id of parent forum. If exists, filter forums that are direct children of that forum." } }, { "name": "order", "in": "query", "description": "Ordering of forums.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of forums.", "enum": [ "natural", "list" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "forums", "forums_total", "tabs", "system_info" ], "properties": { "forums": { "title": "Forums", "type": "array", "items": { "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "forums_total": { "title": "Forums", "type": "integer" }, "tabs": { "title": "Tabs", "type": "array", "items": { "type": "object", "properties": { "link_title": { "title": "Link", "type": "string" }, "isDefault": { "title": "Is Default", "type": "boolean" }, "title": { "title": "Title", "type": "string" }, "isHidden": { "title": "Is Hidden", "type": "boolean" } }, "required": [ "link_title", "isDefault", "title", "isHidden" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forums/grouped": { "get": { "tags": [ "Forums" ], "summary": "Get Forums Tree", "description": "Returns grouped forums.\n\nRequired scopes:\n+ **read**", "operationId": "Forums.Grouped", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "tabs", "system_info" ], "properties": { "data": { "title": "Data", "type": "object", "properties": { "0": { "title": "", "type": "object", "properties": { "0": { "title": "", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "parent_node_id": { "title": "Parent", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "parent_node_id", "links", "permissions", "forum_is_followed" ] } }, "required": [ "0" ] } }, "required": [ "0" ] }, "tabs": { "title": "Tabs", "type": "array", "items": { "type": "object", "properties": { "link_title": { "title": "Link", "type": "string" }, "isDefault": { "title": "Is Default", "type": "boolean" }, "title": { "title": "Title", "type": "string" }, "isHidden": { "title": "Is Hidden", "type": "boolean" } }, "required": [ "link_title", "isDefault", "title", "isHidden" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forums/{forum_id}": { "get": { "tags": [ "Forums" ], "summary": "Get Forum", "description": "Detail information of a forum.\n\nRequired scopes:\n+ **read**", "operationId": "Forums.Get", "parameters": [ { "name": "forum_id", "in": "path", "description": "Id of forum.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of forum." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "forum", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forums/{forum_id}/followers": { "get": { "tags": [ "Forums" ], "summary": "Get Followers", "description": "List of a forum's followers. For privacy reason, only the current user will be included in the list (if the user follows the specified forum).\n\nRequired scopes:\n+ **read**", "operationId": "Forums.Followers", "parameters": [ { "name": "forum_id", "in": "path", "description": "Id of forum.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of forum." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "follow": { "title": "Follow", "type": "object", "properties": { "post": { "title": "Post", "type": "boolean" }, "alert": { "title": "Alert", "type": "boolean" }, "email": { "title": "Email", "type": "boolean" } }, "required": [ "post", "alert", "email" ] } }, "required": [ "user_id", "username", "follow" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Forums" ], "summary": "Follow Forum", "description": "Follow a forum.\n\nRequired scopes:\n+ **post**", "operationId": "Forums.Follow", "parameters": [ { "name": "forum_id", "in": "path", "description": "Id of forum.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of forum." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "post": { "title": "Post", "type": "boolean", "description": "Whether to receive notification for post." }, "alert": { "title": "Alert", "type": "boolean", "description": "Whether to receive notification as alert." }, "email": { "title": "Email", "type": "boolean", "description": "Whether to receive notification as email." }, "prefix_ids": { "title": "Prefix ids", "type": "array", "description": "Prefix ids.", "items": { "type": "integer" } }, "minimal_contest_amount": { "title": "Minimal Contest Amount", "type": "integer", "description": "Minimal contest amount. (Only for 766 forumId)", "minimum": 0 } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Forums" ], "summary": "Unfollow Forum", "description": "Unfollow a forum.\n\nRequired scopes:\n+ **post**", "operationId": "Forums.Unfollow", "parameters": [ { "name": "forum_id", "in": "path", "description": "Id of forum.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of forum." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/forums/followed": { "get": { "tags": [ "Forums" ], "summary": "Get Followed Forums", "description": "List of followed forums by current user.\n\nRequired scopes:\n+ **read**", "operationId": "Forums.Followed", "parameters": [ { "name": "total", "in": "query", "description": "If included in the request, only the forum count is returned as **forums_total**.", "required": false, "style": "form", "explode": true, "schema": { "title": "Total", "type": "boolean", "description": "If included in the request, only the forum count is returned as **forums_total**." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "forums": { "title": "Forums", "type": "array", "items": { "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" }, "follow": { "title": "Follow", "type": "object", "properties": { "post": { "title": "Post", "type": "boolean" }, "alert": { "title": "Alert", "type": "boolean" }, "email": { "title": "Email", "type": "boolean" } }, "required": [ "post", "alert", "email" ] } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed", "follow" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "forums", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forums/feed/options": { "get": { "tags": [ "Forums" ], "summary": "Get Feed Options", "description": "Returns available options for the forums feed.\n\nRequired scopes:\n+ **read**", "operationId": "Forums.GetFeedOptions", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "forums", "excluded_forums_ids", "default_excluded_forums_ids", "keywords", "system_info" ], "properties": { "forums": { "title": "Forums", "type": "array", "items": { "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "parent_node_id": { "title": "Parent", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" }, "has_children": { "title": "Has", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "parent_node_id", "links", "permissions", "forum_is_followed", "has_children" ] } }, "excluded_forums_ids": { "title": "Excluded", "type": "array", "items": { "type": "integer" } }, "default_excluded_forums_ids": { "title": "Default", "type": "array", "items": { "type": "integer" } }, "keywords": { "title": "Keywords", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "put": { "tags": [ "Forums" ], "summary": "Edit Feed Options", "description": "Edit feed options.\n\nRequired scopes:\n+ **post**", "operationId": "Forums.EditFeedOptions", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "node_ids": { "description": "Array of forum ids to exclude from the feed.", "type": "array", "items": { "type": "integer" } }, "keywords": { "description": "List of keywords to exclude specific threads from the feed.", "title": "Keywords", "type": "array", "items": { "type": "string" } } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/link-forums": { "get": { "tags": [ "Link Forums" ], "summary": "Get Links Forum", "description": "List of all link forums.\n\nRequired scopes:\n+ **read**", "operationId": "Links.List", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "link-forums", "link-forums_total", "system_info" ], "properties": { "link-forums": { "title": "Link", "type": "array", "items": { "$ref": "#/components/schemas/Resp_LinkModel" } }, "link-forums_total": { "title": "Link", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/link-forums/{link_id}": { "get": { "tags": [ "Link Forums" ], "summary": "Get Link Forum", "description": "Detail information of a link forum.\n\nRequired scopes:\n+ **read**", "operationId": "Links.Get", "parameters": [ { "name": "link_id", "in": "path", "description": "Id of link forum.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of link forum." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "link-forum", "system_info" ], "properties": { "link-forum": { "$ref": "#/components/schemas/Resp_LinkModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/pages": { "get": { "tags": [ "Pages" ], "summary": "Get Pages", "description": "List of all pages in the system.\n\nRequired scopes:\n+ **read**", "operationId": "Pages.List", "parameters": [ { "name": "parent_page_id", "in": "query", "description": "Id of parent page. If exists, filter pages that are direct children of that page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent Page Id", "type": "integer", "description": "Id of parent page. If exists, filter pages that are direct children of that page." } }, { "name": "order", "in": "query", "description": "Ordering of pages.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of pages.", "enum": [ "natural", "list" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "pages": { "title": "Pages", "type": "array", "items": { "type": "object", "properties": { "page_id": { "title": "Page", "type": "integer" }, "page_title": { "title": "Page", "type": "string" }, "page_description": { "title": "Page", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-pages": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-pages" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] } }, "required": [ "page_id", "page_title", "page_description", "links", "permissions" ] } }, "pages_total": { "title": "Pages", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "pages", "pages_total", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/pages/{page_id}": { "get": { "tags": [ "Pages" ], "summary": "Get Page", "description": "Detail information of a page.\n\nRequired scopes:\n+ **read**", "operationId": "Pages.Get", "parameters": [ { "name": "page_id", "in": "path", "description": "Id of page.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Page Id", "type": "integer", "description": "Id of page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "page": { "title": "Page", "type": "object", "properties": { "page_id": { "title": "Page", "type": "integer" }, "page_title": { "title": "Page", "type": "string" }, "page_description": { "title": "Page", "type": "string" }, "page_view_count": { "title": "Page", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-pages": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-pages" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] }, "page_html": { "title": "Page", "type": "string" } }, "required": [ "page_id", "page_title", "page_description", "page_view_count", "links", "permissions", "page_html" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "page", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/navigation": { "get": { "tags": [ "Navigation" ], "summary": "Get Navigation", "description": "List of navigation elements within the system.\n\nRequired scopes:\n+ **read**", "operationId": "Navigation.List", "parameters": [ { "name": "parent", "in": "query", "description": "Id of parent element. If exists, filter elements that are direct children of that element.", "required": false, "style": "form", "explode": true, "schema": { "title": "Parent", "type": "integer", "description": "Id of parent element. If exists, filter elements that are direct children of that element." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "elements": { "title": "Elements", "type": "array", "items": { "type": "object", "properties": { "category_id": { "title": "Category", "type": "integer" }, "category_title": { "title": "Category", "type": "string" }, "category_description": { "title": "Category", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "sub-elements": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "sub-elements" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] }, "navigation_type": { "title": "Navigation", "type": "string" }, "navigation_id": { "title": "Navigation", "type": "integer" }, "navigation_parent_id": { "title": "Navigation", "type": "integer" }, "has_sub_elements": { "title": "Has", "type": "boolean" } }, "required": [ "category_id", "category_title", "category_description", "links", "permissions", "navigation_type", "navigation_id", "navigation_parent_id", "has_sub_elements" ] } }, "elements_count": { "title": "Elements", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "elements", "elements_count", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads": { "get": { "tags": [ "Threads" ], "summary": "Get Threads", "description": "List of threads in a forum (with pagination).\n\nRequired scopes:\n+ **read**", "operationId": "Threads.List", "parameters": [ { "name": "forum_id", "in": "query", "description": "Id of the containing forum.", "required": false, "style": "form", "explode": true, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of the containing forum." } }, { "name": "tab", "in": "query", "description": "Tab to get threads from.", "required": false, "style": "form", "explode": true, "schema": { "title": "Tab", "type": "string", "description": "Tab to get threads from.", "examples": [ "main", "mythreads", "viewedthreads", "userthreads", "fave", "compilation", "scheduledthreads" ] } }, { "name": "state", "in": "query", "description": "Thread state. Works only if **forum_id** is set.", "required": false, "style": "form", "explode": true, "schema": { "title": "State", "type": "string", "enum": [ "active", "closed" ], "description": "Thread state. Works only if **forum_id** is set." } }, { "name": "period", "in": "query", "description": "Filter to get only threads created within the selected period. Works only if **forum_id** is set.", "required": false, "style": "form", "explode": true, "schema": { "title": "Period", "type": "string", "enum": [ "day", "week", "month", "year" ], "description": "Filter to get only threads created within the selected period. Works only if **forum_id** is set." } }, { "name": "title", "in": "query", "description": "Thread title.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Title", "type": "string", "description": "Thread title." } }, { "name": "title_only", "in": "query", "description": "Search only in titles.", "required": false, "style": "form", "explode": true, "schema": { "title": "Title Only", "type": "boolean", "description": "Search only in titles." } }, { "name": "creator_user_id", "in": "query", "description": "Filter to get only threads created by the specified user.", "required": false, "style": "form", "explode": true, "schema": { "title": "Creator User Id", "type": "integer", "description": "Filter to get only threads created by the specified user." } }, { "name": "sticky", "in": "query", "description": "Filter to get only sticky or non-sticky threads. By default, all threads will be included and sticky ones will be at the top of the result on the first page. In mixed mode, sticky threads are not counted towards **threads_total** and does not affect pagination.", "required": false, "style": "form", "explode": true, "schema": { "title": "Sticky", "type": "boolean", "description": "Filter to get only sticky or non-sticky threads. By default, all threads will be included and sticky ones will be at the top of the result on the first page. In mixed mode, sticky threads are not counted towards **threads_total** and does not affect pagination." } }, { "name": "prefix_ids[]", "in": "query", "description": "Filter to get only threads with the specified prefix.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Prefix Id", "type": "array", "description": "Filter to get only threads with the specified prefix.", "items": { "type": "integer", "description": "Filter to get only threads with the specified prefix." } } }, { "name": "prefix_ids_not[]", "in": "query", "description": "Filter to get only threads without the specified prefix.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Prefix Id", "type": "array", "description": "Filter to get only threads without the specified prefix.", "items": { "type": "integer", "description": "Filter to get only threads without the specified prefix." } } }, { "name": "thread_tag_id", "in": "query", "description": "Filter to get only threads with the specified tag.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Tag Id", "type": "integer", "description": "Filter to get only threads with the specified tag." } }, { "name": "page", "in": "query", "description": "Page number of threads.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of threads." } }, { "name": "limit", "in": "query", "description": "Number of threads in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of threads in a page." } }, { "name": "order", "in": "query", "description": "Ordering of threads.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "description": "Ordering of threads.", "type": "string", "enum": [ "post_date", "last_post_date", "reply_count", "reply_count_asc", "first_post_likes", "vote_count" ] } }, { "name": "direction", "in": "query", "description": "Direction of threads ordering.", "required": false, "style": "form", "explode": true, "schema": { "title": "Direction", "description": "Direction of threads ordering.", "type": "string", "enum": [ "asc", "desc" ] } }, { "name": "thread_create_date", "in": "query", "description": "Filter threads by creation date. Only works with 'thread_create_date' and 'thread_create_date_reverse' ordering.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Create Date", "type": "integer", "description": "Filter threads by creation date. Only works with 'thread_create_date' and 'thread_create_date_reverse' ordering." } }, { "name": "thread_update_date", "in": "query", "description": "Filter threads by update date. Only works with 'thread_update_date' and 'thread_update_date_reverse' ordering.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Update Date", "type": "integer", "description": "Filter threads by update date. Only works with 'thread_update_date' and 'thread_update_date_reverse' ordering." } }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "latest_posts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "threads": { "title": "Threads", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ThreadModel" } }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] }, "threads_total": { "title": "Threads", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "threads", "forum", "threads_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Threads" ], "summary": "Create Thread", "description": "Create a new thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Create", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "forum_id", "post_body" ], "properties": { "post_body": { "title": "Post Body", "type": "string", "description": "Content of the new thread." }, "forum_id": { "title": "Forum Id", "type": "integer", "description": "Id of the target forum." }, "title": { "title": "Thread Title", "type": "string", "description": "Thread title. Can be skipped if **title_en** set." }, "title_en": { "title": "Thread Title English", "type": "string", "description": "Thread english title. Can be skipped if **title** set." }, "prefix_id": { "title": "Thread Prefix Id", "type": "array", "description": "Prefix ids.", "items": { "type": "integer" } }, "tags": { "title": "Thread Tags", "type": "array", "description": "Thread tags.", "items": { "type": "string" } }, "hide_contacts": { "title": "Hide contacts", "type": "boolean", "description": "Hide contacts." }, "allow_ask_hidden_content": { "title": "Allow ask hidden content", "type": "boolean", "description": "Allow ask hidden content." }, "reply_group": { "title": "Reply group", "type": "integer", "description": "Allow to reply only users with chosen or higher group.", "x-enumDescriptions": { "0": "Only staff members and curators can reply in thread", "2": "Everyone can reply in thread", "21": "Local and higher can reply in thread", "22": "Resident or higher can reply in thread", "23": "Expert or higher can reply in thread", "60": "Guru and higher can reply in thread", "351": "Artificial Intelligence and higher can reply in thread" }, "default": 2, "enum": [ 0, 2, 21, 22, 23, 60, 351 ] }, "comment_ignore_group": { "title": "Comment ignore group", "type": "boolean", "description": "Allow commenting if user can't post in thread." }, "dont_alert_followers": { "title": "Don't alert followers", "type": "boolean", "description": "Don't alert followers about thread creation." }, "schedule_date": { "title": "Schedule date", "type": "string", "description": "Date to schedule thread creation (format: `DD-MM-YYYY`)." }, "schedule_time": { "title": "Schedule time", "type": "string", "description": "Time to schedule thread creation (format: `HH:MM`)." }, "watch_thread_state": { "title": "Watch thread state", "type": "boolean", "description": "Watch thread state." }, "watch_thread": { "title": "Watch thread", "type": "boolean", "description": "Receive forum notifications of new posts in this thread." }, "watch_thread_email": { "title": "Watch thread email", "type": "boolean", "description": "Receive email notifications of new posts in this thread." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "thread", "system_info" ], "properties": { "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/contests": { "post": { "tags": [ "Threads" ], "summary": "Create Contest", "description": "Create a new contest.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.CreateContest", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "post_body", "contest_type", "prize_type", "require_like_count", "require_total_like_count" ], "properties": { "post_body": { "title": "Post Body", "type": "string", "description": "Content of the new contest." }, "title": { "title": "Thread Title", "type": "string", "description": "Thread title. Can be skipped if **title_en** set." }, "title_en": { "title": "Thread Title English", "type": "string", "description": "Thread english title. Can be skipped if **title** set." }, "contest_type": { "title": "Contest Type", "type": "string", "description": "Contest type.", "enum": [ "by_finish_date" ], "default": "by_finish_date" }, "length_value": { "title": "Length Value", "type": "integer", "description": "Giveaway duration value. The maximum duration is 3 days. Required if **contest_type** is **by_finish_date**.", "minimum": 1 }, "length_option": { "title": "Length Option", "type": "string", "description": "Giveaway duration type. The maximum duration is 3 days. Required if **contest_type** is **by_finish_date**.", "enum": [ "minutes", "hours", "days" ] }, "prize_type": { "title": "Prize Type", "type": "string", "description": "Prize type.", "enum": [ "money", "upgrades" ] }, "count_winners": { "title": "Count Winners", "type": "integer", "description": "Winner count (prize count). Optional if **prize_type** is **money**.", "minimum": 1, "maximum": 100 }, "prize_data_money": { "title": "Prize Data Money", "type": "number", "description": "How much money will each winner receive. Optional if **prize_type** is **money**." }, "is_money_places": { "title": "Count Winners", "type": "boolean", "description": "Enable the distribution of money prizes by places. Optional if **prize_type** is **money**." }, "prize_data_places": { "title": "Prize Data Money", "type": "array", "description": "How much money will receive each place. Required if **is_money_places** is **1**.", "items": { "type": "number" } }, "prize_data_upgrade": { "title": "Prize Data Upgrade", "type": "integer", "description": "Which upgrade will each winner receive. Required if **prize_type** is **upgrades**.", "x-enumDescriptions": { "1": "Supreme - 1500 ₽", "6": "Legend - 2999 ₽", "12": "AntiPublic.One Plus subscription - 2000 ₽", "14": "Uniq - 7500 ₽", "17": "18+ Photo leaks – 6 months - 1200 ₽", "19": "Auto giveaway participation - 1000 ₽", "20": "AntiPublic.one Premium subscription - 5000 ₽", "21": "AntiPublic.one Premium subscription - 500 ₽", "22": "Auto buy on Market - 999 ₽" }, "enum": [ 1, 6, 12, 14, 17, 19, 20, 21, 22 ] }, "require_like_count": { "title": "Require Like Count", "type": "integer", "description": "Sympathies for this week." }, "require_total_like_count": { "title": "Require Total Like Count", "type": "integer", "description": "Sympathies for all time." }, "secret_answer": { "title": "Secret Answer", "type": "string", "description": "Secret answer of your account." }, "tags": { "title": "Thread Tags", "type": "array", "description": "Thread tags.", "items": { "type": "string" } }, "reply_group": { "title": "Reply group", "type": "integer", "description": "Allow to reply only users with chosen or higher group.", "x-enumDescriptions": { "0": "Only staff members and curators can reply in thread", "2": "Everyone can reply in thread", "21": "Local and higher can reply in thread", "22": "Resident or higher can reply in thread", "23": "Expert or higher can reply in thread", "60": "Guru and higher can reply in thread", "351": "Artificial Intelligence and higher can reply in thread" }, "default": 2, "enum": [ 0, 2, 21, 22, 23, 60, 351 ] }, "comment_ignore_group": { "title": "Comment ignore group", "type": "boolean", "description": "Allow commenting if user can't post in thread." }, "dont_alert_followers": { "title": "Don't alert followers", "type": "boolean", "description": "Don't alert followers about thread creation." }, "hide_contacts": { "title": "Hide contacts", "type": "boolean", "description": "Hide contacts." }, "allow_ask_hidden_content": { "title": "Allow ask hidden content", "type": "boolean", "description": "Allow ask hidden content." }, "schedule_date": { "title": "Schedule date", "type": "string", "description": "Date to schedule thread creation (format: `DD-MM-YYYY`)." }, "schedule_time": { "title": "Schedule time", "type": "string", "description": "Time to schedule thread creation (format: `HH:MM`)." }, "watch_thread_state": { "title": "Watch thread state", "type": "boolean", "description": "Watch thread state." }, "watch_thread": { "title": "Watch thread", "type": "boolean", "description": "Receive forum notifications of new posts in this thread." }, "watch_thread_email": { "title": "Watch thread email", "type": "boolean", "description": "Receive email notifications of new posts in this thread." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "thread", "system_info" ], "properties": { "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/claims": { "post": { "tags": [ "Threads" ], "summary": "Create Claim", "description": "Create a Claim.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Claim", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "as_responder", "as_is_market_deal", "as_amount", "transfer_type", "post_body" ], "properties": { "as_responder": { "type": "string", "description": "To whom the complaint is filed. Specify a nickname or a link to the profile." }, "as_is_market_deal": { "type": "boolean", "description": "Did you buy account on the market?" }, "as_market_item_id": { "type": "integer", "description": "Market item id.\nRequired if **as_is_market_deal** is 1." }, "as_data": { "type": "string", "description": "Contacts and wallets of the responder. Specify the known data about the responder, if any.\nOptional if **as_is_market_deal** is 0." }, "as_amount": { "type": "number", "description": "Indicate the amount by which the responder deceived you." }, "currency": { "type": "string", "description": "Currency of Claim.", "enum": [ "rub", "uah", "kzt", "byn", "usd", "eur", "gbp", "cny", "try" ] }, "transfer_type": { "type": "string", "description": "The transaction took place through a guarantor or there was a transfer to the market with a hold?\nRequired if **as_is_market_deal** is 0.", "enum": [ "guarantor", "safe", "notsafe" ] }, "pay_claim": { "type": "string", "description": "Pay claim fee now or later. (Only for **transfer_type** = **notsafe**)", "enum": [ "now", "later" ] }, "as_funds_receipt": { "type": "string", "description": "Funds transfer receipt.\nUpload a receipt for the transfer of funds, use the \"View receipt\" button in your wallet. May be uploaded to [Imgur](https://imgur.com/upload). Write \"no\" if you have not paid.\nRequired if **as_is_market_deal** is 0." }, "as_tg_login_screenshot": { "type": "string", "description": "Screenshot showing the respondent's Telegram login.\nIf the correspondence was conducted in Telegram, upload a screenshot that will display the respondent's Telegram login against the background of your dialogue. The screenshot may be uploaded to [Imgur](https://imgur.com/upload). If the correspondence was conducted elsewhere, write \"no\"." }, "tags": { "type": "array", "description": "Thread tags.", "items": { "type": "string" } }, "hide_contacts": { "type": "boolean", "description": "Hide contacts." }, "allow_ask_hidden_content": { "type": "boolean", "description": "Allow ask hidden content." }, "reply_group": { "type": "integer", "description": "Allow to reply only users with chosen or higher group.", "x-enumDescriptions": { "0": "Only staff members and curators can reply in thread", "2": "Everyone can reply in thread", "21": "Local and higher can reply in thread", "22": "Resident or higher can reply in thread", "23": "Expert or higher can reply in thread", "60": "Guru and higher can reply in thread", "351": "Artificial Intelligence and higher can reply in thread" }, "default": 2, "enum": [ 0, 2, 21, 22, 23, 60, 351 ] }, "comment_ignore_group": { "type": "boolean", "description": "Allow commenting if user can't post in thread." }, "dont_alert_followers": { "type": "boolean", "description": "Don't alert followers about thread creation." }, "schedule_date": { "type": "string", "description": "Date to schedule thread creation (format: `DD-MM-YYYY`)." }, "schedule_time": { "type": "string", "description": "Time to schedule thread creation (format: `HH:MM`)." }, "watch_thread_state": { "type": "boolean", "description": "Watch thread state." }, "watch_thread": { "type": "boolean", "description": "Receive forum notifications of new posts in this thread." }, "watch_thread_email": { "type": "boolean", "description": "Receive email notifications of new posts in this thread." }, "post_body": { "type": "string", "description": "You should describe what's happened.\n- describe the situation in a nutshell. If you wish, you can describe the situation in more detail using the \"Spoiler\" function.\n- attach screenshots of correspondence. You may upload to the site [Imgur](https://imgur.com/upload) - for convenience, use Ctrl + V when uploading screenshots to the album.\n- other evidence;\n- notify the respondent about the complaint you created, familiarize him with hidden content\n\nDescribe the situation in as much detail as possible." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "thread", "system_info" ], "properties": { "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/{thread_id}": { "get": { "tags": [ "Threads" ], "summary": "Get Thread", "description": "Detail information of a thread.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Get", "parameters": [ { "$ref": "#/components/parameters/thread_id" }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "latest_posts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "thread", "system_info" ], "properties": { "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "put": { "tags": [ "Threads" ], "summary": "Edit thread", "description": "Edit a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Edit", "parameters": [ { "name": "thread_id", "in": "path", "description": "Id of thread.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of thread." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string", "description": "Thread title." }, "title_en": { "type": "string", "description": "Thread title english." }, "prefix_id": { "type": "array", "description": "Prefix ids. Set \"0\" to remove all thread prefixes.", "items": { "type": "integer" } }, "tags": { "type": "array", "description": "Thread tags.", "items": { "type": "string" } }, "discussion_open": { "type": "boolean", "description": "Discussion state." }, "hide_contacts": { "type": "boolean", "description": "Hide contacts." }, "allow_ask_hidden_content": { "type": "boolean", "description": "Allow ask hidden content." }, "reply_group": { "type": "integer", "description": "Allow to reply only users with chosen or higher group.", "x-enumDescriptions": { "0": "Only staff members and curators can reply in thread", "2": "Everyone can reply in thread", "21": "Local and higher can reply in thread", "22": "Resident or higher can reply in thread", "23": "Expert or higher can reply in thread", "60": "Guru and higher can reply in thread", "351": "Artificial Intelligence and higher can reply in thread" }, "enum": [ 0, 2, 21, 22, 23, 60, 351 ] }, "comment_ignore_group": { "type": "boolean", "description": "Allow commenting if user can't post in thread." } }, "required": [] } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "thread", "system_info" ], "properties": { "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Threads" ], "summary": "Delete Thread", "description": "Delete a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Delete", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "reason": { "type": "string", "description": "Reason of the thread removal." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/{thread_id}/move": { "post": { "tags": [ "Threads" ], "summary": "Move Thread", "description": "Move a thread to another forum.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Move", "parameters": [ { "name": "thread_id", "in": "path", "description": "Id of thread.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of thread." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "node_id": { "type": "string", "description": "Forum id." }, "title": { "type": "string", "description": "Thread title." }, "title_en": { "type": "string", "description": "Thread title english." }, "prefix_id": { "type": "array", "description": "Prefix ids. Set \"0\" to remove all thread prefixes.", "items": { "type": "integer" } }, "apply_thread_prefix": { "type": "boolean", "description": "Apply thread prefix." }, "send_alert": { "type": "boolean", "description": "Send a notification to users who are followed to target node." } }, "required": [ "node_id" ] } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/{thread_id}/bump": { "post": { "tags": [ "Threads" ], "summary": "Bump Thread", "description": "Bump a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Bump", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "status", "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/{thread_id}/star": { "post": { "tags": [ "Threads" ], "summary": "Bookmark Thread", "description": "Bookmark a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Star", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Threads" ], "summary": "Unbookmark Thread", "description": "Unbookmark a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Unstar", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/{thread_id}/followers": { "get": { "tags": [ "Threads" ], "summary": "Get Thread Followers", "description": "List of a thread's followers. For privacy reason, only the current user will be included in the list.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Followers", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "follow": { "title": "Follow", "type": "object", "properties": { "alert": { "title": "Alert", "type": "boolean" }, "email": { "title": "Email", "type": "boolean" } }, "required": [ "alert", "email" ] } }, "required": [ "user_id", "username", "follow" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Threads" ], "summary": "Follow Thread", "description": "Follow a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Follow", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "requestBody": { "content": { "application/json": { "schema": { "required": [], "properties": { "email": { "type": "boolean", "description": "Whether to receive notification as email." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Threads" ], "summary": "Unfollow Thread", "description": "Unfollow a thread.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Unfollow", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/threads/followed": { "get": { "tags": [ "Threads" ], "summary": "Get Followed Threads", "description": "List of followed threads by current user.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Followed", "parameters": [ { "name": "total", "in": "query", "description": "If included in the request, only the thread count is returned as **threads_total**.", "required": false, "style": "form", "explode": true, "schema": { "title": "Total", "type": "boolean", "description": "If included in the request, only the thread count is returned as **threads_total**." } }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "latest_posts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "threads": { "title": "Threads", "type": "array", "items": { "type": "object", "properties": { "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "like_users": { "title": "Like", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_banned": { "title": "Is", "type": "integer" }, "uniq_username_css": { "title": "Uniq", "type": "string" } }, "required": [ "user_id", "username", "display_style_group_id", "is_banned", "uniq_username_css" ] } }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "like_users", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "object", "properties": { "1403": { "title": "", "type": "string" }, "8176": { "title": "", "type": "string" }, "38": { "title": "", "type": "string" }, "1953": { "title": "", "type": "string" }, "523": { "title": "", "type": "string" } }, "required": [ "1403", "8176", "38", "1953", "523" ] }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "edit_title": { "title": "Edit", "type": "boolean" }, "edit_tags": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit", "edit_title", "edit_tags" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] }, "follow": { "title": "Follow", "type": "object", "properties": { "alert": { "title": "Alert", "type": "boolean" }, "email": { "title": "Email", "type": "boolean" } }, "required": [ "alert", "email" ] } }, "required": [ "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum", "follow" ] } }, "threads_total": { "title": "Threads", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "threads", "threads_total", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads/{thread_id}/navigation": { "get": { "tags": [ "Threads" ], "summary": "Get Navigation Elements", "description": "List of navigation elements to reach the specified thread.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Navigation", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "elements": { "title": "Elements", "type": "array", "items": { "type": "object", "properties": { "category_id": { "title": "Category", "type": "integer" }, "category_title": { "title": "Category", "type": "string" }, "category_description": { "title": "Category", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "sub-elements": { "title": "Sub", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "sub-elements" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "edit", "delete" ] }, "navigation_type": { "title": "Navigation", "type": "string" }, "navigation_id": { "title": "Navigation", "type": "integer" }, "navigation_depth": { "title": "Navigation", "type": "integer" }, "navigation_parent_id": { "title": "Navigation", "type": "integer" }, "has_sub_elements": { "title": "Has", "type": "boolean" } }, "required": [ "category_id", "category_title", "category_description", "links", "permissions", "navigation_type", "navigation_id", "navigation_depth", "navigation_parent_id", "has_sub_elements" ] } }, "elements_count": { "title": "Elements", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "elements", "elements_count", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads/{thread_id}/poll": { "get": { "tags": [ "Threads" ], "summary": "Get Poll", "description": "Detail information of a poll.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Poll.Get", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "poll": { "title": "Poll", "type": "object", "properties": { "poll_id": { "title": "Poll", "type": "integer" }, "poll_question": { "title": "Poll", "type": "string" }, "poll_vote_count": { "title": "Poll", "type": "integer" }, "poll_max_votes": { "title": "Poll", "type": "integer" }, "poll_is_open": { "title": "Poll", "type": "boolean" }, "poll_is_voted": { "title": "Poll", "type": "boolean" }, "responses": { "title": "Responses", "type": "array", "items": { "type": "object", "properties": { "response_id": { "title": "Response", "type": "integer" }, "response_answer": { "title": "Response", "type": "string" }, "response_vote_count": { "title": "Response", "type": "integer" } }, "required": [ "response_id", "response_answer", "response_vote_count" ] } }, "permissions": { "title": "Permissions", "type": "object", "properties": { "vote": { "title": "Vote", "type": "boolean" }, "result": { "title": "Result", "type": "boolean" } }, "required": [ "vote", "result" ] }, "links": { "title": "Links", "type": "object", "properties": { "vote": { "title": "Vote", "type": "string" } }, "required": [ "vote" ] } }, "required": [ "poll_id", "poll_question", "poll_vote_count", "poll_max_votes", "poll_is_open", "poll_is_voted", "responses", "permissions", "links" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "poll", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads/{thread_id}/poll/votes": { "post": { "tags": [ "Threads" ], "summary": "Vote Poll", "description": "Vote on a thread poll.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Poll.Vote", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "requestBody": { "content": { "application/json": { "schema": { "required": [], "properties": { "response_id": { "type": "integer", "description": "The id of the response to vote for. Can be skipped if **response_ids** set." }, "response_ids": { "type": "array", "description": "An array of ids of responses (if the poll allows multiple choices).", "items": { "type": "integer" } } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads/new": { "get": { "tags": [ "Threads" ], "summary": "Get Unread Threads", "description": "List of unread threads (must be logged in).\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Unread", "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of result threads. The limit may get decreased if the value is too large (depending on the system configuration).", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Maximum number of result threads. The limit may get decreased if the value is too large (depending on the system configuration)." } }, { "name": "forum_id", "in": "query", "description": "Id of the container forum to search for threads. Child forums of the specified forum will be included in the search.", "required": false, "style": "form", "explode": true, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of the container forum to search for threads. Child forums of the specified forum will be included in the search." } }, { "name": "data_limit", "in": "query", "description": "Number of thread data to be returned. Default value is 20.", "required": false, "style": "form", "explode": true, "schema": { "title": "Data Limit", "type": "integer", "description": "Number of thread data to be returned. Default value is 20." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "threads": { "title": "Threads", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ThreadModel" } }, "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "like_users": { "title": "Like", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_banned": { "title": "Is", "type": "integer" }, "uniq_username_css": { "title": "Uniq", "type": "string" } }, "required": [ "user_id", "username", "display_style_group_id", "is_banned", "uniq_username_css" ] } }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "like_users", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_poster": { "title": "Last", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_poster", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "threads", "data", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/threads/recent": { "get": { "tags": [ "Threads" ], "summary": "Get Recent Threads", "description": "List of recent threads.\n\nRequired scopes:\n+ **read**", "operationId": "Threads.Recent", "parameters": [ { "name": "days", "in": "query", "description": "Maximum number of days to search for threads.", "required": false, "style": "form", "explode": true, "schema": { "title": "Days", "type": "integer", "description": "Maximum number of days to search for threads." } }, { "name": "limit", "in": "query", "description": "Maximum number of result threads. The limit may get decreased if the value is too large.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Maximum number of result threads. The limit may get decreased if the value is too large." } }, { "name": "forum_id", "in": "query", "description": "Id of the container forum to search for threads. Child forums of the specified forum will be included in the search.", "required": false, "style": "form", "explode": true, "schema": { "title": "Forum Id", "type": "integer", "description": "Id of the container forum to search for threads. Child forums of the specified forum will be included in the search." } }, { "name": "data_limit", "in": "query", "description": "Number of thread data to be returned. Default value is 20.", "required": false, "style": "form", "explode": true, "schema": { "title": "Data Limit", "type": "integer", "description": "Number of thread data to be returned. Default value is 20." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "threads": { "title": "Threads", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ThreadModel" } }, "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_poster": { "title": "Last", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_poster", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "threads", "data", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/contests/{thread_id}/finish": { "post": { "tags": [ "Threads" ], "summary": "Finish Contest", "description": "Finishes a contest.\n\nRequired scopes:\n+ **post**", "operationId": "Threads.Finish", "parameters": [ { "$ref": "#/components/parameters/thread_id" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts": { "get": { "tags": [ "Posts" ], "summary": "Get Posts", "description": "List of posts in a thread (with pagination).\n\nRequired scopes:\n+ **read**", "operationId": "Posts.List", "parameters": [ { "name": "thread_id", "in": "query", "description": "Id of the containing thread.", "required": false, "style": "form", "explode": true, "schema": { "title": "Thread Id", "type": "integer", "description": "Id of the containing thread." } }, { "name": "page_of_post_id", "in": "query", "description": "Id of a post, posts that are in the same page with the specified post will be returned. **thread_id** may be skipped.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page Of Post Id", "type": "integer", "description": "Id of a post, posts that are in the same page with the specified post will be returned. **thread_id** may be skipped." } }, { "name": "page", "in": "query", "description": "Page number of posts.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of posts." } }, { "name": "limit", "in": "query", "description": "Number of posts in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of posts in a page." } }, { "name": "order", "in": "query", "description": "Ordering of posts.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of posts.", "enum": [ "natural", "natural_reverse", "post_likes", "post_likes_reverse" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "posts": { "title": "Posts", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ThreadModel" } }, "thread": { "$ref": "#/components/schemas/Resp_ThreadModel" }, "posts_total": { "title": "Posts", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "posts", "thread", "posts_total", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Posts" ], "summary": "Create Post", "description": "Create a new post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Create", "requestBody": { "content": { "application/json": { "schema": { "required": [ "post_body" ], "type": "object", "properties": { "post_body": { "type": "string", "description": "Content of the new post." }, "thread_id": { "type": "integer", "description": "Id of the target thread. **quote_post_id** can be skipped if this parameter is provided." }, "quote_post_id": { "type": "integer", "description": "Id of the quote post. **thread_id** can be skipped if this parameter is provided." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "post", "system_info" ], "properties": { "post": { "$ref": "#/components/schemas/Resp_PostModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts/{post_id}": { "get": { "tags": [ "Posts" ], "summary": "Get Post", "description": "Detail information of a post.\n\nRequired scopes:\n+ **read**", "operationId": "Posts.Get", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "post", "system_info" ], "properties": { "post": { "$ref": "#/components/schemas/Resp_PostModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "put": { "tags": [ "Posts" ], "summary": "Edit Post", "description": "Edit a post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Edit", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of post." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "post_body": { "type": "string", "description": "Content of the post." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "post", "system_info" ], "properties": { "post": { "$ref": "#/components/schemas/Resp_PostModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Posts" ], "summary": "Delete Post", "description": "Delete a post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Delete", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of post." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "reason": { "type": "string", "description": "Reason of the post removal." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts/{post_id}/likes": { "get": { "tags": [ "Posts" ], "summary": "Get Post Likes", "description": "List of users who liked a post.\n\nRequired scopes:\n+ **read**", "operationId": "Posts.Likes", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } }, { "name": "page", "in": "query", "description": "Page number of users.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of users." } }, { "name": "limit", "in": "query", "description": "Number of users in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of users in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "user_id", "username" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Posts" ], "summary": "Like Post", "description": "Like a post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Like", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Posts" ], "summary": "Unlike Post", "description": "Unlike a post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Unlike", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts/{post_id}/report": { "get": { "tags": [ "Posts" ], "summary": "Get Post Report Reasons", "description": "Get post report reasons.\n\nRequired scopes:\n+ **read**", "operationId": "Posts.ReportReasons", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "reasons", "system_info" ], "properties": { "reasons": { "title": "Reasons", "type": "array", "items": { "type": "string" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "post": { "tags": [ "Posts" ], "summary": "Report Post", "description": "Report a post.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Report", "parameters": [ { "name": "post_id", "in": "path", "description": "Id of post.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of post." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string", "description": "Reason of the report." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts/comments": { "get": { "tags": [ "Post comments" ], "summary": "Get Post Comments", "description": "List of post comments in a thread.\n\nRequired scopes:\n+ **read**", "operationId": "Posts.Comments.Get", "parameters": [ { "name": "post_id", "in": "query", "description": "Id of post.", "required": true, "style": "form", "explode": true, "schema": { "title": "post_id", "type": "integer", "description": "Id of post." } }, { "name": "before", "in": "query", "description": "The time in milliseconds (e.g. 1652177794083) before last comment date.", "required": false, "style": "form", "explode": true, "schema": { "title": "Before", "type": "integer", "description": "The time in milliseconds (e.g. 1652177794083) before last comment date." } }, { "name": "before_comment", "in": "query", "description": "Comment id to get older comments.", "required": false, "style": "form", "explode": true, "schema": { "title": "Before Comment", "type": "integer", "description": "Comment id to get older comments." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "comments": { "type": "array", "items": { "$ref": "#/components/schemas/Resp_PostCommentModel" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "comments", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Post comments" ], "summary": "Create Post Comment", "description": "Create a post comment.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Comments.Create", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "post_id", "comment_body" ], "properties": { "post_id": { "type": "integer", "description": "Id of post." }, "comment_body": { "type": "string", "description": "Content of the a post comment." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "comment": { "title": "Comment", "type": "object", "properties": { "post_comment_id": { "title": "Post", "type": "integer" }, "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_comment_body": { "title": "Post", "type": "string" }, "post_comment_body_html": { "title": "Post", "type": "string" }, "post_comment_body_plain_text": { "title": "Post", "type": "string" }, "post_comment_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_comment_is_published": { "title": "Post", "type": "boolean" }, "post_comment_is_deleted": { "title": "Post", "type": "boolean" }, "post_comment_update_date": { "title": "Post", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "post": { "title": "Post", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "post", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] } }, "required": [ "post_comment_id", "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_comment_body", "post_comment_body_html", "post_comment_body_plain_text", "post_comment_like_count", "user_is_ignored", "post_comment_is_published", "post_comment_is_deleted", "post_comment_update_date", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "comment", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "put": { "tags": [ "Post comments" ], "summary": "Edit Post Comment", "description": "Edit a post comment.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Comments.Edit", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "post_comment_id", "comment_body" ], "properties": { "post_comment_id": { "type": "integer", "description": "Id of post." }, "comment_body": { "type": "string", "description": "Content of the new post comment." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "comment", "system_info" ], "properties": { "comment": { "title": "Comment", "type": "object", "properties": { "post_comment_id": { "title": "Post", "type": "integer" }, "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_comment_body": { "title": "Post", "type": "string" }, "post_comment_body_html": { "title": "Post", "type": "string" }, "post_comment_body_plain_text": { "title": "Post", "type": "string" }, "post_comment_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_comment_is_published": { "title": "Post", "type": "boolean" }, "post_comment_is_deleted": { "title": "Post", "type": "boolean" }, "post_comment_update_date": { "title": "Post", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "post": { "title": "Post", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "post", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] } }, "required": [ "post_comment_id", "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_comment_body", "post_comment_body_html", "post_comment_body_plain_text", "post_comment_like_count", "user_is_ignored", "post_comment_is_published", "post_comment_is_deleted", "post_comment_update_date", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Post comments" ], "summary": "Delete Post Comment", "description": "Delete a post comment.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Comments.Delete", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "post_comment_id" ], "properties": { "post_comment_id": { "type": "integer", "description": "Id of post comment." }, "reason": { "type": "string", "description": "Reason of a post comment removal." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/posts/comments/report": { "post": { "tags": [ "Posts" ], "summary": "Report Post Comment", "description": "Report a post comment.\n\nRequired scopes:\n+ **post**", "operationId": "Posts.Comments.Report", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "post_comment_id", "message" ], "properties": { "post_comment_id": { "type": "integer", "description": "Id of post comment." }, "message": { "type": "string", "description": "Reason of the report." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users": { "get": { "tags": [ "Users" ], "summary": "Get Users", "description": "List of users (with pagination).\n\nRequired scopes:\n+ **read**", "operationId": "Users.List", "parameters": [ { "name": "page", "in": "query", "description": "Page number of users.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of users." } }, { "name": "limit", "in": "query", "description": "Number of users in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of users in a page.", "minimum": 1, "maximum": 100 } }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "alerts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "users", "users_total", "links", "system_info" ], "properties": { "users": { "title": "Users", "type": "array", "items": { "$ref": "#/components/schemas/Resp_UserModel" } }, "users_total": { "title": "Users", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/fields": { "get": { "tags": [ "Users" ], "summary": "Get User Fields", "description": "List of user fields.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Fields", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "fields": { "title": "Fields", "type": "array", "items": { "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "position": { "title": "Position", "type": "string" }, "is_required": { "title": "Is", "type": "boolean" } }, "required": [ "id", "title", "description", "position", "is_required" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "fields", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/find": { "get": { "tags": [ "Users" ], "summary": "Find Users", "description": "List of users filtered by username, email or custom fields.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Find", "parameters": [ { "name": "username", "in": "query", "description": "Username to filter. Usernames start with the query will be returned.", "required": false, "style": "form", "explode": true, "schema": { "title": "Username", "type": "string", "description": "Username to filter. Usernames start with the query will be returned." } }, { "name": "custom_fields", "in": "query", "description": "Custom fields to filter. Example: **custom_fields[telegram]=telegramLogin**.", "required": false, "style": "deepObject", "explode": true, "schema": { "title": "Custom Fields", "type": "object", "description": "Custom fields to filter. Example: **custom_fields[telegram]=telegramLogin**.", "additionalProperties": { "type": "string" } } }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "alerts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "$ref": "#/components/schemas/Resp_UserModel" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/{user_id}": { "get": { "tags": [ "Users" ], "summary": "Get User", "description": "Detail information of a user.\n\nRequired scopes:\n+ **read**\n+ **basic**", "operationId": "Users.Get", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "alerts"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "user", "system_info" ], "properties": { "user": { "$ref": "#/components/schemas/Resp_UserModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "put": { "tags": [ "Users" ], "summary": "Edit User", "description": "Edit a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Edit", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "username": { "type": "string", "description": "New username." }, "user_title": { "type": "string", "description": "New custom title of the user." }, "display_group_id": { "type": "integer", "description": "Id of the group you want to display." }, "display_icon_group_id": { "type": "integer", "description": "Id of the icon group you want to display." }, "display_banner_id": { "type": "integer", "description": "Id of the banner you want to display." }, "conv_welcome_message": { "type": "string", "description": "This message is shown when someone wants to write to you." }, "user_dob_day": { "type": "integer", "description": "Your date of birth (day)." }, "user_dob_month": { "type": "integer", "description": "Your date of birth (month)." }, "user_dob_year": { "type": "integer", "description": "Your date of birth (year)." }, "secret_answer": { "type": "string", "description": "Secret answer." }, "secret_answer_type": { "type": "integer", "description": "Secret answer type." }, "short_link": { "type": "string", "description": "Profile short link." }, "language_id": { "type": "integer", "description": "User interface language ID.", "enum": [ 1, 2 ], "x-enumDescriptions": { "1": "English", "2": "Russian" } }, "gender": { "type": "string", "description": "User gender.", "enum": [ "", "male", "female" ] }, "timezone": { "type": "string", "description": "User timezone.", "enum": [ "Pacific/Midway", "Pacific/Honolulu", "Pacific/Marquesas", "America/Anchorage", "America/Los_Angeles", "America/Santa_Isabel", "America/Tijuana", "America/Denver", "America/Chihuahua", "America/Phoenix", "America/Chicago", "America/Belize", "America/Mexico_City", "Pacific/Easter", "America/New_York", "America/Havana", "America/Bogota", "America/Caracas", "America/Halifax", "America/Goose_Bay", "America/Asuncion", "America/Santiago", "America/Cuiaba", "America/La_Paz", "America/St_Johns", "America/Argentina/Buenos_Aires", "America/Argentina/San_Luis", "America/Argentina/Mendoza", "Atlantic/Stanley", "America/Godthab", "America/Montevideo", "America/Sao_Paulo", "America/Miquelon", "America/Noronha", "Atlantic/Cape_Verde", "Atlantic/Azores", "Europe/London", "Africa/Casablanca", "Atlantic/Reykjavik", "Europe/Amsterdam", "Africa/Algiers", "Africa/Windhoek", "Africa/Tunis", "Europe/Athens", "Africa/Johannesburg", "Europe/Kaliningrad", "Asia/Amman", "Asia/Beirut", "Africa/Cairo", "Asia/Jerusalem", "Asia/Gaza", "Asia/Damascus", "Europe/Moscow", "Europe/Minsk", "Africa/Nairobi", "Asia/Tehran", "Asia/Dubai", "Asia/Yerevan", "Asia/Baku", "Indian/Mauritius", "Asia/Kabul", "Asia/Yekaterinburg", "Asia/Tashkent", "Asia/Kolkata", "Asia/Kathmandu", "Asia/Novosibirsk", "Asia/Dhaka", "Asia/Almaty", "Asia/Rangoon", "Asia/Krasnoyarsk", "Asia/Bangkok", "Asia/Irkutsk", "Asia/Hong_Kong", "Asia/Singapore", "Australia/Perth", "Asia/Yakutsk", "Asia/Tokyo", "Asia/Seoul", "Australia/Adelaide", "Australia/Darwin", "Asia/Vladivostok", "Asia/Magadan", "Australia/Brisbane", "Australia/Sydney", "Pacific/Noumea", "Pacific/Norfolk", "Asia/Anadyr", "Pacific/Auckland", "Pacific/Fiji", "Pacific/Chatham", "Pacific/Tongatapu", "Pacific/Apia", "Pacific/Kiritimati" ] }, "receive_admin_email": { "type": "boolean", "description": "Whether to receive admin emails." }, "activity_visible": { "type": "boolean", "description": "Whether user activity is visible." }, "show_dob_date": { "type": "boolean", "description": "Show date of birth (day and month)." }, "show_dob_year": { "type": "boolean", "description": "Show year of birth." }, "hide_username_change_logs": { "type": "boolean", "description": "Hide username change logs." }, "allow_view_profile": { "type": "string", "description": "Who can view your profile.", "enum": [ "none", "members", "followed" ] }, "allow_post_profile": { "type": "string", "description": "Who can post on your profile.", "enum": [ "none", "members", "followed" ] }, "allow_send_personal_conversation": { "type": "string", "description": "Who can send you personal conversations.", "enum": [ "none", "members", "followed" ] }, "allow_invite_group": { "type": "string", "description": "Who can invite you to groups.", "enum": [ "none", "members", "followed" ] }, "allow_receive_news_feed": { "type": "string", "description": "Who can see your news feed.", "enum": [ "none", "members", "followed" ] }, "alert": { "type": "object", "description": "Alert settings.", "additionalProperties": { "type": "boolean" } }, "fields": { "type": "object", "description": "Custom user profile fields.", "properties": { "location": { "type": "string", "description": "Your location." }, "occupation": { "type": "string", "description": "Your occupation." }, "homepage": { "type": "string", "description": "Your homepage. " }, "_4": { "type": "string", "description": "Your interests." }, "lztInnovationLink": { "type": "string", "description": "Thread link for \"innovator\" trophy." }, "lztInnovation20Link": { "type": "string", "description": "Thread link for \"innovator 2.0\" trophy." }, "lztInnovation30Link": { "type": "string", "description": "Thread link for \"innovator 3.0\" trophy." }, "telegram": { "type": "string", "description": "Insert your Telegram username." }, "vk": { "type": "string", "description": "Insert your VK profile link." }, "discord": { "type": "string", "description": "Insert your Discord username." }, "steam": { "type": "string", "description": "Insert your Steam profile link." }, "jabber": { "type": "string", "description": "Your jabber." }, "github": { "type": "string", "description": "Instert your Github profile link." }, "matrix": { "type": "string", "description": "Insert your Matrix username and server here (for example, @admin:lolz.live)." } } } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/claims": { "get": { "tags": [ "Users" ], "summary": "Get User Claims", "description": "Get user claims.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Claims", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "type", "in": "query", "description": "Filter claims by their type.", "required": false, "schema": { "type": "string", "enum": [ "market", "nomarket" ] } }, { "name": "claim_state", "in": "query", "description": "Filter claims by their state.", "required": false, "schema": { "type": "string", "enum": [ "active", "solved", "rejected", "settled" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "claims", "stats", "system_info" ], "properties": { "claims": { "title": "Claims", "type": "array", "items": { "type": "object", "required": [ "thread_id", "claim_date", "claim_state", "message_body", "message_body_html", "message_body_plain_text", "amount", "amount_formatted", "author" ], "properties": { "thread_id": { "title": "Thread", "type": "integer" }, "claim_date": { "title": "Claim", "type": "integer" }, "claim_state": { "title": "Claim", "type": "string" }, "message_body": { "title": "Message", "type": "string" }, "message_body_html": { "title": "Message", "type": "string" }, "message_body_plain_text": { "title": "Message", "type": "string" }, "amount": { "title": "Amount", "type": "integer" }, "amount_formatted": { "title": "Amount", "type": "string" }, "author": { "$ref": "#/components/schemas/Resp_UserModel" } } } }, "stats": { "title": "Stats", "type": "object", "properties": { "market": { "title": "Market", "type": "object", "properties": { "total": { "title": "Total", "type": "integer" }, "solved": { "title": "Solved", "type": "integer" }, "settled": { "title": "Settled", "type": "integer" }, "rejected": { "title": "Rejected", "type": "integer" } }, "required": [ "total", "solved", "settled", "rejected" ] }, "noMarket": { "title": "No Market", "type": "object", "properties": { "total": { "title": "Total", "type": "integer" }, "solved": { "title": "Solved", "type": "integer" }, "settled": { "title": "Settled", "type": "integer" }, "rejected": { "title": "Rejected", "type": "integer" } }, "required": [ "total", "solved", "settled", "rejected" ] } }, "required": [ "market", "noMarket" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/{user_id}/avatar": { "post": { "tags": [ "Users" ], "summary": "Upload Avatar", "description": "Upload avatar for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Avatar.Upload", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "required": [ "avatar" ], "properties": { "avatar": { "type": "string", "description": "Binary data of the avatar.", "format": "binary" }, "x": { "type": "integer", "description": "The starting point of the selection by width. Default value - 0" }, "y": { "type": "integer", "description": "The starting point of the selection by height. Default value - 0" }, "crop": { "type": "integer", "description": "Selection size.", "minimum": 16 } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "status", "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Users" ], "summary": "Delete Avatar", "description": "Delete avatar for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Avatar.Delete", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/avatar/crop": { "post": { "tags": [ "Users" ], "summary": "Crop Avatar", "description": "Crop avatar for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Avatar.Crop", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "x": { "type": "integer", "description": "The starting point of the selection by width. Default value - 0" }, "y": { "type": "integer", "description": "The starting point of the selection by height. Default value - 0" }, "crop": { "type": "integer", "description": "Selection size.", "minimum": 16 } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "status", "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/background": { "post": { "tags": [ "Users" ], "summary": "Upload Background", "description": "Upload background for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Background.Upload", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "required": [ "background" ], "properties": { "background": { "type": "string", "description": "Binary data of the background. Background image must be 1920x1080 pixels", "format": "binary" }, "x": { "type": "integer", "description": "The starting point of the selection by width. Default value - 0" }, "y": { "type": "integer", "description": "The starting point of the selection by height. Default value - 0" }, "crop": { "type": "integer", "description": "Selection size.", "minimum": 100 } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "status", "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Users" ], "summary": "Delete Background", "description": "Delete background for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Background.Delete", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/background/crop": { "post": { "tags": [ "Users" ], "summary": "Crop Background", "description": "Crop background for a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Background.Crop", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "x": { "type": "integer", "description": "The starting point of the selection by width. Default value - 0" }, "y": { "type": "integer", "description": "The starting point of the selection by height. Default value - 0" }, "crop": { "type": "integer", "description": "Selection size.", "minimum": 100 } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "status", "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/followers": { "get": { "tags": [ "Users" ], "summary": "Get User Followers", "description": "List of a user's followers.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Followers", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "order", "in": "query", "description": "Ordering of followers.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of followers.", "enum": [ "natural", "follow_date", "follow_date_reverse" ] } }, { "name": "page", "in": "query", "description": "Page number of followers.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of followers." } }, { "name": "limit", "in": "query", "description": "Number of followers in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of followers in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "follow_date": { "title": "Follow", "type": "integer" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "user_message_count": { "title": "User", "type": "integer" }, "user_register_date": { "title": "User", "type": "integer" }, "user_like_count": { "title": "User", "type": "integer" }, "user_like2_count": { "title": "User", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "trophy_count": { "title": "Trophy", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "is_banned": { "title": "Is", "type": "integer" }, "user_title": { "title": "User", "type": "string" }, "user_is_valid": { "title": "User", "type": "boolean" }, "user_is_verified": { "title": "User", "type": "boolean" }, "user_is_followed": { "title": "User", "type": "boolean" }, "user_last_seen_date": { "title": "User", "type": "integer" }, "user_following_count": { "title": "User", "type": "integer" }, "user_followers_count": { "title": "User", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" }, "avatar_big": { "title": "Avatar", "type": "string" }, "avatar_small": { "title": "Avatar", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "followings": { "title": "Followings", "type": "string" }, "ignore": { "title": "Ignore", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" } }, "required": [ "permalink", "detail", "avatar", "avatar_big", "avatar_small", "followers", "followings", "ignore", "timeline" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "edit": { "title": "Edit", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "ignore": { "title": "Ignore", "type": "boolean" }, "profile_post": { "title": "Profile", "type": "boolean" } }, "required": [ "edit", "follow", "ignore", "profile_post" ] }, "user_is_ignored": { "title": "User", "type": "boolean" }, "user_is_visitor": { "title": "User", "type": "boolean" }, "user_group_id": { "title": "User", "type": "integer" }, "custom_fields": { "title": "Custom", "type": "object", "properties": { "_4": { "title": "", "type": "string" }, "lztInnovation20Link": { "title": "Lzt innovation link", "type": "string" }, "lztInnovation30Link": { "title": "Lzt innovation link", "type": "string" }, "lztInnovationLink": { "title": "Lzt innovation link", "type": "string" } }, "required": [ "_4", "lztInnovation20Link", "lztInnovation30Link", "lztInnovationLink" ] } }, "required": [ "content_type", "content_id", "follow_date", "user_id", "username", "username_html", "user_message_count", "user_register_date", "user_like_count", "user_like2_count", "contest_count", "trophy_count", "custom_title", "is_banned", "user_title", "user_is_valid", "user_is_verified", "user_is_followed", "user_last_seen_date", "user_following_count", "user_followers_count", "links", "permissions", "user_is_ignored", "user_is_visitor", "user_group_id", "custom_fields" ] } }, "users_total": { "title": "Users", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "users_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Users" ], "summary": "Follow User", "description": "Follow a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Follow", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Users" ], "summary": "Unfollow User", "description": "Unfollow a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Unfollow", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/followings": { "get": { "tags": [ "Users" ], "summary": "Get Followed Users By User", "description": "List of users whom are followed by a user.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Followings", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "order", "in": "query", "description": "Ordering of users.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of users.", "enum": [ "natural", "follow_date", "follow_date_reverse" ] } }, { "name": "page", "in": "query", "description": "Page number of users.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of users." } }, { "name": "limit", "in": "query", "description": "Number of users in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of users in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "follow_date": { "title": "Follow", "type": "integer" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "user_message_count": { "title": "User", "type": "integer" }, "user_register_date": { "title": "User", "type": "integer" }, "user_like_count": { "title": "User", "type": "integer" }, "user_like2_count": { "title": "User", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "trophy_count": { "title": "Trophy", "type": "integer" }, "short_link": { "title": "Short", "type": "string" }, "custom_title": { "title": "Custom", "type": "string" }, "is_banned": { "title": "Is", "type": "integer" }, "user_title": { "title": "User", "type": "string" }, "user_is_valid": { "title": "User", "type": "boolean" }, "user_is_verified": { "title": "User", "type": "boolean" }, "user_is_followed": { "title": "User", "type": "boolean" }, "user_last_seen_date": { "title": "User", "type": "integer" }, "user_following_count": { "title": "User", "type": "integer" }, "user_followers_count": { "title": "User", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" }, "avatar_big": { "title": "Avatar", "type": "string" }, "avatar_small": { "title": "Avatar", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "followings": { "title": "Followings", "type": "string" }, "ignore": { "title": "Ignore", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" } }, "required": [ "permalink", "detail", "avatar", "avatar_big", "avatar_small", "followers", "followings", "ignore", "timeline" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "edit": { "title": "Edit", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "ignore": { "title": "Ignore", "type": "boolean" }, "profile_post": { "title": "Profile", "type": "boolean" } }, "required": [ "edit", "follow", "ignore", "profile_post" ] }, "user_is_ignored": { "title": "User", "type": "boolean" }, "user_is_visitor": { "title": "User", "type": "boolean" }, "user_group_id": { "title": "User", "type": "integer" }, "custom_fields": { "title": "Custom", "type": "object", "properties": { "_4": { "title": "", "type": "string" }, "allowSelfUnban": { "title": "Allow self unban", "type": "array", "items": {} }, "discord": { "title": "Discord", "type": "string" }, "github": { "title": "Github", "type": "string" }, "jabber": { "title": "Jabber", "type": "string" }, "lztAwardUserTrophy": { "title": "Lzt award user trophy", "type": "string" }, "lztCuratorNodeTitle": { "title": "Lzt curator node title", "type": "string" }, "lztCuratorNodeTitleEn": { "title": "Lzt curator node title en", "type": "string" }, "lztDeposit": { "title": "Lzt deposit", "type": "string" }, "lztInnovation20Link": { "title": "Lzt innovation link", "type": "string" }, "lztInnovation30Link": { "title": "Lzt innovation link", "type": "string" }, "lztInnovationLink": { "title": "Lzt innovation link", "type": "string" }, "lztLikesIncreasing": { "title": "Lzt likes increasing", "type": "string" }, "lztLikesZeroing": { "title": "Lzt likes zeroing", "type": "string" }, "lztSympathyIncreasing": { "title": "Lzt sympathy increasing", "type": "string" }, "lztSympathyZeroing": { "title": "Lzt sympathy zeroing", "type": "string" }, "maecenasValue": { "title": "Maecenas value", "type": "string" }, "scamURL": { "title": "Scam url", "type": "string" }, "steam": { "title": "Steam", "type": "string" }, "telegram": { "title": "Telegram", "type": "string" }, "vk": { "title": "Vk", "type": "string" } }, "required": [ "_4", "allowSelfUnban", "discord", "github", "jabber", "lztAwardUserTrophy", "lztCuratorNodeTitle", "lztCuratorNodeTitleEn", "lztDeposit", "lztInnovation20Link", "lztInnovation30Link", "lztInnovationLink", "lztLikesIncreasing", "lztLikesZeroing", "lztSympathyIncreasing", "lztSympathyZeroing", "maecenasValue", "scamURL", "steam", "telegram", "vk" ] } }, "required": [ "content_type", "content_id", "follow_date", "user_id", "username", "username_html", "user_message_count", "user_register_date", "user_like_count", "user_like2_count", "contest_count", "trophy_count", "short_link", "custom_title", "is_banned", "user_title", "user_is_valid", "user_is_verified", "user_is_followed", "user_last_seen_date", "user_following_count", "user_followers_count", "links", "permissions", "user_is_ignored", "user_is_visitor", "user_group_id", "custom_fields" ] } }, "users_total": { "title": "Users", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "users_total", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/{user_id}/likes": { "get": { "tags": [ "Users" ], "summary": "Get User Likes", "description": "Get information about user likes.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Likes", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "node_id", "in": "query", "description": "Filter by forum section.", "required": false, "schema": { "type": "integer" } }, { "name": "like_type", "in": "query", "description": "Like type.", "required": false, "schema": { "type": "string", "enum": [ "like", "like2" ], "x-enumDescriptions": { "like": "Sympathies", "like2": "Likes" } } }, { "name": "type", "in": "query", "description": "Likes type.", "required": false, "schema": { "type": "string", "enum": [ "gotten", "given" ], "default": "gotten" } }, { "name": "page", "in": "query", "description": "Page number.", "required": false, "schema": { "type": "integer" } }, { "name": "content_type", "in": "query", "description": "Content type.", "required": false, "schema": { "type": "string", "enum": [ "post", "post_comment", "profile_post", "profile_post_comment" ], "default": "post" } }, { "name": "search_user_id", "in": "query", "description": "Get only likes from specified user.", "required": false, "schema": { "type": "integer" } }, { "name": "stats", "in": "query", "description": "Show weekly statistics.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "page", "perPage", "contentType", "totalLikes", "likes", "system_info" ], "properties": { "page": { "title": "Page", "type": "integer" }, "perPage": { "title": "Per Page", "type": "integer" }, "contentType": { "title": "Content Type", "type": "string" }, "totalLikes": { "title": "Total Likes", "type": "integer" }, "likes": { "title": "Likes", "type": "object", "properties": { "1234567890": { "type": "object", "properties": { "like_id": { "title": "Like", "type": "integer" }, "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "like_user_id": { "title": "Like", "type": "integer" }, "like_date": { "title": "Like", "type": "integer" }, "content_user_id": { "title": "Content", "type": "integer" }, "content_state": { "title": "Content", "type": "string" }, "user": { "$ref": "#/components/schemas/Resp_UserModel" }, "actionUser": { "$ref": "#/components/schemas/Resp_UserModel" }, "messageHtml": { "title": "Message Html", "type": "string" }, "post_date": { "title": "Post", "type": "integer" } }, "required": [ "like_id", "content_type", "content_id", "like_user_id", "like_date", "content_user_id", "content_state", "user", "actionUser", "messageHtml", "post_date" ] } }, "required": [ "1234567890" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/ignored": { "get": { "tags": [ "Users" ], "summary": "Get Ignored Users", "description": "List of ignored users of current user.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Ignored", "parameters": [ { "name": "total", "in": "query", "description": "If included in the request, only the user count is returned as **users_total**.", "required": false, "style": "form", "explode": true, "schema": { "title": "Total", "type": "boolean", "description": "If included in the request, only the user count is returned as **users_total**." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "users", "system_info" ], "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "can_edit": { "title": "Can", "type": "boolean" }, "can_follow": { "title": "Can", "type": "boolean" }, "can_ignore": { "title": "Can", "type": "boolean" }, "can_post_profile": { "title": "Can", "type": "boolean" }, "can_view_profile": { "title": "Can", "type": "boolean" }, "can_view_profile_posts": { "title": "Can", "type": "boolean" }, "can_warn": { "title": "Can", "type": "boolean" }, "contest_count": { "title": "Contest", "type": "integer" }, "conv_welcome_message": { "title": "Conv", "type": "string" }, "convertedDeposit": { "title": "Converted Deposit", "type": "integer" }, "custom_fields": { "title": "Custom", "type": "object", "properties": { "_4": { "title": "", "type": "string" }, "scamURL": { "title": "Scam Url" }, "lztLikesZeroing": { "title": "Lzt Likes Zeroing" }, "lztLikesIncreasing": { "title": "Lzt Likes Increasing" }, "lztSympathyZeroing": { "title": "Lzt Sympathy Zeroing" }, "lztSympathyIncreasing": { "title": "Lzt Sympathy Increasing" }, "telegram": { "title": "Telegram" }, "vk": { "title": "Vk", "type": "string" }, "discord": { "title": "Discord", "type": "string" }, "steam": { "title": "Steam", "type": "string" }, "matrix": { "title": "Matrix" }, "jabber": { "title": "Jabber", "type": "string" }, "github": { "title": "Github", "type": "string" } }, "required": [ "_4", "scamURL", "lztLikesZeroing", "lztLikesIncreasing", "lztSympathyZeroing", "lztSympathyIncreasing", "telegram", "vk", "discord", "steam", "matrix", "jabber", "github" ] }, "deposit": { "title": "Deposit", "type": "integer" }, "homepage": { "title": "Homepage", "type": "string" }, "ignored_info": { "title": "Ignored", "type": "object", "properties": { "ignore_content": { "title": "Ignore", "type": "integer" }, "ignore_conversations": { "title": "Ignore", "type": "integer" }, "restrict_view_profile": { "title": "Restrict", "type": "integer" } }, "required": [ "ignore_content", "ignore_conversations", "restrict_view_profile" ] }, "is_admin": { "title": "Is", "type": "boolean" }, "is_banned": { "title": "Is", "type": "boolean" }, "is_followed": { "title": "Is", "type": "boolean" }, "is_ignored": { "title": "Is", "type": "boolean" }, "is_moderator": { "title": "Is", "type": "boolean" }, "is_staff": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "location": { "title": "Location", "type": "string" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "backgrounds": { "title": "Backgrounds", "type": "array", "items": {} }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "backgrounds", "link" ] }, "short_link": { "title": "Short", "type": "string" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "user_id": { "title": "User", "type": "integer" }, "user_title": { "title": "User", "type": "string" }, "username": { "title": "Username", "type": "string" }, "view_url": { "title": "View", "type": "string" }, "warning_points": { "title": "Warning", "type": "integer" } }, "required": [ "can_edit", "can_follow", "can_ignore", "can_post_profile", "can_view_profile", "can_view_profile_posts", "can_warn", "contest_count", "conv_welcome_message", "convertedDeposit", "custom_fields", "deposit", "homepage", "ignored_info", "is_admin", "is_banned", "is_followed", "is_ignored", "is_moderator", "is_staff", "last_activity", "like2_count", "like_count", "location", "message_count", "register_date", "rendered", "short_link", "trophy_points", "user_id", "user_title", "username", "view_url", "warning_points" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/{user_id}/ignore": { "post": { "tags": [ "Users" ], "summary": "Ignore User", "description": "Ignore a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Ignore", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "put": { "tags": [ "Users" ], "summary": "Edit Ignoring Options", "description": "Edit ignoring options.\n\nRequired scopes:\n+ **post**", "operationId": "Users.IgnoreEdit", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "ignore_conversations", "in": "query", "description": "Ignore user's conversations.", "required": false, "schema": { "type": "boolean" } }, { "name": "ignore_content", "in": "query", "description": "Ignore user's content.", "required": false, "schema": { "type": "boolean" } }, { "name": "restrict_view_profile", "in": "query", "description": "Restrict user from viewing your profile.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Users" ], "summary": "Unignore User", "description": "Stop ignoring a user.\n\nRequired scopes:\n+ **post**", "operationId": "Users.Unignore", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/timeline": { "get": { "tags": [ "Users" ], "summary": "Get Contents", "description": "List of contents created by user (with pagination).\n\nRequired scopes:\n+ **read**", "operationId": "Users.Contents", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "page", "in": "query", "description": "Page number of contents.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of contents." } }, { "name": "limit", "in": "query", "description": "Number of contents in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of contents in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "like_users": { "title": "Like", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_banned": { "title": "Is", "type": "integer" }, "uniq_username_css": { "title": "Uniq", "type": "string" } }, "required": [ "user_id", "username", "display_style_group_id", "is_banned", "uniq_username_css" ] } }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] }, "thread": { "title": "Thread", "type": "object", "properties": { "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_poster": { "title": "Last", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_poster", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment" ] } }, "required": [ "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "thread_prefixes", "thread_tags", "links", "permissions" ] } }, "required": [ "content_type", "content_id", "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "like_users", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions", "thread" ] } }, "data_total": { "title": "Data", "type": "integer" }, "user": { "$ref": "#/components/schemas/Resp_UserModel" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "user", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/{user_id}/trophies": { "get": { "tags": [ "Users" ], "summary": "Get Trophies", "description": "List of user trophies.\n\nRequired scopes:\n+ **read**", "operationId": "Users.Trophies", "parameters": [ { "$ref": "#/components/parameters/user_id_path" } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "trophies", "system_info" ], "properties": { "trophies": { "title": "Trophies", "type": "array", "items": { "type": "object", "properties": { "trophy_id": { "title": "Trophy", "type": "integer" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "trophy_url": { "title": "Trophy", "type": "string" } }, "required": [ "trophy_id", "title", "description", "trophy_url" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/users/secret-answer/types": { "get": { "tags": [ "Users" ], "summary": "Get Secret Answer Types", "description": "Get available secret answer types for user account security.\n\nRequired scopes:\n+ **read**", "operationId": "Users.SecretAnswerTypes", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "system_info" ], "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "sa_id": { "title": "Sa", "type": "integer" }, "renderedPhrase": { "title": "Rendered Phrase", "type": "string" } }, "required": [ "sa_id", "renderedPhrase" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/account/secret-answer/reset": { "post": { "tags": [ "Users" ], "summary": "Reset Secret Answer", "description": "Request a reset of the secret answer for the account.\n\nRequired scopes:\n+ **post**", "operationId": "Users.SA.Reset", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "success", "waiting_time", "system_info" ], "properties": { "success": { "title": "Success", "type": "boolean" }, "waiting_time": { "title": "Waiting", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Users" ], "summary": "Cancel Secret Answer Reset", "description": "Cancel a pending secret answer reset request for the account.\n\nRequired scopes:\n+ **post**", "operationId": "Users.SA.CancelReset", "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/users/{user_id}/profile-posts": { "get": { "tags": [ "Profile Posts" ], "summary": "Get Profile Posts", "description": "List of profile posts (with pagination).\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.List", "parameters": [ { "$ref": "#/components/parameters/user_id_path" }, { "name": "posts_user_id", "in": "query", "description": "Filter to get only posts from the specified user.", "required": false, "style": "form", "explode": true, "schema": { "title": "Posts User Id", "type": "integer", "description": "Filter to get only posts from the specified user." } }, { "name": "page", "in": "query", "description": "Page number of contents.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of contents." } }, { "name": "limit", "in": "query", "description": "Number of contents in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of contents in a page." } }, { "name": "fields_include", "in": "query", "description": "List of fields to include.", "required": false, "style": "form", "explode": false, "schema": { "type": "array", "items": { "type": "string", "enum": ["*", "latest_comments"] } } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "profile_posts": { "title": "Profile", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ProfilePostModel" } }, "totalProfilePosts": { "title": "Total profile posts", "type": "integer" }, "canPostOnProfile": { "title": "Can post on profile", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "profile_posts", "totalProfilePosts", "canPostOnProfile", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/profile-posts/{profile_post_id}": { "get": { "tags": [ "Profile Posts" ], "summary": "Get Profile Post", "description": "Detail information of a profile post.\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.Get", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "profile_post": { "$ref": "#/components/schemas/Resp_ProfilePostModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "profile_post", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "put": { "tags": [ "Profile Posts" ], "summary": "Edit Profile Post", "description": "Edit a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Edit", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [], "type": "object", "properties": { "post_body": { "title": "Post Body", "type": "string", "description": "New content of the profile post." }, "disable_comments": { "title": "Disable Comments", "type": "boolean", "description": "Disable comments." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "profile_post": { "title": "Profile", "type": "object", "properties": { "profile_post_id": { "title": "Profile", "type": "integer" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_comment_count": { "title": "Post", "type": "integer" }, "timeline_username": { "title": "Timeline", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "comments": { "title": "Comments", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "timeline", "timeline_user", "poster", "likes", "comments", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "comment": { "title": "Comment", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "like", "comment", "report" ] } }, "required": [ "profile_post_id", "timeline_user_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_like_count", "post_comment_count", "timeline_username", "user_is_ignored", "post_is_published", "post_is_deleted", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "profile_post", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Profile Posts" ], "summary": "Delete Profile Post", "description": "Delete a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Delete", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } }, { "name": "reason", "in": "query", "description": "Reason of the profile post removal.", "required": false, "style": "form", "explode": true, "schema": { "title": "Reason", "type": "string", "description": "Reason of the profile post removal." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts/{profile_post_id}/report": { "get": { "tags": [ "Profile Posts" ], "summary": "Get Profile Post Report Reasons", "description": "Get Profile Post Report Reasons.\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.ReportReasons", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "reasons", "system_info" ], "properties": { "reasons": { "title": "Reasons", "type": "array", "items": { "type": "string" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Profile Posts" ], "summary": "Report a Profile Post", "description": "Report a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Report", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of profile post." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string", "description": "Reason of the report." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts": { "post": { "tags": [ "Profile Posts" ], "summary": "Create Profile Post", "description": "Create a profile post on a user profile.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Create", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "post_body", "user_id" ], "properties": { "user_id": { "$ref": "#/components/schemas/UserIDModel" }, "post_body": { "type": "string", "description": "Content of a profile post." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "profile_post": { "title": "Profile", "type": "object", "properties": { "profile_post_id": { "title": "Profile", "type": "integer" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_comment_count": { "title": "Post", "type": "integer" }, "timeline_username": { "title": "Timeline", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "comments": { "title": "Comments", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "timeline", "timeline_user", "poster", "likes", "comments", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "comment": { "title": "Comment", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "like", "comment", "report" ] } }, "required": [ "profile_post_id", "timeline_user_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_like_count", "post_comment_count", "timeline_username", "user_is_ignored", "post_is_published", "post_is_deleted", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "profile_post", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts/{profile_post_id}/stick": { "post": { "tags": [ "Profile Posts" ], "summary": "Stick Profile Post", "description": "Stick a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Stick", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Profile Posts" ], "summary": "Unstick Profile Post", "description": "Unstick a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Unstick", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profilepost_id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts/{profile_post_id}/likes": { "get": { "tags": [ "Profile Posts" ], "summary": "Get Profile Post Likes", "description": "List of users who liked a profile post.\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.Likes", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "user_id", "username" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "users", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Profile Posts" ], "summary": "Like Profile Post", "description": "Like a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Like", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Profile Posts" ], "summary": "Unlike Profile Post", "description": "Unlike a profile post.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Unlike", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profilepost_id", "type": "integer", "description": "Id of profile post." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts/comments": { "get": { "tags": [ "Profile Post Comments" ], "summary": "Get Profile Post Comments", "description": "List of comments of a profile post.\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.Comments.List", "parameters": [ { "name": "profile_post_id", "in": "query", "description": "Id of profile post.", "required": true, "style": "form", "explode": true, "schema": { "title": "Profile Post Id", "type": "integer", "description": "Id of profile post." } }, { "name": "before", "in": "query", "description": "Date to get older comments. Please note that this entry point does not support the page parameter but it still does support **limit**.", "required": false, "style": "form", "explode": true, "schema": { "title": "Before", "type": "integer", "description": "Date to get older comments. Please note that this entry point does not support the page parameter but it still does support **limit**." } }, { "name": "limit", "in": "query", "description": "Number of profile posts in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of profile posts in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "comments": { "title": "Comments", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ProfilePostCommentModel" } }, "comments_total": { "title": "Comments", "type": "integer" }, "profile_post": { "title": "Profile", "type": "object", "properties": { "profile_post_id": { "title": "Profile", "type": "integer" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_comment_count": { "title": "Post", "type": "integer" }, "timeline_username": { "title": "Timeline", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "comments": { "title": "Comments", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "timeline", "timeline_user", "poster", "likes", "comments", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "comment": { "title": "Comment", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "like", "comment", "report" ] } }, "required": [ "profile_post_id", "timeline_user_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_like_count", "post_comment_count", "timeline_username", "user_is_ignored", "post_is_published", "post_is_deleted", "links", "permissions" ] }, "timeline_user": { "$ref": "#/components/schemas/Resp_UserModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "comments", "comments_total", "profile_post", "timeline_user", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] }, "post": { "tags": [ "Profile Post Comments" ], "summary": "Create Profile Post Comment", "description": "Create a new profile post comment.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Comments.Create", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "profile_post_id", "comment_body" ], "properties": { "profile_post_id": { "type": "integer", "description": "Id of profile post." }, "comment_body": { "type": "string", "description": "Content of the new profile post comment." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "comment": { "title": "Comment", "type": "object", "properties": { "comment_id": { "title": "Comment", "type": "integer" }, "profile_post_id": { "title": "Profile", "type": "integer" }, "comment_user_id": { "title": "Comment", "type": "integer" }, "comment_username": { "title": "Comment", "type": "string" }, "comment_username_html": { "title": "Comment", "type": "string" }, "comment_create_date": { "title": "Comment", "type": "integer" }, "comment_body": { "title": "Comment", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "detail": { "title": "Detail", "type": "string" }, "profile_post": { "title": "Profile", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "detail", "profile_post", "timeline", "timeline_user", "poster", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "delete" ] } }, "required": [ "comment_id", "profile_post_id", "comment_user_id", "comment_username", "comment_username_html", "comment_create_date", "comment_body", "user_is_ignored", "timeline_user_id", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "comment", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "put": { "tags": [ "Profile Post Comments" ], "summary": "Edit Profile Post Comment", "description": "Edit a profile post comment.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Comments.Edit", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "comment_id", "comment_body" ], "properties": { "comment_id": { "type": "integer", "description": "Id of profile post comment." }, "comment_body": { "type": "string", "description": "New content for the profile post comment." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "comment", "system_info" ], "properties": { "comment": { "title": "Comment", "type": "object", "properties": { "comment_id": { "title": "Comment", "type": "integer" }, "profile_post_id": { "title": "Profile", "type": "integer" }, "comment_user_id": { "title": "Comment", "type": "integer" }, "comment_username": { "title": "Comment", "type": "string" }, "comment_username_html": { "title": "Comment", "type": "string" }, "comment_create_date": { "title": "Comment", "type": "integer" }, "comment_body": { "title": "Comment", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "detail": { "title": "Detail", "type": "string" }, "profile_post": { "title": "Profile", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "detail", "profile_post", "timeline", "timeline_user", "poster", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "delete" ] } }, "required": [ "comment_id", "profile_post_id", "comment_user_id", "comment_username", "comment_username_html", "comment_create_date", "comment_body", "user_is_ignored", "timeline_user_id", "links", "permissions" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] }, "delete": { "tags": [ "Profile Post Comments" ], "summary": "Delete Profile Post Comment", "description": "Delete a profile post comment.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Comments.Delete", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "comment_id" ], "properties": { "comment_id": { "type": "integer", "description": "Id of profile post comment." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/profile-posts/{profile_post_id}/comments/{comment_id}": { "get": { "tags": [ "Profile Post Comments" ], "summary": "Get Profile Post Comment", "description": "Detail information of a profile post comment.\n\nRequired scopes:\n+ **read**", "operationId": "ProfilePosts.Comments.Get", "parameters": [ { "name": "profile_post_id", "in": "path", "description": "Id of profile post.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Profilepost_id", "type": "integer", "description": "Id of profile post." } }, { "name": "comment_id", "in": "path", "description": "Id of profile post comment.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Commentid", "type": "integer", "description": "Id of profile post comment." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "comment": { "$ref": "#/components/schemas/Resp_ProfilePostCommentModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "comment", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/profile-posts/comments/{comment_id}/report": { "post": { "tags": [ "Profile Post Comments" ], "summary": "Report a Profile Post Comment", "description": "Report a profile post comment.\n\nRequired scopes:\n+ **post**", "operationId": "ProfilePosts.Comments.Report", "parameters": [ { "name": "comment_id", "in": "path", "description": "Id of profile post comment.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of profile post comment." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string", "description": "Reason of the report." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/conversations": { "get": { "tags": [ "Conversations" ], "summary": "Get Conversations", "description": "List of conversations (with pagination).\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.List", "parameters": [ { "name": "folder", "in": "query", "description": "Filter conversations by folder.", "required": false, "style": "form", "explode": true, "schema": { "title": "Folder", "type": "string", "description": "Filter conversations by folder.", "enum": [ "all", "unread", "groups", "market", "market_replacements", "staff", "giveaways", "p2p" ] } }, { "name": "page", "in": "query", "description": "Page number of conversations.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of conversations." } }, { "name": "limit", "in": "query", "description": "Number of conversations in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of conversations in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "conversations", "can_start", "folders", "links", "system_info" ], "properties": { "conversations": { "title": "Conversations", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ConversationModel" } }, "can_start": { "title": "Can", "type": "boolean" }, "folders": { "title": "Folders", "type": "array", "items": { "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "title": { "title": "Title", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "title", "name" ] } }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] }, "post": { "tags": [ "Conversations" ], "summary": "Create Conversation", "description": "Create a new conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Create", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "recipient_id": { "type": "integer", "description": "Id of recipient. Required if **is_group=false**." }, "recipients": { "type": "array", "description": "List of recipients username's. Max recipients count is 10. Required if **is_group=true**.", "maxItems": 10, "items": { "type": "string" } }, "is_group": { "type": "boolean", "description": "Is group. Set **false** if personal conversation, or set **true** if group.", "default": false }, "title": { "type": "string", "description": "The title of new conversation. Required if **is_group=1**." }, "open_invite": { "type": "boolean", "description": "Open invite." }, "allow_edit_messages": { "type": "boolean", "description": "Allow edit messages." }, "allow_sticky_messages": { "type": "boolean", "description": "Allow members to stick messages." }, "allow_delete_own_messages": { "type": "boolean", "description": "Allow members to delete their own messages." }, "message_body": { "type": "string", "description": "First message. Required if **is_group**=false" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "conversation", "system_info" ], "properties": { "conversation": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] }, "put": { "tags": [ "Conversations" ], "summary": "Edit Conversation", "description": "Edit conversation.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Update", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "conversation_id" ], "properties": { "conversation_id": { "type": "integer", "description": "Id of conversation." }, "title": { "type": "string", "description": "New conversation title." }, "open_invite": { "type": "boolean", "description": "Allow members to invite others." }, "history_open": { "type": "boolean", "description": "Make conversation history visible to new members." }, "allow_edit_messages": { "type": "boolean", "description": "Allow members to edit their own messages." }, "allow_sticky_messages": { "type": "boolean", "description": "Allow members to stick messages." }, "allow_delete_own_messages": { "type": "boolean", "description": "Allow members to delete their own messages." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "conversation": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "conversation", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] }, "delete": { "tags": [ "Conversations" ], "summary": "Leave Conversation", "description": "Leave the conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Delete", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "conversation_id", "delete_type" ], "properties": { "conversation_id": { "type": "integer", "description": "Id of conversation." }, "delete_type": { "type": "string", "description": "Deletion type.", "enum": [ "delete", "delete_ignore" ] } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] } }, "/conversations/start": { "post": { "tags": [ "Conversations" ], "summary": "Start Conversation", "description": "Start a new conversation with a user.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Start", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "$ref": "#/components/schemas/UserIDModel" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "conversation", "system_info" ], "properties": { "conversation": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/save": { "post": { "tags": [ "Conversations" ], "summary": "Send Content To Saved Messages", "description": "Send content to Saved Messages.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Save", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "link" ], "properties": { "link": { "type": "string", "description": "Content url." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/{conversation_id}": { "get": { "tags": [ "Conversations" ], "summary": "Get Conversation", "description": "Detail information of a conversation.\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.Get", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "conversation": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "conversation", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] } }, "/conversations/{conversation_id}/messages": { "get": { "tags": [ "Conversations" ], "summary": "Get Conversation Messages", "description": "List of messages in a conversation (with pagination).\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.Messages.List", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } }, { "name": "page", "in": "query", "description": "Page number of messages.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of messages." } }, { "name": "limit", "in": "query", "description": "Number of messages in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of messages in a page." } }, { "name": "order", "in": "query", "description": "Ordering of messages.", "required": false, "style": "form", "explode": true, "schema": { "title": "Order", "type": "string", "description": "Ordering of messages.", "enum": [ "natural", "natural_reverse" ] } }, { "name": "before", "in": "query", "description": "Date to get older messages.", "required": false, "style": "form", "explode": true, "schema": { "title": "Before", "type": "integer", "description": "Date to get older messages." } }, { "name": "after", "in": "query", "description": "Date to get newer messages.", "required": false, "style": "form", "explode": true, "schema": { "title": "After", "type": "integer", "description": "Date to get newer messages." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "messages", "messages_total", "links", "system_info" ], "properties": { "messages": { "title": "Messages", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ConversationMessageModel" } }, "messages_total": { "title": "Messages", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] }, "post": { "tags": [ "Conversations" ], "summary": "Create Conversation Message", "description": "Create a new conversation message.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Messages.Create", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message_body" ], "properties": { "reply_message_id": { "type": "integer", "description": "ID of the message being replied to." }, "message_body": { "type": "string", "description": "Content of the new message." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "message", "system_info" ], "properties": { "message": { "$ref": "#/components/schemas/Resp_ConversationMessageModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] } }, "/conversations/search": { "post": { "tags": [ "Conversations" ], "summary": "Search Conversations Messages", "description": "Search for conversations messages or recipients.\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.Search", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "q": { "description": "Search query string.", "type": "string" }, "conversation_id": { "description": "Id of conversation.", "type": "integer" }, "search_recipients": { "description": "Search for recipients.", "type": "boolean" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "conversations", "recipients", "system_info" ], "properties": { "conversations": { "title": "Conversations", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ConversationModel" } }, "recipients": { "title": "Recipients", "type": "boolean" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] } }, "/conversations/messages/{message_id}": { "get": { "tags": [ "Conversations" ], "summary": "Get Conversation Message", "description": "Detail information of a message.\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.Messages.Get", "parameters": [ { "name": "message_id", "in": "path", "description": "Id of message.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Message Id", "type": "integer", "description": "Id of message." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "message": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "message", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] } }, "/conversations/{conversation_id}/messages/{message_id}": { "put": { "tags": [ "Conversations" ], "summary": "Edit Conversation Message", "description": "Edit a message.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Messages.Edit", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } }, { "name": "message_id", "in": "path", "description": "Id of message.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Message Id", "type": "integer", "description": "Id of message." } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "message_body" ], "type": "object", "properties": { "message_body": { "title": "Message Body", "type": "string", "description": "New content of the message." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "message", "system_info" ], "properties": { "message": { "$ref": "#/components/schemas/Resp_ConversationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] }, "delete": { "tags": [ "Conversations" ], "summary": "Delete Conversation Message", "description": "Deletes a message from a conversation.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Messages.Delete", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } }, { "name": "message_id", "in": "path", "description": "Id of message.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Message Id", "type": "integer", "description": "Id of message." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/{conversation_id}/invite": { "post": { "tags": [ "Conversations" ], "summary": "Invite Users to Conversation", "description": "Invite one or more users to an existing conversation.\n\nRequired scopes:\n+ **conversate**\n+ **post**", "operationId": "Conversations.Invite", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of conversation." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "recipients" ], "properties": { "recipients": { "type": "array", "description": "List of recipients username's.", "items": { "type": "string" } } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/{conversation_id}/kick": { "post": { "tags": [ "Conversations" ], "summary": "Kick User from Conversation", "description": "Kicks a user from a conversation.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Kick", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "type": "integer", "description": "Id of conversation." } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "type": "integer", "description": "Id of user to kick from conversation." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/{conversation_id}/read": { "post": { "tags": [ "Conversations" ], "summary": "Read a Conversation", "description": "Read a specific conversation.\n\nRequired scopes:\n+ **conversate**", "operationId": "Conversations.Read", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Conversation Id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "conversate" ] } ] } }, "/conversations/read-all": { "post": { "tags": [ "Conversations" ], "summary": "Read All Conversations", "description": "Mark all conversations as read.\n\nRequired scopes:\n+ **read**\n+ **conversate**", "operationId": "Conversations.ReadAll", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message", "system_info" ], "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read", "conversate" ] } ] } }, "/conversations/{conversation_id}/messages/{message_id}/stick": { "post": { "tags": [ "Conversations" ], "summary": "Stick Conversation Message", "description": "Stick a message in a conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Messages.Stick", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Conversation Id", "type": "integer", "description": "Id of conversation." } }, { "name": "message_id", "in": "path", "description": "Id of message.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Message Id", "type": "integer", "description": "Id of message." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] }, "delete": { "tags": [ "Conversations" ], "summary": "Unstick Conversation Message", "description": "Unstick a message in a conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Messages.Unstick", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Conversation Id", "type": "integer", "description": "Id of conversation." } }, { "name": "message_id", "in": "path", "description": "Id of message.", "required": true, "style": "simple", "explode": false, "schema": { "title": "Message Id", "type": "integer", "description": "Id of message." } } ], "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] } }, "/conversations/{conversation_id}/star": { "post": { "tags": [ "Conversations" ], "summary": "Star Conversation", "description": "Star conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Star", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message", "system_info" ], "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] }, "delete": { "tags": [ "Conversations" ], "summary": "Unstar Conversation", "description": "Unstar conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Unstar", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message", "system_info" ], "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] } }, "/conversations/{conversation_id}/alerts": { "post": { "tags": [ "Conversations" ], "summary": "Enable Conversation Alerts", "description": "Enable alerts for conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Alerts.Enable", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message", "system_info" ], "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] }, "delete": { "tags": [ "Conversations" ], "summary": "Disable Conversation Alerts", "description": "Disable alerts for conversation.\n\nRequired scopes:\n+ **post**\n+ **conversate**", "operationId": "Conversations.Alerts.Disable", "parameters": [ { "name": "conversation_id", "in": "path", "description": "Id of conversation.", "required": true, "style": "simple", "explode": false, "schema": { "title": "conversation_id", "type": "integer", "description": "Id of conversation." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message", "system_info" ], "properties": { "status": { "title": "Status", "type": "string" }, "message": { "title": "Message", "type": "string" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post", "conversate" ] } ] } }, "/notifications": { "get": { "tags": [ "Notifications" ], "summary": "Get Notifications", "description": "List of notifications (both read and unread).\n\nRequired scopes:\n+ **read**", "operationId": "Notifications.List", "parameters": [ { "name": "type", "in": "query", "description": "Filter notifications by their type.", "required": false, "schema": { "type": "string", "enum": [ "market", "nomarket" ] } }, { "name": "page", "in": "query", "description": "Page number of notifications.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of notifications." } }, { "name": "limit", "in": "query", "description": "Number of notifications in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of notifications in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "notifications": { "title": "Notifications", "type": "array", "items": { "$ref": "#/components/schemas/Resp_NotificationModel" } }, "notifications_total": { "title": "Notifications", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "read": { "title": "Read", "type": "string" }, "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "read", "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "notifications", "notifications_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/notifications/{notification_id}/content": { "get": { "tags": [ "Notifications" ], "summary": "Get Notification", "description": "Get associated content of notification. The response depends on the content type.\n\nRequired scopes:\n+ **read**", "operationId": "Notifications.Get", "parameters": [ { "name": "notification_id", "in": "path", "description": "Id of notification.", "required": true, "style": "simple", "explode": false, "schema": { "title": "notification_id", "type": "integer", "description": "Id of notification." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "notification_id": { "title": "Notification", "type": "integer" }, "notification": { "$ref": "#/components/schemas/Resp_NotificationModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "notification_id", "notification", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/notifications/read": { "post": { "tags": [ "Notifications" ], "summary": "Mark Notification Read", "description": "Mark single notification or all existing notifications read.\n\nRequired scopes:\n+ **post**", "operationId": "Notifications.Read", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "notification_id": { "type": "integer", "description": "If notification_id is omitted, it's mark all existing notifications as read." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/tags": { "get": { "tags": [ "Content Tagging" ], "summary": "Get Popular Tags", "description": "List of popular tags (no pagination).\n\nRequired scopes:\n+ **read**", "operationId": "Tags.Popular", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "tags": { "title": "Tags", "type": "object", "properties": { "000": { "title": "", "type": "string" } }, "required": [ "000" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "tags", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/tags/list": { "get": { "tags": [ "Content Tagging" ], "summary": "Get Tags", "description": "List of tags.\n\nRequired scopes:\n+ **read**", "operationId": "Tags.List", "parameters": [ { "name": "page", "in": "query", "description": "Page number of tags list.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of tags list." } }, { "name": "limit", "in": "query", "description": "Number of results in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of results in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "tags": { "title": "Tags", "type": "object", "properties": { "1": { "title": "", "type": "string" }, "2": { "title": "", "type": "string" }, "3": { "title": "", "type": "string" }, "4": { "title": "", "type": "string" }, "5": { "title": "", "type": "string" }, "6": { "title": "", "type": "string" }, "7": { "title": "", "type": "string" }, "8": { "title": "", "type": "string" }, "9": { "title": "", "type": "string" }, "10": { "title": "", "type": "string" }, "11": { "title": "", "type": "string" }, "12": { "title": "", "type": "string" }, "14": { "title": "", "type": "string" }, "15": { "title": "", "type": "string" }, "16": { "title": "", "type": "string" }, "17": { "title": "", "type": "string" }, "18": { "title": "", "type": "string" }, "19": { "title": "", "type": "string" }, "20": { "title": "", "type": "string" } }, "required": [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "14", "15", "16", "17", "18", "19", "20" ] }, "tags_total": { "title": "Tags", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "tags", "tags_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/tags/{tag_id}": { "get": { "tags": [ "Content Tagging" ], "summary": "Get Tagged Content", "description": "List of tagged contents.\n\nRequired scopes:\n+ **read**", "operationId": "Tags.Get", "parameters": [ { "name": "tag_id", "in": "path", "description": "Id of tag.", "required": true, "style": "simple", "explode": false, "schema": { "title": "tag_id", "type": "integer", "description": "Id of tag." } }, { "name": "page", "in": "query", "description": "Page number of tagged contents.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of tagged contents." } }, { "name": "limit", "in": "query", "description": "Number of tagged contents in a page.", "required": false, "style": "form", "explode": true, "schema": { "title": "Limit", "type": "integer", "description": "Number of tagged contents in a page." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "tag": { "title": "Tag", "type": "object", "properties": { "tag_id": { "title": "Tag", "type": "integer" }, "tag_text": { "title": "Tag", "type": "string" }, "tag_use_count": { "title": "Tag", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" } }, "required": [ "permalink", "detail" ] } }, "required": [ "tag_id", "tag_text", "tag_use_count", "links" ] }, "tagged": { "title": "Tagged", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } }, "thread_tags": { "title": "Thread", "type": "object", "properties": { "1": { "title": "", "type": "string" }, "654": { "title": "", "type": "string" } }, "required": [ "1", "654" ] }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_poster": { "title": "Last", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_poster", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "tagged_total": { "title": "Tagged", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "tag", "tagged", "tagged_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/tags/find": { "get": { "tags": [ "Content Tagging" ], "summary": "Get Filtered Content", "description": "Filtered list of tags.\n\nRequired scopes:\n+ **read**", "operationId": "Tags.Find", "parameters": [ { "name": "tag", "in": "query", "description": "tag to filter. Tags start with the query will be returned.", "required": true, "style": "form", "explode": true, "schema": { "title": "Tag", "type": "string", "description": "tag to filter. Tags start with the query will be returned." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "tags": { "title": "Tags", "type": "array", "items": { "type": "string" } }, "ids": { "title": "Ids", "type": "array", "items": { "type": "integer" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "tags", "ids", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/search": { "post": { "tags": [ "Searching" ], "summary": "Search", "description": "Search for all supported contents.\n\nRequired scopes:\n+ **post**", "operationId": "Search.All", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "q": { "type": "string", "description": "Search query. Can be skipped if **user_id** is set." }, "tag": { "type": "string", "description": "Tag to search for tagged contents." }, "forum_id": { "type": "integer", "description": "Id of the container forum to search for contents. Child forums of the specified forum will be included in the search." }, "user_id": { "$ref": "#/components/schemas/UserIDModel" }, "page": { "type": "integer", "description": "Page number of results." }, "limit": { "type": "integer", "description": "Number of results in a page." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "data", "data_total", "users", "links", "system_info" ], "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "string" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_closed": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "thread_is_starred": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "post_is_liked": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] }, "thread_is_deleted": { "title": "Thread", "type": "boolean" } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "post_is_liked", "links", "permissions", "thread_is_deleted" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_poster": { "title": "Last", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_poster", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "bump": { "title": "Bump", "type": "object", "properties": { "can": { "title": "Can", "type": "boolean" }, "available_count": { "title": "Available", "type": "integer" }, "error": { "title": "Error" }, "next_available_time": { "title": "Next" } }, "required": [ "can", "available_count", "error", "next_available_time" ] } }, "required": [ "view", "delete", "follow", "post", "edit", "bump" ] }, "node_title": { "title": "Node", "type": "string" }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "parent_node_id": { "title": "Parent", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "parent_node_id", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] }, "last_post": { "title": "Last", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "post_is_liked": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] }, "thread_is_deleted": { "title": "Thread", "type": "boolean" } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "post_is_liked", "links", "permissions", "thread_is_deleted" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_closed", "thread_is_followed", "thread_is_starred", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "node_title", "forum", "last_post" ] } }, "data_total": { "title": "Data", "type": "integer" }, "users": { "title": "Users", "type": "array", "items": { "$ref": "#/components/schemas/Resp_UserModel" } }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/threads": { "post": { "tags": [ "Searching" ], "summary": "Search Thread", "description": "Search for threads.\n\nRequired scopes:\n+ **post**", "operationId": "Search.Threads", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "q": { "description": "Search query. Can be skipped if **user_id** is set.", "type": "string" }, "tag": { "description": "Tag to search for tagged contents.", "type": "string" }, "forum_id": { "description": "Id of the container forum to search for contents. Child forums of the specified forum will be included in the search.", "type": "integer" }, "user_id": { "$ref": "#/components/schemas/UserIDModel" }, "page": { "description": "Page number of results.", "type": "integer" }, "limit": { "description": "Number of results in a page.", "type": "integer" }, "data_limit": { "description": "Number of thread data to be returned.", "type": "integer" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "data_total": { "title": "Data", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/posts": { "post": { "tags": [ "Searching" ], "summary": "Search Post", "description": "Search for posts.\n\nRequired scopes:\n+ **post**", "operationId": "Search.Posts", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "q": { "description": "Search query. Can be skipped if **user_id** is set.", "type": "string" }, "tag": { "description": "Tag to search for tagged contents.", "type": "string" }, "forum_id": { "description": "Id of the container forum to search for contents. Child forums of the specified forum will be included in the search.", "type": "integer" }, "user_id": { "$ref": "#/components/schemas/UserIDModel" }, "page": { "description": "Page number of results.", "type": "integer" }, "limit": { "description": "Number of results in a page.", "type": "integer" }, "data_limit": { "description": "Number of post data to be returned.", "type": "integer" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": {} }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "data_total": { "title": "Data", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/users": { "post": { "tags": [ "Searching" ], "summary": "Search Users", "description": "Search for users.\n\nRequired scopes:\n+ **post**", "operationId": "Search.Users", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "q": { "description": "Search query.", "type": "string" } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "users", "system_info" ], "properties": { "users": { "title": "Users", "type": "array", "items": { "$ref": "#/components/schemas/Resp_UserModel" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/profile-posts": { "post": { "tags": [ "Searching" ], "summary": "Search Profile Posts", "description": "Search for profile posts.\n\nRequired scopes:\n+ **post**", "operationId": "Search.ProfilePosts", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [], "properties": { "q": { "type": "string", "description": "Search query. Can be skipped if **user_id** is set." }, "user_id": { "type": "integer", "description": "User ID to filter profile posts." }, "page": { "type": "integer", "description": "Page number of results." }, "limit": { "type": "integer", "description": "Number of results in a page." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "profile_post_id": { "title": "Profile", "type": "integer" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_comment_count": { "title": "Post", "type": "integer" }, "timeline_username": { "title": "Timeline", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "comments": { "title": "Comments", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "timeline", "timeline_user", "poster", "likes", "comments", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "comment": { "title": "Comment", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "like", "comment", "report" ] }, "timeline_user": { "$ref": "#/components/schemas/Resp_UserModel" } }, "required": [ "content_type", "content_id", "profile_post_id", "timeline_user_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_like_count", "post_comment_count", "timeline_username", "user_is_ignored", "post_is_published", "post_is_deleted", "links", "permissions", "timeline_user" ] } }, "data_total": { "title": "Data", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "pages": { "title": "Pages", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "next": { "title": "Next", "type": "string" } }, "required": [ "pages", "page", "next" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "links", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/tagged": { "post": { "tags": [ "Searching" ], "summary": "Search Tagged", "description": "Search for tagged contents.\n\nRequired scopes:\n+ **post**", "operationId": "Search.Tagged", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "tag": { "type": "string", "description": "Tag to search for tagged contents." }, "tags": { "type": "array", "description": "Array of tags to search for tagged contents.", "items": { "type": "string" } }, "page": { "type": "integer", "description": "Page number of results." }, "limit": { "type": "integer", "description": "Number of results in a page." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "object", "properties": { "160179": { "title": "", "type": "string" } }, "required": [ "160179" ] }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "edit_title": { "title": "Edit", "type": "boolean" }, "edit_tags": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit", "edit_title", "edit_tags" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "data_total": { "title": "Data", "type": "integer" }, "search_tags": { "title": "Search", "type": "object", "properties": { "160179": { "title": "", "type": "string" } }, "required": [ "160179" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "search_tags", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/search/{search_id}/results": { "get": { "tags": [ "Searching" ], "summary": "Get Search Results", "description": "List of search results (with pagination).\n\nRequired scopes:\n+ **get**", "operationId": "Search.Results", "parameters": [ { "name": "search_id", "in": "path", "style": "simple", "description": "Search ID.", "required": true, "explode": false, "schema": { "type": [ "string", "integer" ] } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "page": { "type": "integer", "description": "Page number of results." }, "limit": { "type": "integer", "description": "Number of results in a page." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "properties": { "data": { "title": "Data", "type": "array", "items": { "type": "object", "properties": { "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_attachment_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "attachments": { "title": "Attachments", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "attachments", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report", "upload_attachment" ] } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "post_attachment_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "object", "properties": { "160179": { "title": "", "type": "string" } }, "required": [ "160179" ] }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "edit_title": { "title": "Edit", "type": "boolean" }, "edit_tags": { "title": "Edit", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post", "upload_attachment", "edit", "edit_title", "edit_tags" ] }, "forum": { "title": "Forum", "type": "object", "properties": { "forum_id": { "title": "Forum", "type": "integer" }, "forum_title": { "title": "Forum", "type": "string" }, "forum_description": { "title": "Forum", "type": "string" }, "forum_thread_count": { "title": "Forum", "type": "integer" }, "forum_post_count": { "title": "Forum", "type": "integer" }, "forum_prefixes": { "title": "Forum", "type": "array", "items": { "type": "object", "properties": { "group_title": { "title": "Group", "type": "string" }, "group_prefixes": { "title": "Group", "type": "array", "items": { "type": "object", "properties": { "prefix_id": { "title": "Prefix", "type": "integer" }, "prefix_title": { "title": "Prefix", "type": "string" } }, "required": [ "prefix_id", "prefix_title" ] } } }, "required": [ "group_title", "group_prefixes" ] } }, "thread_default_prefix_id": { "title": "Thread", "type": "integer" }, "thread_prefix_is_required": { "title": "Thread", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "sub-categories": { "title": "Sub", "type": "string" }, "sub-forums": { "title": "Sub", "type": "string" }, "threads": { "title": "Threads", "type": "string" }, "followers": { "title": "Followers", "type": "string" } }, "required": [ "permalink", "detail", "sub-categories", "sub-forums", "threads", "followers" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "create_thread": { "title": "Create", "type": "boolean" }, "upload_attachment": { "title": "Upload", "type": "boolean" }, "tag_thread": { "title": "Tag", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" } }, "required": [ "view", "edit", "delete", "create_thread", "upload_attachment", "tag_thread", "follow" ] }, "forum_is_followed": { "title": "Forum", "type": "boolean" } }, "required": [ "forum_id", "forum_title", "forum_description", "forum_thread_count", "forum_post_count", "forum_prefixes", "thread_default_prefix_id", "thread_prefix_is_required", "links", "permissions", "forum_is_followed" ] } }, "required": [ "content_type", "content_id", "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_followed", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "forum" ] } }, "data_total": { "title": "Data", "type": "integer" }, "search_tags": { "title": "Search", "type": "object", "properties": { "160179": { "title": "", "type": "string" } }, "required": [ "160179" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } }, "required": [ "data", "data_total", "search_tags", "system_info" ] } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } }, "/batch": { "post": { "tags": [ "Batch requests" ], "summary": "Batch", "description": "Execute multiple API requests at once (Separated by comma). Maximum batch jobs is 10.\n\nRequired scopes:\n+ Same as called API requests.", "operationId": "Batch.Execute", "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "title": "Batch Job", "required": [ "uri" ], "type": "object", "properties": { "id": { "title": "Id", "type": "string", "description": "identifier for the job, will be use in output as key of a result set. If this parameter is not set, the URI will be used." }, "uri": { "title": "Uri", "type": "string", "description": "URI of the API request to execute." }, "method": { "title": "Method", "type": "string", "description": "HTTP method of the API request to execute. If this parameter is not set, GET HTTP method will be used.", "enum": [ "GET", "POST", "PUT", "DELETE" ] }, "params": { "title": "Params", "type": "object", "additionalProperties": { "type": "string" }, "description": "parameters of the API request to execute." } } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "required": [ "jobs" ], "type": "object", "properties": { "jobs": { "title": "Jobs", "required": [ "job_id" ], "type": "object", "properties": { "job_id": { "title": "JobId", "type": "object", "properties": {} } } } } } } } }, "400": { "description": "Error Response.", "content": { "application/json": { "schema": { "title": "Invalid Batch", "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string", "default": "/batch requires valid JSON for jobs input." } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" } }, "security": [ { "HTTPBearer": [] } ] } }, "/chatbox": { "get": { "tags": [ "Chatbox" ], "summary": "Get Chats", "description": "Get chat rooms.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.Index", "parameters": [ { "name": "room_id", "in": "query", "description": "Room id.", "required": false, "style": "form", "explode": false, "schema": { "$ref": "#/components/schemas/RoomIDModel" } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "rooms", "ban", "ignore", "permissions", "commands", "roomsOnline", "system_info" ], "properties": { "rooms": { "title": "Rooms", "type": "array", "items": { "type": "object", "properties": { "can_report": { "title": "Can", "type": "boolean" }, "eng": { "title": "Eng", "type": "boolean" }, "market": { "title": "Market", "type": "boolean" }, "room_id": { "title": "Room", "type": "integer" }, "title": { "title": "Title", "type": "string" } }, "required": [ "can_report", "eng", "market", "room_id", "title" ] } }, "ban": { "title": "Ban" }, "ignore": { "title": "Ignore", "type": "array", "items": { "type": "object", "properties": { "avatar_date": { "title": "Avatar", "type": "integer" }, "background_date": { "title": "Background", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_admin": { "title": "Is", "type": "boolean" }, "is_banned": { "title": "Is", "type": "boolean" }, "is_moderator": { "title": "Is", "type": "boolean" }, "is_staff": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "link" ] }, "short_link": { "title": "Short" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "uniq_banner": { "title": "Uniq" }, "uniq_username_css": { "title": "Uniq", "type": "string" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "avatar_date", "background_date", "contest_count", "custom_title", "display_banner_id", "display_icon_group_id", "display_style_group_id", "is_admin", "is_banned", "is_moderator", "is_staff", "last_activity", "like2_count", "like_count", "message_count", "register_date", "rendered", "short_link", "trophy_points", "uniq_banner", "uniq_username_css", "user_id", "username" ] } }, "permissions": { "title": "Permissions", "type": "object", "properties": { "deleteAnyMessage": { "title": "Delete Any Message", "type": "boolean" }, "editAnyMessage": { "title": "Edit Any Message", "type": "boolean" }, "viewAnyMessage": { "title": "View Any Message", "type": "boolean" }, "viewMessages": { "title": "View Messages", "type": "boolean" }, "postMessage": { "title": "Post Message", "type": "boolean" }, "ban": { "title": "Ban", "type": "boolean" } }, "required": [ "deleteAnyMessage", "editAnyMessage", "viewAnyMessage", "viewMessages", "postMessage", "ban" ] }, "commands": { "title": "Commands", "type": "array", "items": { "type": "string" } }, "roomsOnline": { "title": "Rooms Online", "type": "object", "properties": { "chat:0": { "title": "Chat", "type": "integer" } }, "required": [ "chat:0" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/chatbox/messages": { "get": { "tags": [ "Chatbox" ], "summary": "Get Chat Messages", "description": "Get chat messages.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.GetMessages", "parameters": [ { "name": "room_id", "in": "query", "description": "Room id.", "required": true, "style": "form", "explode": false, "schema": { "$ref": "#/components/schemas/RoomIDModel" } }, { "name": "before_message_id", "in": "query", "description": "Message id to get older chat messages.", "required": false, "style": "form", "explode": true, "schema": { "title": "Before Comment", "type": "integer" } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "messages", "system_info" ], "properties": { "messages": { "title": "Messages", "type": "array", "items": { "$ref": "#/components/schemas/Resp_ChatboxMessageModel" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "post": { "tags": [ "Chatbox" ], "summary": "Create Chat Message", "description": "Create chat message.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.PostMessage", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "room_id", "message" ], "properties": { "room_id": { "$ref": "#/components/schemas/RoomIDModel" }, "reply_message_id": { "description": "ID of the message being replied to.", "type": "integer" }, "message": { "type": "string", "description": "Content of the chat message." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "message", "system_info" ], "properties": { "message": { "$ref": "#/components/schemas/Resp_ChatboxMessageModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "put": { "tags": [ "Chatbox" ], "summary": "Edit Chat Message", "description": "Edit chat message.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.EditMessage", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message_id", "message" ], "properties": { "message_id": { "description": "Message id.", "type": "integer" }, "message": { "type": "string", "description": "New content of the chat message." } } } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "message", "system_info" ], "properties": { "message": { "$ref": "#/components/schemas/Resp_ChatboxMessageModel" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "delete": { "tags": [ "Chatbox" ], "summary": "Delete Chat Message", "description": "Delete chat message.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.DeleteMessage", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message_id" ], "properties": { "message_id": { "description": "Message id.", "type": "integer" } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/chatbox/messages/online": { "get": { "tags": [ "Chatbox" ], "summary": "Get Chat Online", "description": "Get chat Online Users.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.Online", "parameters": [ { "name": "room_id", "in": "query", "description": "Room id.", "required": true, "style": "form", "explode": false, "schema": { "$ref": "#/components/schemas/RoomIDModel" } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "users", "system_info" ], "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "avatar_date": { "title": "Avatar", "type": "integer" }, "background_date": { "title": "Background", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_admin": { "title": "Is", "type": "boolean" }, "is_banned": { "title": "Is", "type": "boolean" }, "is_moderator": { "title": "Is", "type": "boolean" }, "is_staff": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "link" ] }, "short_link": { "title": "Short", "type": "string" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "uniq_banner": { "title": "Uniq", "type": "object", "properties": { "banner_css": { "title": "Banner", "type": "string" }, "banner_text": { "title": "Banner", "type": "string" }, "banner_icon": { "title": "Banner", "type": "string" }, "username_icon": { "title": "Username", "type": "string" } }, "required": [ "banner_css", "banner_text", "banner_icon", "username_icon" ] }, "uniq_username_css": { "title": "Uniq", "type": "string" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "avatar_date", "background_date", "contest_count", "custom_title", "display_banner_id", "display_icon_group_id", "display_style_group_id", "is_admin", "is_banned", "is_moderator", "is_staff", "last_activity", "like2_count", "like_count", "message_count", "register_date", "rendered", "short_link", "trophy_points", "uniq_banner", "uniq_username_css", "user_id", "username" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/chatbox/messages/report": { "get": { "tags": [ "Chatbox" ], "summary": "Get Chat Message Report Reasons", "description": "Report chat message.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.ReportReasons", "parameters": [ { "name": "message_id", "in": "query", "description": "Message id.", "required": true, "style": "form", "explode": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "reasons", "system_info" ], "properties": { "reasons": { "title": "Reasons", "type": "array", "items": { "type": "string" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "post": { "tags": [ "Chatbox" ], "summary": "Report Chat Message", "description": "Report chat message.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.Report", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "message_id", "reason" ], "properties": { "message_id": { "type": "integer", "description": "Message id." }, "reason": { "type": "string", "description": "Report reason." } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/chatbox/messages/leaderboard": { "get": { "tags": [ "Chatbox" ], "summary": "Get Chat Leaderboard", "description": "Get chat leaderboard.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.GetLeaderboard", "parameters": [ { "name": "duration", "in": "query", "description": "Duration.", "required": false, "style": "form", "explode": false, "schema": { "type": "string", "enum": [ "day", "week", "month" ] } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "leaderboard", "system_info" ], "properties": { "leaderboard": { "title": "Leaderboard", "type": "array", "items": { "type": "object", "properties": { "count": { "title": "Count", "type": "integer" }, "user_id": { "title": "User", "type": "integer" }, "avatar_date": { "title": "Avatar", "type": "integer" }, "background_date": { "title": "Background", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_banned": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "link" ] }, "short_link": { "title": "Short" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "uniq_banner": { "title": "Uniq", "type": "object", "properties": { "banner_css": { "title": "Banner", "type": "string" }, "banner_text": { "title": "Banner", "type": "string" }, "banner_icon": { "title": "Banner", "type": "string" } }, "required": [ "banner_css", "banner_text", "banner_icon" ] }, "uniq_username_css": { "title": "Uniq", "type": "string" }, "username": { "title": "Username", "type": "string" } }, "required": [ "count", "user_id", "avatar_date", "background_date", "contest_count", "custom_title", "display_banner_id", "display_icon_group_id", "display_style_group_id", "is_banned", "last_activity", "like2_count", "like_count", "message_count", "register_date", "rendered", "short_link", "trophy_points", "uniq_banner", "uniq_username_css", "username" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/chatbox/ignore": { "get": { "tags": [ "Chatbox" ], "summary": "Get Ignored Chat Users", "description": "Get list of ignored chat users.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.GetIgnore", "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "ignored", "system_info" ], "properties": { "ignored": { "title": "Ignored", "type": "array", "items": { "type": "object", "properties": { "avatar_date": { "title": "Avatar", "type": "integer" }, "background_date": { "title": "Background", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_banned": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "link" ] }, "short_link": { "title": "Short" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "uniq_banner": { "title": "Uniq" }, "uniq_username_css": { "title": "Uniq", "type": "string" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "avatar_date", "background_date", "contest_count", "custom_title", "display_banner_id", "display_icon_group_id", "display_style_group_id", "is_banned", "last_activity", "like2_count", "like_count", "message_count", "register_date", "rendered", "short_link", "trophy_points", "uniq_banner", "uniq_username_css", "user_id", "username" ] } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "post": { "tags": [ "Chatbox" ], "summary": "Ignore Chat User", "description": "Ignore chat user.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.PostIgnore", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "$ref": "#/components/schemas/UserIDModel" } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] }, "delete": { "tags": [ "Chatbox" ], "summary": "Unignore Chat User", "description": "Unignore chat user.\n\nRequired scopes:\n+ **chatbox**", "operationId": "Chatbox.DeleteIgnore", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "$ref": "#/components/schemas/UserIDModel" } } } } } }, "responses": { "200": { "$ref": "#/components/responses/SaveChanges" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "chatbox" ] } ] } }, "/forms": { "get": { "tags": [ "Forms" ], "summary": "Get Forms List", "description": "Get Forms List", "operationId": "Forms.List", "parameters": [ { "name": "page", "in": "query", "description": "Page number of forms.", "required": false, "style": "form", "explode": true, "schema": { "title": "Page", "type": "integer", "description": "Page number of forms." } } ], "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "forms", "formsPerPage", "page", "totalForms", "system_info" ], "properties": { "forms": { "title": "Forms", "type": "array", "items": { "type": "object", "properties": { "form_id": { "title": "Form", "type": "integer" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "fields": { "title": "Fields", "type": "array", "items": { "type": "object", "properties": { "field_id": { "title": "Field", "type": "integer" }, "title": { "title": "Title", "type": "string" }, "fieldChoices": { "title": "Field Choices", "type": "object", "properties": { "buy": { "title": "Buy", "type": "string" }, "sell": { "title": "Sell", "type": "string" } }, "required": [ "buy", "sell" ] }, "required": { "title": "Required", "type": "integer" }, "max_length": { "title": "Max", "type": "integer" }, "default_value": { "title": "Default", "type": "string" } }, "required": [ "field_id", "title", "fieldChoices", "required", "max_length", "default_value" ] } } }, "required": [ "form_id", "title", "description", "fields" ] } }, "formsPerPage": { "title": "Forms Per Page", "type": "integer" }, "page": { "title": "Page", "type": "integer" }, "totalForms": { "title": "Total Forms", "type": "integer" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" } }, "security": [ { "HTTPBearer": [ "read" ] } ] } }, "/forms/save": { "post": { "tags": [ "Forms" ], "summary": "Create Form", "description": "Create Form.", "operationId": "Forms.Create", "requestBody": { "content": { "application/json": { "schema": { "oneOf": [ { "title": "P2P trade", "type": "object", "description": "P2P trade", "properties": { "form_id": { "type": "integer", "description": "Form ID", "default": 1, "enum": [ 1 ] }, "fields": { "type": "object", "properties": { "8": { "type": "number", "description": "Amount to be sent." }, "11": { "type": "number", "description": "Amount to be received." }, "15": { "type": "string", "enum": [ "market", "ru_1", "ru_2", "ru_3", "ru_4", "ru_5", "ru_6", "ru_7", "ru_8", "ru_9", "ru_10", "ru_11", "ua_1", "ua_2", "ua_3", "ua_4", "ua_5", "ua_6", "ua_7", "ua_8", "kz_1", "kz_2", "kz_3", "kz_4", "kz_5", "kz_6", "kz_7", "kz_8", "by_1", "by_2", "by_3", "by_4", "by_5", "by_6", "by_7", "by_8", "by_9", "sbp", "cr_1", "cr_2", "cr_3", "cr_4", "cr_5", "cr_6", "cr_7", "cr_8", "cr_12", "cr_9", "cr_10", "cr_11", "ot_1", "ot_2", "ot_3", "ot_4", "cr_13", "by_10" ], "x-enumDescriptions": { "market": "Market", "ru_1": "T-Bank", "ru_2": "Sberbank", "ru_3": "Alfa-Bank", "ru_4": "VTB Bank", "ru_5": "Raiffeisenbank", "ru_6": "MTS Bank", "ru_7": "Rosselkhozbank", "ru_8": "Gazprombank", "ru_9": "Sovcombank", "ru_10": "Promsvyazbank", "ru_11": "YooMoney", "ua_1": "PrivatBank", "ua_2": "Monobank", "ua_3": "PUMB", "ua_4": "Oschadbank", "ua_5": "A-Bank", "ua_6": "Raiffeisen Bank", "ua_7": "IziBank", "ua_8": "AccordBank", "kz_1": "Kaspi Bank", "kz_2": "Halyk Bank", "kz_3": "CenterCredit Bank", "kz_4": "Jysan Bank", "kz_5": "Forte Bank", "kz_6": "Altyn Bank", "kz_7": "Bank RBK", "kz_8": "Bereke Bank", "by_1": "MTBank", "by_2": "Priorbank", "by_3": "Paritetbank", "by_4": "CashU", "by_5": "Bank Solution", "by_6": "BSB Bank", "by_7": "BTA Bank", "by_8": "Statusbank", "by_9": "Belarusbank", "sbp": "SBP", "cr_1": "CryptoBot", "cr_2": "Ethereum", "cr_3": "Bitcoin", "cr_4": "TRON", "cr_5": "TON", "cr_6": "Litecoin", "cr_7": "USDT TRC20", "cr_8": "USDT ERC20", "cr_12": "USDT BEP20", "cr_9": "Monero", "cr_10": "Solana", "cr_11": "BNB", "ot_1": "PayPal", "ot_2": "Payoneer", "ot_3": "Payeer", "ot_4": "WebMoney", "cr_13": "Bitpapa", "by_10": "Alfa-Bank" }, "description": "Where from." }, "16": { "type": "string", "enum": [ "rub", "dollar", "euro", "uah", "tenge", "byn" ], "description": "Currency where from." }, "17": { "type": "string", "enum": [ "market", "ru_1", "ru_2", "ru_3", "ru_4", "ru_5", "ru_6", "ru_7", "ru_8", "ru_9", "ru_10", "ru_11", "ua_1", "ua_2", "ua_3", "ua_4", "ua_5", "ua_6", "ua_7", "ua_8", "kz_1", "kz_2", "kz_3", "kz_4", "kz_5", "kz_6", "kz_7", "kz_8", "by_1", "by_2", "by_3", "by_4", "by_5", "by_6", "by_7", "by_8", "by_9", "sbp", "cr_1", "cr_2", "cr_3", "cr_4", "cr_5", "cr_6", "cr_7", "cr_8", "cr_12", "cr_9", "cr_10", "cr_11", "ot_1", "ot_2", "ot_3", "ot_4", "cr_13", "by_10" ], "x-enumDescriptions": { "market": "Market", "ru_1": "T-Bank", "ru_2": "Sberbank", "ru_3": "Alfa-Bank", "ru_4": "VTB Bank", "ru_5": "Raiffeisenbank", "ru_6": "MTS Bank", "ru_7": "Rosselkhozbank", "ru_8": "Gazprombank", "ru_9": "Sovcombank", "ru_10": "Promsvyazbank", "ru_11": "YooMoney", "ua_1": "PrivatBank", "ua_2": "Monobank", "ua_3": "PUMB", "ua_4": "Oschadbank", "ua_5": "A-Bank", "ua_6": "Raiffeisen Bank", "ua_7": "IziBank", "ua_8": "AccordBank", "kz_1": "Kaspi Bank", "kz_2": "Halyk Bank", "kz_3": "CenterCredit Bank", "kz_4": "Jysan Bank", "kz_5": "Forte Bank", "kz_6": "Altyn Bank", "kz_7": "Bank RBK", "kz_8": "Bereke Bank", "by_1": "MTBank", "by_2": "Priorbank", "by_3": "Paritetbank", "by_4": "CashU", "by_5": "Bank Solution", "by_6": "BSB Bank", "by_7": "BTA Bank", "by_8": "Statusbank", "by_9": "Belarusbank", "sbp": "SBP", "cr_1": "CryptoBot", "cr_2": "Ethereum", "cr_3": "Bitcoin", "cr_4": "TRON", "cr_5": "TON", "cr_6": "Litecoin", "cr_7": "USDT TRC20", "cr_8": "USDT ERC20", "cr_12": "USDT BEP20", "cr_9": "Monero", "cr_10": "Solana", "cr_11": "BNB", "ot_1": "PayPal", "ot_2": "Payoneer", "ot_3": "Payeer", "ot_4": "WebMoney", "cr_13": "Bitpapa", "by_10": "Alfa-Bank" }, "description": "Where to." }, "18": { "type": "string", "enum": [ "rub", "dollar", "euro", "uah", "tenge", "byn" ], "description": "Currency where to." }, "14": { "type": "string", "description": "Note to the exchange" } }, "required": [ "8", "11" ] } }, "required": [ "form_id", "fields" ] }, { "title": "Complaint", "type": "object", "description": "Complaint", "properties": { "form_id": { "type": "integer", "description": "Form ID", "default": 3, "enum": [ 3 ] }, "fields": { "type": "object", "properties": { "22": { "type": "string", "description": "Offender's nickname" }, "23": { "type": "string", "enum": [ "cp_re_1", "cp_re_2", "cp_re_3", "cp_re_4", "cp_re_5", "cp_re_6", "cp_re_7", "cp_re_8", "cp_re_9", "cp_re_10", "cp_re_11", "cp_re_12", "cp_re_13", "cp_re_other" ], "x-enumDescriptions": { "cp_re_1": "Scammer's multi-account", "cp_re_2": "Farm", "cp_re_3": "Spam", "cp_re_4": "Report abuse", "cp_re_5": "Rejection of middleman", "cp_re_6": "Inadequate behavior", "cp_re_7": "Sympathy cheating", "cp_re_8": "Hacked", "cp_re_9": "Harmful Software", "cp_re_10": "Fake review", "cp_re_11": "Deanonymization", "cp_re_12": "Scam attempt", "cp_re_13": "Arbitration", "cp_re_other": "Other" }, "description": "Complaint reason" }, "24": { "type": "string", "description": "Complaint description" }, "27": { "type": "string", "description": "Complaint reason / Other" }, "28": { "type": "string", "description": "Moderator's nickname" }, "29": { "type": "string", "description": "Link to appealed complaint" }, "30": { "type": "string", "description": "Thread title" } }, "required": [ "24" ] } }, "required": [ "form_id", "fields" ] } ] } } } }, "responses": { "200": { "description": "Successful Response.", "content": { "application/json": { "schema": { "type": "object", "required": [ "message", "content", "system_info" ], "properties": { "message": { "title": "Message", "type": "string" }, "content": { "title": "Content", "type": "object", "properties": { "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_closed": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "array", "items": {} }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" } }, "required": [ "view", "delete", "follow", "post" ] }, "node_title": { "title": "Node", "type": "string" } }, "required": [ "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_closed", "thread_is_followed", "thread_prefixes", "thread_tags", "links", "permissions", "node_title" ] }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/NoPermission" }, "404": { "$ref": "#/components/responses/NotFound" } }, "security": [ { "HTTPBearer": [ "post" ] } ] } } }, "components": { "parameters": { "thread_id": { "name": "thread_id", "in": "path", "description": "Id of thread.", "required": true, "style": "simple", "explode": false, "schema": { "title": "thread_id", "type": "integer", "description": "Id of thread." } }, "user_id": { "name": "user_id", "in": "query", "style": "form", "description": "User ID.\n> You can use shortlink `me` to interact with your profile.", "required": true, "explode": false, "schema": { "$ref": "#/components/schemas/UserIDModel" } }, "user_id_path": { "name": "user_id", "in": "path", "style": "simple", "description": "User ID.\n> You can use shortlink `me` to interact with your profile.", "required": true, "explode": false, "schema": { "$ref": "#/components/schemas/UserIDModel" } } }, "responses": { "SaveChanges": { "description": "Successful Response.", "content": { "application/json": { "schema": { "title": "SaveChangesModel", "type": "object", "properties": { "status": { "title": "Status", "type": "string", "default": "ok" }, "message": { "title": "Message", "type": "string", "default": "Changes Saved" }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } } } } }, "NoPermission": { "description": "Error Response.", "content": { "application/json": { "schema": { "title": "No Permission Error", "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string", "default": "You do not have permission to view this page or perform this action." } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } }, "examples": { "NoPermission": { "summary": "No permission", "value": { "errors": [ "You do not have permission to view this page or perform this action." ], "system_info": { "visitor_id": 1, "time": 1735689600 } } } } } } }, "Unauthorized": { "content": { "application/json": { "schema": { "title": "Unauthorized", "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } } } }, "examples": { "Unauthorized": { "summary": "Unauthorized", "value": { "errors": [ "Invalid or expired access token." ] } } } } }, "description": "Unauthorized" }, "NotFound": { "description": "Not Found", "content": { "application/json": { "schema": { "title": "NotFound", "type": "object", "required": [ "errors", "system_info" ], "properties": { "errors": { "title": "Errors", "type": "array", "items": { "type": "string" } }, "system_info": { "$ref": "#/components/schemas/Resp_SystemInfo" } } }, "examples": { "NotFound": { "summary": "Not Found", "value": { "errors": [ "The requested ... could not be found." ], "system_info": { "visitor_id": 1, "time": 1735689600 } } } } } } } }, "schemas": { "UserIDModel": { "title": "user_id", "type": [ "string", "integer" ] }, "Resp_NotificationModel": { "type": "object", "required": [ "notification_id", "notification_create_date", "content_type", "content_id", "content_action", "notification_is_unread", "creator_user_id", "creator_username", "creator_username_html", "notification_type", "links", "notification_html" ], "properties": { "notification_id": { "title": "Notification", "type": "integer" }, "notification_create_date": { "title": "Notification", "type": "integer" }, "content_type": { "title": "Content", "type": "string" }, "content_id": { "title": "Content", "type": "integer" }, "content_action": { "title": "Content", "type": "string" }, "notification_is_unread": { "title": "Notification", "type": "boolean" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "notification_type": { "title": "Notification", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "content": { "title": "Content", "type": "string" }, "creator_avatar": { "title": "Creator", "type": "string" } }, "required": [ "content", "creator_avatar" ] }, "notification_html": { "title": "Notification", "type": "string" } } }, "Resp_LinkModel": { "type": "object", "required": [ "link_id", "link_title", "link_description", "links", "permissions" ], "properties": { "link_id": { "title": "Link", "type": "integer" }, "link_title": { "title": "Link", "type": "string" }, "link_description": { "title": "Link", "type": "string" }, "links": { "title": "Links", "type": "object", "properties": { "target": { "title": "Target", "type": "string" }, "detail": { "title": "Detail", "type": "string" } }, "required": [ "target", "detail" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" } }, "required": [ "view" ] } } }, "RoomIDModel": { "type": "integer", "description": "Room ID.", "x-enumDescriptions": { "1": "[Russian] General chat", "2": "[English] General hat", "3": "[Russian] Market chat", "4": "[English] Market chat", "13": "No whiners chat" }, "enum": [ 1, 2, 3, 4, 13 ] }, "Resp_ChatboxMessageModel": { "type": "object", "required": [ "can_report", "date", "is_deleted", "message", "message_id", "messageJson", "messageRaw", "room", "user" ], "properties": { "can_report": { "title": "Can", "type": "boolean" }, "date": { "title": "Date", "type": "integer" }, "is_deleted": { "title": "Is", "type": "boolean" }, "message": { "title": "Message", "type": "string" }, "message_id": { "title": "Message", "type": "integer" }, "messageJson": { "title": "Message Json", "type": "string" }, "messageRaw": { "title": "Message Raw", "type": "string" }, "room": { "title": "Room", "type": "object", "properties": { "can_report": { "title": "Can", "type": "boolean" }, "eng": { "title": "Eng", "type": "boolean" }, "market": { "title": "Market", "type": "boolean" }, "room_id": { "title": "Room", "type": "integer" }, "title": { "title": "Title", "type": "string" } }, "required": [ "can_report", "eng", "market", "room_id", "title" ] }, "user": { "title": "User", "type": "object", "properties": { "avatar_date": { "title": "Avatar", "type": "integer" }, "background_date": { "title": "Background", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "custom_title": { "title": "Custom", "type": "string" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "display_style_group_id": { "title": "Display", "type": "integer" }, "is_admin": { "title": "Is", "type": "boolean" }, "is_banned": { "title": "Is", "type": "boolean" }, "is_moderator": { "title": "Is", "type": "boolean" }, "is_staff": { "title": "Is", "type": "boolean" }, "last_activity": { "title": "Last", "type": "integer" }, "like2_count": { "title": "Like", "type": "integer" }, "like_count": { "title": "Like", "type": "integer" }, "message_count": { "title": "Message", "type": "integer" }, "register_date": { "title": "Register", "type": "integer" }, "rendered": { "title": "Rendered", "type": "object", "properties": { "username": { "title": "Username", "type": "string" }, "avatars": { "title": "Avatars", "type": "object", "properties": { "l": { "title": "L", "type": "string" }, "m": { "title": "M", "type": "string" }, "s": { "title": "S", "type": "string" } }, "required": [ "l", "m", "s" ] }, "link": { "title": "Link", "type": "string" } }, "required": [ "username", "avatars", "link" ] }, "short_link": { "title": "Short", "type": "string" }, "trophy_points": { "title": "Trophy", "type": "integer" }, "uniq_banner": { "title": "Uniq", "type": "object", "properties": { "banner_css": { "title": "Banner", "type": "string" }, "banner_text": { "title": "Banner", "type": "string" }, "banner_icon": { "title": "Banner", "type": "string" }, "username_icon": { "title": "Username", "type": "string" } }, "required": [ "banner_css", "banner_text", "banner_icon", "username_icon" ] }, "uniq_username_css": { "title": "Uniq", "type": "string" }, "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" } }, "required": [ "avatar_date", "background_date", "contest_count", "custom_title", "display_banner_id", "display_icon_group_id", "display_style_group_id", "is_admin", "is_banned", "is_moderator", "is_staff", "last_activity", "like2_count", "like_count", "message_count", "register_date", "rendered", "short_link", "trophy_points", "uniq_banner", "uniq_username_css", "user_id", "username" ] } } }, "Resp_UserModel": { "type": "object", "required": [ "user_id", "username", "username_html", "user_message_count", "user_register_date", "user_like_count", "user_like2_count", "contest_count", "trophy_count", "short_link", "custom_title", "is_banned", "display_banner_id", "display_icon_group_id", "balance", "hold", "currency", "user_email", "user_unread_notification_count", "user_unread_conversation_count", "conv_welcome_message", "user_title", "user_deposit", "user_is_valid", "user_is_verified", "user_is_followed", "user_last_seen_date", "links", "permissions", "user_is_ignored", "user_is_visitor", "user_group_id", "curator_titles", "user_groups", "fields", "user_timezone_offset", "user_external_authentications", "self_permissions", "edit_permissions", "birthday", "secret_answer_rendered", "secret_answer_first_letter", "user_following", "user_followers", "banner" ], "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "user_message_count": { "title": "User", "type": "integer" }, "user_register_date": { "title": "User", "type": "integer" }, "user_like_count": { "title": "User", "type": "integer" }, "user_like2_count": { "title": "User", "type": "integer" }, "contest_count": { "title": "Contest", "type": "integer" }, "trophy_count": { "title": "Trophy", "type": "integer" }, "short_link": { "title": "Short", "type": "string" }, "custom_title": { "title": "Custom", "type": "string" }, "is_banned": { "title": "Is", "type": "integer" }, "display_banner_id": { "title": "Display", "type": "integer" }, "display_icon_group_id": { "title": "Display", "type": "integer" }, "balance": { "title": "Balance", "type": "string" }, "hold": { "title": "Hold", "type": "string" }, "currency": { "title": "Currency", "type": "string" }, "user_email": { "title": "User", "type": "string" }, "user_unread_notification_count": { "title": "User", "type": "integer" }, "user_unread_conversation_count": { "title": "User", "type": "integer" }, "conv_welcome_message": { "title": "Conv", "type": "string" }, "user_title": { "title": "User", "type": "string" }, "user_deposit": { "title": "User", "type": "integer" }, "user_is_valid": { "title": "User", "type": "boolean" }, "user_is_verified": { "title": "User", "type": "boolean" }, "user_is_followed": { "title": "User", "type": "boolean" }, "user_last_seen_date": { "title": "User", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" }, "avatar_big": { "title": "Avatar", "type": "string" }, "avatar_small": { "title": "Avatar", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "followings": { "title": "Followings", "type": "string" }, "ignore": { "title": "Ignore", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" } }, "required": [ "permalink", "detail", "avatar", "avatar_big", "avatar_small", "followers", "followings", "ignore", "timeline" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "edit": { "title": "Edit", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "ignore": { "title": "Ignore", "type": "boolean" }, "profile_post": { "title": "Profile", "type": "boolean" } }, "required": [ "edit", "follow", "ignore", "profile_post" ] }, "user_is_ignored": { "title": "User", "type": "boolean" }, "user_is_visitor": { "title": "User", "type": "boolean" }, "user_group_id": { "title": "User", "type": "integer" }, "curator_titles": { "title": "Curator", "type": "array", "items": { "type": "string" } }, "user_groups": { "title": "User", "type": "array", "items": { "type": "object", "properties": { "user_group_id": { "title": "User", "type": "integer" }, "user_group_title": { "title": "User", "type": "string" }, "user_group_title_en": { "title": "User", "type": "string" }, "user_group_banner_css_class": { "title": "User", "type": "string" }, "user_group_banner_text": { "title": "User", "type": "string" }, "user_group_banner_text_en": { "title": "User", "type": "string" }, "display_group_selectable": { "title": "Display", "type": "boolean" }, "display_banner_selectable": { "title": "Display", "type": "boolean" }, "display_icon_selectable": { "title": "Display", "type": "boolean" }, "is_primary_group": { "title": "Is", "type": "boolean" }, "user_group_icon_class": { "title": "User", "type": "string" } }, "required": [ "user_group_id", "user_group_title", "user_group_title_en", "user_group_banner_css_class", "user_group_banner_text", "user_group_banner_text_en", "user_group_icon_class", "display_group_selectable", "display_banner_selectable", "display_icon_selectable", "is_primary_group" ] } }, "fields": { "title": "Fields", "type": "array", "items": { "type": "object", "properties": { "id": { "title": "Id", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "position": { "title": "Position", "type": "string" }, "is_required": { "title": "Is", "type": "boolean" }, "value": { "title": "Value", "type": "string" }, "is_multi_choice": { "title": "Is", "type": "boolean" }, "choices": { "title": "Choices", "type": "array", "items": { "type": "object", "properties": { "key": { "title": "Key", "type": "string" }, "value": { "title": "Value", "type": "string" } }, "required": [ "key", "value" ] } }, "values": { "title": "Values", "type": "array", "items": {} } }, "required": [ "id", "title", "description", "position", "is_multi_choice", "is_required", "choices", "values" ] } }, "user_timezone_offset": { "title": "User", "type": "integer" }, "user_external_authentications": { "title": "User", "type": "array", "items": { "type": "object", "properties": { "provider": { "title": "Provider", "type": "string" }, "provider_key": { "title": "Provider", "type": "string" } }, "required": [ "provider", "provider_key" ] } }, "self_permissions": { "title": "Self", "type": "object", "properties": { "create_conversation": { "title": "Create", "type": "boolean" } }, "required": [ "create_conversation" ] }, "edit_permissions": { "title": "Edit", "type": "object", "properties": { "password": { "title": "Password", "type": "boolean" }, "user_email": { "title": "User", "type": "boolean" }, "username": { "title": "Username", "type": "boolean" }, "user_title": { "title": "User", "type": "boolean" }, "short_link": { "title": "Short", "type": "boolean" }, "hide_username_logs": { "title": "Hide", "type": "boolean" }, "primary_group_id": { "title": "Primary", "type": "boolean" }, "secondary_group_ids": { "title": "Secondary", "type": "boolean" }, "user_dob_day": { "title": "User", "type": "boolean" }, "user_dob_month": { "title": "User", "type": "boolean" }, "user_dob_year": { "title": "User", "type": "boolean" }, "fields": { "title": "Fields", "type": "boolean" } }, "required": [ "password", "user_email", "username", "user_title", "short_link", "hide_username_logs", "primary_group_id", "secondary_group_ids", "user_dob_day", "user_dob_month", "user_dob_year", "fields" ] }, "birthday": { "title": "Birthday", "type": "object", "properties": { "age": { "title": "Age", "type": "integer" }, "timeStamp": { "title": "Time Stamp", "type": "object", "properties": { "date": { "title": "Date", "type": "string" }, "timezone_type": { "title": "Timezone", "type": "integer" }, "timezone": { "title": "Timezone", "type": "string" } }, "required": [ "date", "timezone_type", "timezone" ] }, "format": { "title": "Format", "type": "string" } }, "required": [ "age", "timeStamp", "format" ] }, "secret_answer_rendered": { "title": "Secret", "type": "string" }, "secret_answer_first_letter": { "title": "Secret", "type": "string" }, "user_following": { "title": "User", "type": "object", "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" } }, "required": [ "user_id", "username", "username_html", "avatar" ] } }, "count": { "title": "Count", "type": "integer" } }, "required": [ "users", "count" ] }, "user_followers": { "title": "User", "type": "object", "properties": { "users": { "title": "Users", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" } }, "required": [ "user_id", "username", "username_html", "avatar" ] } }, "count": { "title": "Count", "type": "integer" } }, "required": [ "users", "count" ] }, "banner": { "title": "Banner", "type": "string" } } }, "Resp_ThreadModel": { "type": "object", "required": [ "thread_id", "forum_id", "thread_title", "thread_view_count", "creator_user_id", "creator_username", "creator_username_html", "thread_create_date", "thread_update_date", "user_is_ignored", "thread_post_count", "thread_is_published", "thread_is_deleted", "thread_is_sticky", "thread_is_closed", "thread_is_followed", "thread_is_starred", "first_post", "thread_prefixes", "thread_tags", "links", "permissions", "node_title", "restrictions", "last_post", "contest" ], "properties": { "thread_id": { "title": "Thread", "type": "integer" }, "forum_id": { "title": "Forum", "type": "integer" }, "thread_title": { "title": "Thread", "type": "string" }, "thread_view_count": { "title": "Thread", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "thread_create_date": { "title": "Thread", "type": "integer" }, "thread_update_date": { "title": "Thread", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "thread_post_count": { "title": "Thread", "type": "integer" }, "thread_is_published": { "title": "Thread", "type": "boolean" }, "thread_is_deleted": { "title": "Thread", "type": "boolean" }, "thread_is_sticky": { "title": "Thread", "type": "boolean" }, "thread_is_closed": { "title": "Thread", "type": "boolean" }, "thread_is_followed": { "title": "Thread", "type": "boolean" }, "thread_is_starred": { "title": "Thread", "type": "boolean" }, "first_post": { "title": "First", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "post_is_liked": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] }, "thread_is_deleted": { "title": "Thread", "type": "boolean" } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "post_is_liked", "links", "permissions", "thread_is_deleted" ] }, "thread_prefixes": { "title": "Thread", "type": "array", "items": {} }, "thread_tags": { "title": "Thread", "type": "object", "properties": { "97491": { "title": "", "type": "string" }, "193431": { "title": "", "type": "string" }, "206": { "title": "", "type": "string" } }, "required": [ "97491", "193431", "206" ] }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "followers": { "title": "Followers", "type": "string" }, "forum": { "title": "Forum", "type": "string" }, "posts": { "title": "Posts", "type": "string" }, "first_poster": { "title": "First", "type": "string" }, "first_poster_avatar": { "title": "First", "type": "string" }, "first_post": { "title": "First", "type": "string" }, "last_post": { "title": "Last", "type": "string" } }, "required": [ "permalink", "detail", "followers", "forum", "posts", "first_poster", "first_poster_avatar", "first_post", "last_post" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "follow": { "title": "Follow", "type": "boolean" }, "post": { "title": "Post", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "edit_title": { "title": "Edit", "type": "boolean" }, "edit_tags": { "title": "Edit", "type": "boolean" }, "bump": { "title": "Bump", "type": "object", "properties": { "can": { "title": "Can", "type": "boolean" }, "available_count": { "title": "Available", "type": "integer" }, "error": { "title": "Error" }, "next_available_time": { "title": "Next" } }, "required": [ "can", "available_count", "error", "next_available_time" ] } }, "required": [ "view", "delete", "follow", "post", "edit", "edit_title", "edit_tags", "bump" ] }, "node_title": { "title": "Node", "type": "string" }, "restrictions": { "title": "Restrictions", "type": "object", "properties": { "reply_delay": { "title": "Reply", "type": "integer" }, "max_reply_count": { "title": "Max", "type": "integer" } }, "required": [ "reply_delay", "max_reply_count" ] }, "last_post": { "title": "Last", "type": "object", "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "post_is_liked": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] }, "thread_is_deleted": { "title": "Thread", "type": "boolean" } }, "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "post_is_liked", "links", "permissions", "thread_is_deleted" ] }, "contest": { "type": "object", "required": [ "type", "finish_date", "now_count_members", "needed_members", "is_finished", "count_winners", "require_like_count", "require_total_like_count", "prize_type", "prize_type_phrase", "prize_data", "is_money_places", "chance_to_win", "winners", "already_participate", "permissions" ], "properties": { "type": { "title": "Type", "type": "string" }, "finish_date": { "title": "Finish", "type": "integer" }, "now_count_members": { "title": "Now", "type": "integer" }, "needed_members": { "title": "Needed", "type": "integer" }, "is_finished": { "title": "Is", "type": "integer" }, "count_winners": { "title": "Count", "type": "integer" }, "require_like_count": { "title": "Require", "type": "integer" }, "require_total_like_count": { "title": "Require", "type": "integer" }, "prize_type": { "title": "Prize", "type": "string" }, "prize_type_phrase": { "title": "Prize", "type": "string" }, "prize_data": { "title": "Prize", "type": "integer" }, "is_money_places": { "title": "Is", "type": "integer" }, "chance_to_win": { "title": "Chance", "type": "number" }, "winners": { "title": "Winners", "type": "array", "items": { "type": "integer" } }, "already_participate": { "title": "Already", "type": "boolean" }, "permissions": { "title": "Permissions", "type": "object", "properties": { "can_finish": { "title": "Can", "type": "boolean" }, "can_participate": { "title": "Can", "type": "boolean" }, "can_participate_error": { "title": "Can", "type": "string" }, "can_view_user_list": { "title": "Can", "type": "boolean" } }, "required": [ "can_finish", "can_participate", "can_participate_error", "can_view_user_list" ] } } } } }, "Resp_PostModel": { "type": "object", "required": [ "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "signature", "signature_html", "signature_plain_text", "post_like_count", "user_is_ignored", "post_is_published", "post_is_deleted", "post_update_date", "post_is_first_post", "links", "permissions", "thread_is_deleted" ], "properties": { "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "signature_html": { "title": "Signature", "type": "string" }, "signature_plain_text": { "title": "Signature", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_update_date": { "title": "Post", "type": "integer" }, "post_is_first_post": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] }, "thread_is_deleted": { "title": "Thread", "type": "boolean" } } }, "Resp_PostCommentModel": { "type": "object", "required": [ "post_comment_id", "post_id", "thread_id", "poster_user_id", "poster_username", "poster_username_html", "post_comment_create_date", "post_comment_body", "post_comment_body_html", "post_comment_body_plain_text", "post_comment_like_count", "user_is_ignored", "post_comment_is_published", "post_comment_is_deleted", "post_comment_update_date", "links", "permissions" ], "properties": { "post_comment_id": { "title": "Post", "type": "integer" }, "post_id": { "title": "Post", "type": "integer" }, "thread_id": { "title": "Thread", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_comment_create_date": { "title": "Post", "type": "integer" }, "post_comment_body": { "title": "Post", "type": "string" }, "post_comment_body_html": { "title": "Post", "type": "string" }, "post_comment_body_plain_text": { "title": "Post", "type": "string" }, "post_comment_like_count": { "title": "Post", "type": "integer" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_comment_is_published": { "title": "Post", "type": "boolean" }, "post_comment_is_deleted": { "title": "Post", "type": "boolean" }, "post_comment_update_date": { "title": "Post", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "post": { "title": "Post", "type": "string" }, "thread": { "title": "Thread", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "post", "thread", "poster", "likes", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" } }, "required": [ "view", "edit", "delete", "reply", "like", "report" ] } } }, "Resp_ProfilePostModel": { "type": "object", "required": [ "profile_post_id", "timeline_user_id", "poster_user_id", "poster_username", "poster_username_html", "post_create_date", "post_body", "post_body_html", "post_body_plain_text", "post_like_count", "post_comment_count", "post_comments_is_disabled", "timeline_username", "user_is_ignored", "post_is_published", "post_is_deleted", "post_is_liked", "post_is_sticked", "links", "permissions", "timeline_user" ], "properties": { "profile_post_id": { "title": "Profile", "type": "integer" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "poster_user_id": { "title": "Poster", "type": "integer" }, "poster_username": { "title": "Poster", "type": "string" }, "poster_username_html": { "title": "Poster", "type": "string" }, "post_create_date": { "title": "Post", "type": "integer" }, "post_body": { "title": "Post", "type": "string" }, "post_body_html": { "title": "Post", "type": "string" }, "post_body_plain_text": { "title": "Post", "type": "string" }, "post_like_count": { "title": "Post", "type": "integer" }, "post_comment_count": { "title": "Post", "type": "integer" }, "post_comments_is_disabled": { "title": "Post", "type": "integer" }, "timeline_username": { "title": "Timeline", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "post_is_published": { "title": "Post", "type": "boolean" }, "post_is_deleted": { "title": "Post", "type": "boolean" }, "post_is_liked": { "title": "Post", "type": "boolean" }, "post_is_sticked": { "title": "Post", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "likes": { "title": "Likes", "type": "string" }, "comments": { "title": "Comments", "type": "string" }, "report": { "title": "Report", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "permalink", "detail", "timeline", "timeline_user", "poster", "likes", "comments", "report", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "like": { "title": "Like", "type": "boolean" }, "comment": { "title": "Comment", "type": "boolean" }, "report": { "title": "Report", "type": "boolean" }, "stick": { "title": "Stick", "type": "boolean" } }, "required": [ "view", "edit", "delete", "like", "comment", "report", "stick" ] }, "timeline_user": { "$ref": "#/components/schemas/Resp_UserModel" } } }, "Resp_ProfilePostCommentModel": { "type": "object", "required": [ "comment_id", "profile_post_id", "comment_user_id", "comment_username", "comment_username_html", "comment_create_date", "comment_body", "comment_body_html", "comment_body_plain_text", "user_is_ignored", "timeline_user_id", "links", "permissions" ], "properties": { "comment_id": { "title": "Comment", "type": "integer" }, "profile_post_id": { "title": "Profile", "type": "integer" }, "comment_user_id": { "title": "Comment", "type": "integer" }, "comment_username": { "title": "Comment", "type": "string" }, "comment_username_html": { "title": "Comment", "type": "string" }, "comment_create_date": { "title": "Comment", "type": "integer" }, "comment_body": { "title": "Comment", "type": "string" }, "comment_body_html": { "title": "Comment", "type": "string" }, "comment_body_plain_text": { "title": "Comment", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "timeline_user_id": { "title": "Timeline", "type": "integer" }, "links": { "title": "Links", "type": "object", "properties": { "detail": { "title": "Detail", "type": "string" }, "profile_post": { "title": "Profile", "type": "string" }, "timeline": { "title": "Timeline", "type": "string" }, "timeline_user": { "title": "Timeline", "type": "string" }, "poster": { "title": "Poster", "type": "string" }, "poster_avatar": { "title": "Poster", "type": "string" } }, "required": [ "detail", "profile_post", "timeline", "timeline_user", "poster", "poster_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" } }, "required": [ "view", "delete" ] } } }, "Resp_ConversationModel": { "type": "object", "required": [ "conversation_id", "conversation_title", "creator_user_id", "creator_username", "creator_username_html", "conversation_create_date", "conversation_update_date", "conversation_last_read_date", "conversation_online_count", "is_starred", "is_group", "is_unread", "alerts", "permissions", "conversation_message_count", "conversation_is_new", "creator_is_ignored", "conversation_is_open", "conversation_is_deleted", "recipient", "recipients", "links" ], "properties": { "conversation_id": { "title": "Conversation", "type": "integer" }, "conversation_title": { "title": "Conversation", "type": "string" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "conversation_create_date": { "title": "Conversation", "type": "integer" }, "conversation_update_date": { "title": "Conversation", "type": "integer" }, "conversation_last_read_date": { "title": "Conversation", "type": "integer" }, "conversation_online_count": { "title": "Conversation", "type": "integer" }, "is_starred": { "title": "Is", "type": "integer" }, "is_group": { "title": "Is", "type": "integer" }, "is_unread": { "title": "Is", "type": "integer" }, "alerts": { "title": "Alerts", "type": "integer" }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "reply": { "title": "Reply", "type": "boolean" }, "invite": { "title": "Invite", "type": "boolean" }, "manage_invite_links": { "title": "Manage", "type": "boolean" }, "kick": { "title": "Kick", "type": "boolean" }, "upload_avatar": { "title": "Upload", "type": "boolean" }, "editOwnPost": { "title": "Edit Own Post", "type": "boolean" }, "stickyMessages": { "title": "Sticky Messages", "type": "boolean" } }, "required": [ "view", "reply", "invite", "manage_invite_links", "kick", "upload_avatar", "editOwnPost", "stickyMessages" ] }, "conversation_message_count": { "title": "Conversation", "type": "integer" }, "conversation_is_new": { "title": "Conversation", "type": "boolean" }, "creator_is_ignored": { "title": "Creator", "type": "boolean" }, "conversation_is_open": { "title": "Conversation", "type": "boolean" }, "conversation_is_deleted": { "title": "Conversation", "type": "boolean" }, "recipient": { "title": "Recipient", "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "last_activity": { "title": "Last", "type": "integer" }, "is_online": { "title": "Is", "type": "boolean" }, "contacts_changed": { "title": "Contacts", "type": "boolean" }, "avatar": { "title": "Avatar", "type": "string" } }, "required": [ "user_id", "username", "username_html", "last_activity", "is_online", "contacts_changed", "avatar" ] }, "recipients": { "title": "Recipients", "type": "array", "items": { "type": "object", "properties": { "user_id": { "title": "User", "type": "integer" }, "username": { "title": "Username", "type": "string" }, "username_html": { "title": "Username", "type": "string" }, "last_activity": { "title": "Last", "type": "integer" }, "is_online": { "title": "Is", "type": "boolean" }, "contacts_changed": { "title": "Contacts", "type": "boolean" }, "avatar": { "title": "Avatar", "type": "string" } }, "required": [ "user_id", "username", "username_html", "last_activity", "is_online", "contacts_changed", "avatar" ] } }, "links": { "title": "Links", "type": "object", "properties": { "permalink": { "title": "Permalink", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "messages": { "title": "Messages", "type": "string" }, "avatar": { "title": "Avatar", "type": "string" } }, "required": [ "permalink", "detail", "messages", "avatar" ] } } }, "Resp_ConversationMessageModel": { "type": "object", "required": [ "message_id", "conversation_id", "creator_user_id", "creator_username", "creator_username_html", "message_create_date", "message_is_unread", "message_need_translate", "message_is_system", "message_edit_date", "message_body", "message_body_html", "message_body_plain_text", "user_is_ignored", "links", "permissions" ], "properties": { "message_id": { "title": "Message", "type": "integer" }, "conversation_id": { "title": "Conversation", "type": "integer" }, "creator_user_id": { "title": "Creator", "type": "integer" }, "creator_username": { "title": "Creator", "type": "string" }, "creator_username_html": { "title": "Creator", "type": "string" }, "message_create_date": { "title": "Message", "type": "integer" }, "message_is_unread": { "title": "Message", "type": "integer" }, "message_need_translate": { "title": "Message", "type": "boolean" }, "message_is_system": { "title": "Message", "type": "boolean" }, "message_edit_date": { "title": "Message", "type": "integer" }, "message_body": { "title": "Message", "type": "string" }, "message_body_html": { "title": "Message", "type": "string" }, "message_body_plain_text": { "title": "Message", "type": "string" }, "user_is_ignored": { "title": "User", "type": "boolean" }, "links": { "title": "Links", "type": "object", "properties": { "detail": { "title": "Detail", "type": "string" }, "conversation": { "title": "Conversation", "type": "string" }, "creator": { "title": "Creator", "type": "string" }, "creator_avatar": { "title": "Creator", "type": "string" } }, "required": [ "detail", "conversation", "creator", "creator_avatar" ] }, "permissions": { "title": "Permissions", "type": "object", "properties": { "view": { "title": "View", "type": "boolean" }, "edit": { "title": "Edit", "type": "boolean" }, "delete": { "title": "Delete", "type": "boolean" }, "stick-unstick": { "title": "Stick", "type": "boolean" } }, "required": [ "view", "edit", "delete", "stick-unstick" ] } } }, "Resp_SystemInfo": { "required": [ "visitor_id", "time" ], "properties": { "visitor_id": { "type": "integer" }, "time": { "type": "integer" } } } }, "securitySchemes": { "HTTPBearer": { "type": "http", "description": "You can get your token [here](https://lolz.live/account/api).", "scheme": "bearer" } } }, "x-readme": { "explorer-enabled": true, "proxy-enabled": true, "samples-enabled": true } }