{ "openapi": "3.1.0", "info": { "title": "Homarr API documentation", "version": "1.1.0" }, "servers": [ { "url": "http://localhost:3000" } ], "externalDocs": { "url": "https://homarr.dev" }, "paths": { "/api/apps/paginated": { "get": { "operationId": "appRouter-getPaginated", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "query", "name": "search", "schema": { "type": "string" } }, { "in": "query", "name": "pageSize", "schema": { "default": 10, "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, { "in": "query", "name": "page", "schema": { "default": 1, "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "description", "iconUrl", "href", "pingUrl"], "additionalProperties": false } }, "totalCount": { "type": "number" } }, "required": ["items", "totalCount"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/apps": { "get": { "operationId": "appRouter-all", "tags": ["apps"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "description", "iconUrl", "href", "pingUrl"], "additionalProperties": false } } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "post": { "operationId": "appRouter-create", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 64 }, "description": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ] }, "iconUrl": { "type": "string", "minLength": 1 }, "href": { "anyOf": [ { "anyOf": [ { "type": "string", "pattern": "^(?!javascript)[a-zA-Z]*:\\/\\/" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "anyOf": [ { "type": "string", "pattern": "^https?:\\/\\/" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] } }, "required": ["name", "description", "iconUrl", "href", "pingUrl"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "allOf": [ { "type": "object", "properties": { "appId": { "type": "string" } }, "required": ["appId"], "additionalProperties": false }, { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "description", "iconUrl", "href", "pingUrl"], "additionalProperties": false } ] } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/apps/search": { "get": { "operationId": "appRouter-search", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "query", "name": "query", "schema": { "type": "string" }, "required": true }, { "in": "query", "name": "limit", "schema": { "default": 10, "type": "number", "minimum": 1, "maximum": 100 } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "description", "iconUrl", "href", "pingUrl"], "additionalProperties": false } } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/apps/selectable": { "get": { "operationId": "appRouter-selectable", "tags": ["apps"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "iconUrl", "href", "pingUrl", "description"], "additionalProperties": false } } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/apps/{id}": { "get": { "operationId": "appRouter-byId", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "iconUrl": { "type": "string" }, "href": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "description", "iconUrl", "href", "pingUrl"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "patch": { "operationId": "appRouter-update", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 64 }, "description": { "anyOf": [ { "type": "string", "maxLength": 512 }, { "type": "null" } ] }, "iconUrl": { "type": "string", "minLength": 1 }, "href": { "anyOf": [ { "anyOf": [ { "type": "string", "pattern": "^(?!javascript)[a-zA-Z]*:\\/\\/" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] }, "pingUrl": { "anyOf": [ { "anyOf": [ { "type": "string", "pattern": "^https?:\\/\\/" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] } }, "required": ["name", "description", "iconUrl", "href", "pingUrl"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "delete": { "operationId": "appRouter-delete", "tags": ["apps"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards": { "get": { "operationId": "boardRouter-getAllBoards", "tags": ["boards"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "logoImageUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "isPublic": { "type": "boolean" }, "creator": { "anyOf": [ { "type": "object", "properties": { "id": { "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "image", "email"], "additionalProperties": false }, { "type": "null" } ] }, "isHome": { "type": "boolean" }, "isMobileHome": { "type": "boolean" }, "userPermissions": { "type": "array", "items": { "type": "object", "properties": { "permission": { "type": "string", "enum": ["view", "modify", "full"] } }, "required": ["permission"], "additionalProperties": false } }, "groupPermissions": { "type": "array", "items": { "type": "object", "properties": { "permission": { "type": "string", "enum": ["view", "modify", "full"] } }, "required": ["permission"], "additionalProperties": false } } }, "required": [ "id", "name", "logoImageUrl", "isPublic", "creator", "isHome", "isMobileHome", "userPermissions", "groupPermissions" ], "additionalProperties": false } } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "post": { "operationId": "boardRouter-createBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255, "pattern": "^[A-Za-z0-9-_]*$" }, "columnCount": { "type": "number", "minimum": 1, "maximum": 24 }, "isPublic": { "type": "boolean" } }, "required": ["name", "columnCount", "isPublic"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "boardId": { "type": "string" } }, "required": ["boardId"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/duplicate": { "post": { "operationId": "boardRouter-duplicateBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255, "pattern": "^[A-Za-z0-9-_]*$" } }, "required": ["name"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "boardId": { "type": "string" } }, "required": ["boardId"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/name": { "patch": { "operationId": "boardRouter-renameBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255, "pattern": "^[A-Za-z0-9-_]*$" } }, "required": ["name"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/visibility": { "patch": { "operationId": "boardRouter-changeBoardVisibility", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "visibility": { "type": "string", "enum": ["public", "private"] } }, "required": ["visibility"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}": { "delete": { "operationId": "boardRouter-deleteBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/home": { "patch": { "operationId": "boardRouter-setHomeBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/mobile-home": { "patch": { "operationId": "boardRouter-setMobileHomeBoard", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/{id}/settings": { "patch": { "operationId": "boardRouter-savePartialBoardSettings", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "pageTitle": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "metaTitle": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "logoImageUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "faviconImageUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "backgroundImageUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "backgroundImageAttachment": { "type": "string", "enum": ["fixed", "scroll"] }, "backgroundImageRepeat": { "type": "string", "enum": ["repeat", "repeat-x", "repeat-y", "no-repeat"] }, "backgroundImageSize": { "type": "string", "enum": ["cover", "contain"] }, "primaryColor": { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" }, "secondaryColor": { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" }, "opacity": { "type": "number", "minimum": 0, "maximum": 100 }, "customCss": { "type": "string", "maxLength": 16384 }, "iconColor": { "anyOf": [ { "anyOf": [ { "type": "string", "pattern": "^#[0-9A-Fa-f]{6}$" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] }, "itemRadius": { "anyOf": [ { "type": "string", "const": "xs" }, { "type": "string", "const": "sm" }, { "type": "string", "const": "md" }, { "type": "string", "const": "lg" }, { "type": "string", "const": "xl" } ] }, "disableStatus": { "type": "boolean" } } } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/boards/items": { "post": { "operationId": "boardRouter-addItem", "tags": ["boards"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "boardId": { "type": "string" }, "kind": { "type": "string", "enum": [ "clock", "weather", "app", "iframe", "video", "notebook", "anchorNote", "dnsHoleSummary", "dnsHoleControls", "smartHome-entityState", "smartHome-executeAutomation", "stockPrice", "mediaServer", "calendar", "downloads", "mediaRequests-requestList", "mediaRequests-requestStats", "mediaTranscoding", "mediaMissing", "minecraftServerStatus", "networkControllerSummary", "networkControllerStatus", "rssFeed", "bookmarks", "indexerManager", "healthMonitoring", "releases", "mediaReleases", "dockerContainers", "firewall", "notifications", "systemResources", "coolify", "systemDisks", "timetable", "immich-serverStats", "immich-albumCarousel", "paperlessNgx", "patchmon", "bazarr", "tracearr", "speedtestTracker", "uptimeKuma", "audioStats", "umami", "vpn", "archiveTeamWarrior", "ups", "beszelSystemTable", "beszelSystemGrid", "beszelAlerts", "beszelSystemStats", "traefik", "customApi" ] }, "options": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "integrationIds": { "default": [], "type": "array", "items": { "type": "string" } } }, "required": ["boardId", "kind"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "itemId": { "type": "string" } }, "required": ["itemId"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/info": { "get": { "operationId": "infoRouter-getInfo", "tags": ["info"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string" } }, "required": ["version"], "additionalProperties": false } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/invites": { "get": { "operationId": "inviteRouter-getAll", "tags": ["invites"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "expirationDate": { "type": "string" }, "creator": { "type": "object", "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "id": { "type": "string" } }, "required": ["name", "id"], "additionalProperties": false } }, "required": ["id", "expirationDate", "creator"], "additionalProperties": false } } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "post": { "operationId": "inviteRouter-createInvite", "tags": ["invites"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "expirationDate": { "type": "string" } }, "required": ["expirationDate"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "token": { "type": "string" } }, "required": ["id", "token"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/invites/{id}": { "delete": { "operationId": "inviteRouter-deleteInvite", "tags": ["invites"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "not": {} } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/settings/board": { "get": { "operationId": "serverSettingsRouter-getBoardSettings", "tags": ["settings"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "homeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "mobileHomeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "enableStatusByDefault": { "type": "boolean" }, "forceDisableStatus": { "type": "boolean" } }, "required": ["homeBoardId", "mobileHomeBoardId", "enableStatusByDefault", "forceDisableStatus"], "additionalProperties": false } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "patch": { "operationId": "serverSettingsRouter-updateBoardSettings", "tags": ["settings"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "homeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "mobileHomeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "enableStatusByDefault": { "type": "boolean" }, "forceDisableStatus": { "type": "boolean" } } } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "homeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "mobileHomeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "enableStatusByDefault": { "type": "boolean" }, "forceDisableStatus": { "type": "boolean" } }, "required": ["homeBoardId", "mobileHomeBoardId", "enableStatusByDefault", "forceDisableStatus"], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users": { "post": { "operationId": "userRouter-create", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "username": { "type": "string", "minLength": 3, "maxLength": 255 }, "password": { "type": "string", "minLength": 8, "maxLength": 255 }, "confirmPassword": { "type": "string" }, "email": { "anyOf": [ { "type": "string", "format": "email", "pattern": "^[^\\s@\"]{1,64}@[^\\s@]{1,255}$" }, { "type": "string", "minLength": 0, "maxLength": 0 } ] }, "groupIds": { "type": "array", "items": { "type": "string" } } }, "required": ["username", "password", "confirmPassword", "groupIds"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "get": { "operationId": "userRouter-getAll", "tags": ["users"], "security": [ { "apikey": [] } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "emailVerified": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "email", "emailVerified", "image"], "additionalProperties": false } } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/profileImage": { "put": { "operationId": "userRouter-setProfileImage", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string" }, "image": { "anyOf": [ { "type": "string", "maxLength": 350000, "pattern": "^data:image\\/(png|jpeg|gif|webp);base64,[A-Za-z0-9/+]+=*$" }, { "type": "null" } ] } }, "required": ["userId", "image"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/selectable": { "get": { "operationId": "userRouter-selectable", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "query", "name": "providers", "schema": { "type": "array", "items": { "type": "string", "enum": ["credentials", "oidc", "ldap"] } } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "image", "email"], "additionalProperties": false } } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/search": { "post": { "operationId": "userRouter-search", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "query": { "type": "string" }, "limit": { "default": 10, "type": "number", "minimum": 1, "maximum": 100 } }, "required": ["query"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }, "required": ["id", "name", "image", "email"], "additionalProperties": false } } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/{userId}": { "get": { "operationId": "userRouter-getById", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "userId", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "emailVerified": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "image": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "provider": { "type": "string" }, "homeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "mobileHomeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "firstDayOfWeek": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "pingIconsEnabled": { "type": "boolean" }, "enableRightClickOnWidgets": { "type": "boolean" }, "defaultSearchEngineId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "openSearchInNewTab": { "type": "boolean" }, "ddgBangs": { "type": "boolean" }, "completedManageTour": { "type": "boolean" }, "completedBoardTour": { "type": "boolean" } }, "required": [ "id", "name", "email", "emailVerified", "image", "provider", "homeBoardId", "mobileHomeBoardId", "firstDayOfWeek", "pingIconsEnabled", "enableRightClickOnWidgets", "defaultSearchEngineId", "openSearchInNewTab", "ddgBangs", "completedManageTour", "completedBoardTour" ], "additionalProperties": false } } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } }, "delete": { "operationId": "userRouter-delete", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "userId", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/profile": { "put": { "operationId": "userRouter-editProfile", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string", "minLength": 3, "maxLength": 255 }, "email": { "anyOf": [ { "anyOf": [ { "type": "string", "format": "email", "pattern": "^[^\\s@\"]{1,64}@[^\\s@]{1,255}$" }, { "type": "string", "const": "" } ] }, { "type": "null" } ] } }, "required": ["id", "name"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/{userId}/changePassword": { "patch": { "operationId": "userRouter-changePassword", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [ { "in": "path", "name": "userId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "previousPassword": { "type": "string", "minLength": 1 }, "password": { "type": "string", "minLength": 8, "maxLength": 255 }, "confirmPassword": { "type": "string" } }, "required": ["previousPassword", "password", "confirmPassword"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/changeHome": { "patch": { "operationId": "userRouter-changeHomeBoards", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "homeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "mobileHomeBoardId": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "userId": { "type": "string" } }, "required": ["homeBoardId", "mobileHomeBoardId", "userId"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/changeSearchEngine": { "patch": { "operationId": "userRouter-changeDefaultSearchEngine", "tags": ["users"], "security": [ { "apikey": [] } ], "deprecated": true, "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultSearchEngineId": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ] }, "ddgBangsEnabled": { "type": "boolean" }, "userId": { "type": "string" } }, "required": ["defaultSearchEngineId", "ddgBangsEnabled", "userId"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/search-preferences": { "patch": { "operationId": "userRouter-changeSearchPreferences", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultSearchEngineId": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ] }, "openInNewTab": { "type": "boolean" }, "ddgBangsEnabled": { "type": "boolean" }, "userId": { "type": "string" } }, "required": ["defaultSearchEngineId", "openInNewTab", "ddgBangsEnabled", "userId"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/changeScheme": { "patch": { "operationId": "userRouter-changeColorScheme", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "colorScheme": { "type": "string", "enum": ["auto", "light", "dark"] } }, "required": ["colorScheme"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/right-click-widgets": { "patch": { "operationId": "userRouter-changeEnableRightClickOnWidgets", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "enableRightClickOnWidgets": { "type": "boolean" }, "id": { "type": "string" } }, "required": ["enableRightClickOnWidgets", "id"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/ddg-bangs": { "patch": { "operationId": "userRouter-changeDdgBangs", "tags": ["users"], "security": [ { "apikey": [] } ], "deprecated": true, "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "ddgBangs": { "type": "boolean" }, "id": { "type": "string" } }, "required": ["ddgBangs", "id"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } }, "/api/users/firstDayOfWeek": { "patch": { "operationId": "userRouter-changeFirstDayOfWeek", "tags": ["users"], "security": [ { "apikey": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "firstDayOfWeek": { "type": "number", "minimum": 0, "maximum": 6 }, "id": { "type": "string" } }, "required": ["firstDayOfWeek", "id"] } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "400": { "description": "Invalid input data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.BAD_REQUEST" } } } }, "401": { "description": "Authorization not provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.UNAUTHORIZED" } } } }, "403": { "description": "Insufficient access", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.FORBIDDEN" } } } }, "404": { "description": "Not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.NOT_FOUND" } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/error.INTERNAL_SERVER_ERROR" } } } } } } } }, "components": { "schemas": { "error.BAD_REQUEST": { "type": "object", "properties": { "message": { "type": "string", "description": "The error message", "example": "Invalid input data" }, "code": { "type": "string", "description": "The error code", "example": "BAD_REQUEST" }, "issues": { "description": "An array of issues that were responsible for the error", "example": [], "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } } }, "required": ["message", "code"], "additionalProperties": false, "title": "Invalid input data error (400)", "description": "The error information", "example": { "code": "BAD_REQUEST", "message": "Invalid input data", "issues": [] } }, "error.UNAUTHORIZED": { "type": "object", "properties": { "message": { "type": "string", "description": "The error message", "example": "Authorization not provided" }, "code": { "type": "string", "description": "The error code", "example": "UNAUTHORIZED" }, "issues": { "description": "An array of issues that were responsible for the error", "example": [], "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } } }, "required": ["message", "code"], "additionalProperties": false, "title": "Authorization not provided error (401)", "description": "The error information", "example": { "code": "UNAUTHORIZED", "message": "Authorization not provided", "issues": [] } }, "error.FORBIDDEN": { "type": "object", "properties": { "message": { "type": "string", "description": "The error message", "example": "Insufficient access" }, "code": { "type": "string", "description": "The error code", "example": "FORBIDDEN" }, "issues": { "description": "An array of issues that were responsible for the error", "example": [], "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } } }, "required": ["message", "code"], "additionalProperties": false, "title": "Insufficient access error (403)", "description": "The error information", "example": { "code": "FORBIDDEN", "message": "Insufficient access", "issues": [] } }, "error.NOT_FOUND": { "type": "object", "properties": { "message": { "type": "string", "description": "The error message", "example": "Not found" }, "code": { "type": "string", "description": "The error code", "example": "NOT_FOUND" }, "issues": { "description": "An array of issues that were responsible for the error", "example": [], "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } } }, "required": ["message", "code"], "additionalProperties": false, "title": "Not found error (404)", "description": "The error information", "example": { "code": "NOT_FOUND", "message": "Not found", "issues": [] } }, "error.INTERNAL_SERVER_ERROR": { "type": "object", "properties": { "message": { "type": "string", "description": "The error message", "example": "Internal server error" }, "code": { "type": "string", "description": "The error code", "example": "INTERNAL_SERVER_ERROR" }, "issues": { "description": "An array of issues that were responsible for the error", "example": [], "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"], "additionalProperties": false } } }, "required": ["message", "code"], "additionalProperties": false, "title": "Internal server error error (500)", "description": "The error information", "example": { "code": "INTERNAL_SERVER_ERROR", "message": "Internal server error", "issues": [] } } }, "securitySchemes": { "apikey": { "type": "apiKey", "name": "ApiKey", "description": "API key which can be obtained in the Homarr administration dashboard", "in": "header" } } } }