Files
homarr/apps/docs/static/api/open-api-schema.json
T

2266 lines
88 KiB
JSON

{
"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",
"minecraftServerStatus",
"networkControllerSummary",
"networkControllerStatus",
"rssFeed",
"bookmarks",
"indexerManager",
"healthMonitoring",
"releases",
"mediaReleases",
"dockerContainers",
"firewall",
"notifications",
"systemResources",
"coolify",
"systemDisks",
"timetable",
"immich-serverStats",
"immich-albumCarousel",
"paperlessNgx",
"tracearr",
"speedtestTracker",
"uptimeKuma",
"audioStats",
"umami",
"vpn",
"archiveTeamWarrior",
"ups",
"beszelSystemTable",
"beszelSystemGrid",
"beszelAlerts",
"beszelSystemStats",
"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": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{ "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" },
"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",
"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": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{ "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/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"
}
}
}
}