{ "openapi": "3.0.3", "info": { "title": "Kaneo API", "description": "Kaneo Project Management API - Manage projects, tasks, labels, and more", "version": "1.0.0" }, "servers": [ { "url": "https://cloud.kaneo.app/api", "description": "Kaneo API Server" } ], "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": "Bearer token authentication" }, "apiKeyCookie": { "type": "apiKey", "in": "cookie", "name": "apiKeyCookie", "description": "API Key authentication via cookie" } }, "schemas": { "Organization": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "logo": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "metadata": { "type": "string" }, "description": { "type": "string" } }, "required": [ "name", "slug", "createdAt" ] }, "Team": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "organizationId": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "name", "organizationId", "createdAt" ] } } }, "security": [ { "bearerAuth": [] } ], "paths": { "/config": { "get": { "operationId": "getConfig", "tags": [ "Config" ], "description": "Get application settings and configuration", "responses": { "200": { "description": "Application settings", "content": { "application/json": { "schema": { "type": "object", "properties": { "disableRegistration": { "type": "boolean", "nullable": true }, "isDemoMode": { "type": "boolean" }, "hasSmtp": { "type": "boolean" }, "hasGithubSignIn": { "type": "boolean", "nullable": true }, "hasGoogleSignIn": { "type": "boolean", "nullable": true }, "hasDiscordSignIn": { "type": "boolean", "nullable": true }, "hasCustomOAuth": { "type": "boolean", "nullable": true }, "hasGuestAccess": { "type": "boolean", "nullable": true } }, "required": [ "disableRegistration", "isDemoMode", "hasSmtp", "hasGithubSignIn", "hasGoogleSignIn", "hasDiscordSignIn", "hasCustomOAuth", "hasGuestAccess" ] } } } } }, "summary": "Get Config" } }, "/project": { "get": { "operationId": "listProjects", "tags": [ "Projects" ], "description": "Get all projects in a workspace", "responses": { "200": { "description": "List of projects with statistics", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } } }, "parameters": [ { "in": "query", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ], "summary": "List Projects" }, "post": { "operationId": "createProject", "tags": [ "Projects" ], "description": "Create a new project in a workspace", "responses": { "200": { "description": "Project created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "workspaceId": { "type": "string" }, "icon": { "type": "string" }, "slug": { "type": "string" } }, "required": [ "name", "workspaceId", "icon", "slug" ] } } } }, "summary": "Create Project" } }, "/project/{id}": { "get": { "operationId": "getProject", "tags": [ "Projects" ], "description": "Get a specific project by ID", "responses": { "200": { "description": "Project details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true }, { "in": "query", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Project" }, "put": { "operationId": "updateProject", "tags": [ "Projects" ], "description": "Update an existing project", "responses": { "200": { "description": "Project updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": "string" }, "isPublic": { "type": "boolean" } }, "required": [ "name", "icon", "slug", "description", "isPublic" ] } } } }, "summary": "Update Project" }, "delete": { "operationId": "deleteProject", "tags": [ "Projects" ], "description": "Delete a project by ID", "responses": { "200": { "description": "Project deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Project" } }, "/task/tasks/{projectId}": { "get": { "operationId": "listTasks", "tags": [ "Tasks" ], "description": "Get all tasks for a specific project", "responses": { "200": { "description": "Project with tasks organized by columns", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "List Tasks" } }, "/task/{projectId}": { "post": { "operationId": "createTask", "tags": [ "Tasks" ], "description": "Create a new task in a project", "responses": { "200": { "description": "Task created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "dueDate": { "type": "string" }, "priority": { "type": "string" }, "status": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "title", "description", "priority", "status" ] } } } }, "parameters": [ { "schema": { "type": "string" }, "in": "path", "name": "projectId", "required": true } ], "summary": "Create Task" } }, "/task/{id}": { "get": { "operationId": "getTask", "tags": [ "Tasks" ], "description": "Get a specific task by ID", "responses": { "200": { "description": "Task details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Get Task" }, "put": { "operationId": "updateTask", "tags": [ "Tasks" ], "description": "Update all fields of a task", "responses": { "200": { "description": "Task updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "dueDate": { "type": "string" }, "priority": { "type": "string" }, "status": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number" }, "userId": { "type": "string" } }, "required": [ "title", "description", "priority", "status", "projectId", "position" ] } } } }, "summary": "Update Task" }, "delete": { "operationId": "deleteTask", "tags": [ "Tasks" ], "description": "Delete a task by ID", "responses": { "200": { "description": "Task deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Task" } }, "/task/export/{projectId}": { "get": { "operationId": "exportTasks", "tags": [ "Tasks" ], "description": "Export all tasks from a project", "responses": { "200": { "description": "Exported tasks data", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "Export Tasks" } }, "/task/import/{projectId}": { "post": { "operationId": "importTasks", "tags": [ "Tasks" ], "description": "Import multiple tasks into a project", "responses": { "200": { "description": "Tasks imported successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "status": { "type": "string" }, "priority": { "type": "string" }, "dueDate": { "type": "string" }, "userId": { "type": "string", "nullable": true } }, "required": [ "title", "status" ] } } }, "required": [ "tasks" ] } } } }, "summary": "Import Tasks" } }, "/task/status/{id}": { "put": { "operationId": "updateTaskStatus", "tags": [ "Tasks" ], "description": "Update only the status of a task", "responses": { "200": { "description": "Task status updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string" } }, "required": [ "status" ] } } } }, "summary": "Update Task Status" } }, "/task/priority/{id}": { "put": { "operationId": "updateTaskPriority", "tags": [ "Tasks" ], "description": "Update only the priority of a task", "responses": { "200": { "description": "Task priority updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "priority": { "type": "string" } }, "required": [ "priority" ] } } } }, "summary": "Update Task Priority" } }, "/task/assignee/{id}": { "put": { "operationId": "updateTaskAssignee", "tags": [ "Tasks" ], "description": "Assign or unassign a task to a user", "responses": { "200": { "description": "Task assignee updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string" } }, "required": [ "userId" ] } } } }, "summary": "Update Task Assignee" } }, "/task/due-date/{id}": { "put": { "operationId": "updateTaskDueDate", "tags": [ "Tasks" ], "description": "Update only the due date of a task", "responses": { "200": { "description": "Task due date updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "dueDate": { "type": "string" } } } } } }, "summary": "Update Task Due Date" } }, "/task/title/{id}": { "put": { "operationId": "updateTaskTitle", "tags": [ "Tasks" ], "description": "Update only the title of a task", "responses": { "200": { "description": "Task title updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" } }, "required": [ "title" ] } } } }, "summary": "Update Task Title" } }, "/task/description/{id}": { "put": { "operationId": "updateTaskDescription", "tags": [ "Tasks" ], "description": "Update only the description of a task", "responses": { "200": { "description": "Task description updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "description": { "type": "string" } }, "required": [ "description" ] } } } }, "summary": "Update Task Description" } }, "/column/{projectId}": { "get": { "operationId": "getColumns", "tags": [ "Columns" ], "description": "Get all columns for a project", "responses": { "200": { "description": "List of columns ordered by position", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Columns" }, "post": { "operationId": "createColumn", "tags": [ "Columns" ], "description": "Create a new column in a project", "responses": { "200": { "description": "Column created successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "string" }, "color": { "type": "string" }, "isFinal": { "type": "boolean" } }, "required": [ "name" ] } } } }, "summary": "Create Column" } }, "/column/reorder/{projectId}": { "put": { "operationId": "reorderColumns", "tags": [ "Columns" ], "description": "Reorder columns in a project", "responses": { "200": { "description": "Columns reordered successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "columns": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "position": { "type": "number" } }, "required": [ "id", "position" ] } } }, "required": [ "columns" ] } } } }, "summary": "Reorder Columns" } }, "/column/{id}": { "put": { "operationId": "updateColumn", "tags": [ "Columns" ], "description": "Update a column", "responses": { "200": { "description": "Column updated successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "color": { "type": "string", "nullable": true }, "isFinal": { "type": "boolean" } } } } } }, "summary": "Update Column" }, "delete": { "operationId": "deleteColumn", "tags": [ "Columns" ], "description": "Delete a column", "responses": { "200": { "description": "Column deleted successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Column" } }, "/activity/{taskId}": { "get": { "operationId": "getActivities", "tags": [ "Activity" ], "description": "Get all activities for a specific task", "responses": { "200": { "description": "List of activities for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Activities" } }, "/activity/create": { "post": { "operationId": "createActivity", "tags": [ "Activity" ], "description": "Create a new activity (system-generated event)", "responses": { "200": { "description": "Activity created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "userId": { "type": "string" }, "message": { "type": "string" }, "type": { "type": "string" } }, "required": [ "taskId", "userId", "message", "type" ] } } } }, "summary": "Create Activity" } }, "/activity/comment": { "post": { "operationId": "createComment", "tags": [ "Activity" ], "description": "Create a new comment on a task", "responses": { "200": { "description": "Comment created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "comment": { "type": "string" } }, "required": [ "taskId", "comment" ] } } } }, "summary": "Create Comment" }, "put": { "operationId": "updateComment", "tags": [ "Activity" ], "description": "Update an existing comment", "responses": { "200": { "description": "Comment updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "activityId": { "type": "string" }, "comment": { "type": "string" } }, "required": [ "activityId", "comment" ] } } } }, "summary": "Update Comment" }, "delete": { "operationId": "deleteComment", "tags": [ "Activity" ], "description": "Delete a comment", "responses": { "200": { "description": "Comment deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "activityId": { "type": "string" } }, "required": [ "activityId" ] } } } }, "summary": "Delete Comment" } }, "/time-entry/task/{taskId}": { "get": { "operationId": "getTaskTimeEntries", "tags": [ "Time Entries" ], "description": "Get all time entries for a specific task", "responses": { "200": { "description": "List of time entries for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "startTime": {}, "endTime": {}, "duration": { "type": "number", "nullable": true }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Task Time Entries" } }, "/time-entry/{id}": { "get": { "operationId": "getTimeEntry", "tags": [ "Time Entries" ], "description": "Get a specific time entry by ID", "responses": { "200": { "description": "Time entry details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "startTime": {}, "endTime": {}, "duration": { "type": "number", "nullable": true }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Get Time Entry" }, "put": { "operationId": "updateTimeEntry", "tags": [ "Time Entries" ], "description": "Update an existing time entry", "responses": { "200": { "description": "Time entry updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "startTime": {}, "endTime": {}, "duration": { "type": "number", "nullable": true }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "startTime": { "type": "string" }, "endTime": { "type": "string" }, "description": { "type": "string" } }, "required": [ "startTime" ] } } } }, "summary": "Update Time Entry" } }, "/time-entry": { "post": { "operationId": "createTimeEntry", "tags": [ "Time Entries" ], "description": "Create a new time entry for a task", "responses": { "200": { "description": "Time entry created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "userId": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "startTime": {}, "endTime": {}, "duration": { "type": "number", "nullable": true }, "createdAt": {} }, "required": [ "id", "taskId", "userId", "description", "startTime", "duration", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "taskId": { "type": "string" }, "startTime": { "type": "string" }, "endTime": { "type": "string" }, "description": { "type": "string" } }, "required": [ "taskId", "startTime" ] } } } }, "summary": "Create Time Entry" } }, "/label/task/{taskId}": { "get": { "operationId": "getTaskLabels", "tags": [ "Labels" ], "description": "Get all labels assigned to a specific task", "responses": { "200": { "description": "List of labels for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Task Labels" } }, "/label/workspace/{workspaceId}": { "get": { "operationId": "getWorkspaceLabels", "tags": [ "Labels" ], "description": "Get all labels for a specific workspace", "responses": { "200": { "description": "List of labels in the workspace", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } } }, "parameters": [ { "in": "path", "name": "workspaceId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Workspace Labels" } }, "/label": { "post": { "operationId": "createLabel", "tags": [ "Labels" ], "description": "Create a new label in a workspace", "responses": { "200": { "description": "Label created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "color": { "type": "string" }, "workspaceId": { "type": "string" }, "taskId": { "type": "string" } }, "required": [ "name", "color", "workspaceId" ] } } } }, "summary": "Create Label" } }, "/label/{id}": { "get": { "operationId": "getLabel", "tags": [ "Labels" ], "description": "Get a specific label by ID", "responses": { "200": { "description": "Label details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Get Label" }, "put": { "operationId": "updateLabel", "tags": [ "Labels" ], "description": "Update an existing label", "responses": { "200": { "description": "Label updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "color": { "type": "string" } }, "required": [ "name", "color" ] } } } }, "summary": "Update Label" }, "delete": { "operationId": "deleteLabel", "tags": [ "Labels" ], "description": "Delete a label by ID", "responses": { "200": { "description": "Label deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "createdAt": {}, "taskId": { "type": "string", "nullable": true }, "workspaceId": { "type": "string", "nullable": true } }, "required": [ "id", "name", "color", "createdAt", "taskId", "workspaceId" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Label" } }, "/notification": { "get": { "operationId": "listNotifications", "tags": [ "Notifications" ], "description": "Get all notifications for the current user", "responses": { "200": { "description": "List of notifications", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "type": "string", "nullable": true }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } } }, "summary": "List Notifications" }, "post": { "operationId": "createNotification", "tags": [ "Notifications" ], "description": "Create a new notification for a user", "responses": { "200": { "description": "Notification created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "type": "string", "nullable": true }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "userId": { "type": "string" }, "title": { "type": "string" }, "message": { "type": "string" }, "type": { "type": "string" }, "relatedEntityId": { "type": "string" }, "relatedEntityType": { "type": "string" } }, "required": [ "userId", "title", "message", "type" ] } } } }, "summary": "Create Notification" } }, "/notification/{id}/read": { "patch": { "operationId": "markNotificationAsRead", "tags": [ "Notifications" ], "description": "Mark a specific notification as read", "responses": { "200": { "description": "Notification marked as read", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "title": { "type": "string" }, "content": { "type": "string", "nullable": true }, "type": { "enum": [ "info", "task_created", "workspace_created", "task_status_changed", "task_assignee_changed", "time_entry_created" ] }, "isRead": { "type": "boolean" }, "resourceId": { "type": "string" }, "resourceType": { "enum": [ "task", "workspace" ] }, "createdAt": {} }, "required": [ "id", "userId", "title", "content", "type", "createdAt" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Mark Notification As Read" } }, "/notification/read-all": { "patch": { "operationId": "markAllNotificationsAsRead", "tags": [ "Notifications" ], "description": "Mark all notifications as read for the current user", "responses": { "200": { "description": "All notifications marked as read", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "count": { "type": "number" } }, "required": [ "success" ] } } } } }, "summary": "Mark All Notifications As Read" } }, "/notification/clear-all": { "delete": { "operationId": "clearAllNotifications", "tags": [ "Notifications" ], "description": "Clear all notifications for the current user", "responses": { "200": { "description": "All notifications cleared", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "count": { "type": "number" } }, "required": [ "success" ] } } } } }, "summary": "Clear All Notifications" } }, "/search": { "get": { "operationId": "globalSearch", "tags": [ "Search" ], "description": "Search across tasks, projects, workspaces, comments, and activities", "responses": { "200": { "description": "Search results", "content": { "application/json": { "schema": { "type": "object", "properties": { "tasks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "position": { "type": "number", "nullable": true }, "number": { "type": "number", "nullable": true }, "userId": { "type": "string", "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "status": { "type": "string" }, "priority": { "enum": [ "no-priority", "low", "medium", "high", "urgent" ] }, "dueDate": {}, "createdAt": {} }, "required": [ "id", "projectId", "position", "number", "userId", "title", "description", "status", "priority", "createdAt" ] } }, "projects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workspaceId": { "type": "string" }, "slug": { "type": "string" }, "icon": { "type": "string", "nullable": true }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": {}, "isPublic": { "type": "boolean", "nullable": true } }, "required": [ "id", "workspaceId", "slug", "icon", "name", "description", "createdAt", "isPublic" ] } }, "workspaces": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "logo": { "type": "string", "nullable": true }, "metadata": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "createdAt": {} }, "required": [ "id", "name", "slug", "logo", "metadata", "description", "createdAt" ] } }, "comments": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } }, "activities": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "type": { "enum": [ "comment", "task", "status_changed", "priority_changed", "unassigned", "assignee_changed", "due_date_changed", "title_changed", "description_changed", "create" ] }, "createdAt": {}, "userId": { "type": "string", "nullable": true }, "content": { "type": "string", "nullable": true }, "externalUserName": { "type": "string", "nullable": true }, "externalUserAvatar": { "type": "string", "nullable": true }, "externalSource": { "type": "string", "nullable": true }, "externalUrl": { "type": "string", "nullable": true } }, "required": [ "id", "taskId", "type", "createdAt", "userId", "content", "externalUserName", "externalUserAvatar", "externalSource", "externalUrl" ] } } } } } } } }, "parameters": [ { "in": "query", "name": "q", "schema": { "type": "string", "minLength": 1 }, "required": true }, { "in": "query", "name": "type", "schema": { "enum": [ "all", "tasks", "projects", "workspaces", "comments", "activities" ], "default": "all" } }, { "in": "query", "name": "workspaceId", "schema": { "type": "string" } }, { "in": "query", "name": "projectId", "schema": { "type": "string" } }, { "in": "query", "name": "limit", "schema": { "type": "string", "minimum": 1, "maximum": 50, "default": "20" } }, { "in": "query", "name": "userEmail", "schema": { "type": "string", "format": "email" } } ], "summary": "Global Search" } }, "/github-integration/app-info": { "get": { "operationId": "getGitHubAppInfo", "tags": [ "GitHub" ], "description": "Get GitHub app configuration information", "responses": { "200": { "description": "GitHub app information", "content": { "application/json": { "schema": { "type": "object", "properties": { "appName": { "type": "string", "nullable": true } }, "required": [ "appName" ] } } } } }, "summary": "Get Git Hub App Info" } }, "/github-integration/repositories": { "get": { "operationId": "listGitHubRepositories", "tags": [ "GitHub" ], "description": "List all accessible GitHub repositories", "responses": { "200": { "description": "List of repositories", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "name": { "type": "string" }, "full_name": { "type": "string" }, "owner": { "type": "object", "properties": { "login": { "type": "string" } }, "required": [ "login" ] }, "private": { "type": "boolean" }, "html_url": { "type": "string" } }, "required": [ "id", "name", "full_name", "owner", "private", "html_url" ] } } } } } }, "summary": "List Git Hub Repositories" } }, "/github-integration/verify": { "post": { "operationId": "verifyGitHubInstallation", "tags": [ "GitHub" ], "description": "Verify GitHub app installation for a repository", "responses": { "200": { "description": "Verification result", "content": { "application/json": { "schema": { "type": "object", "properties": { "installed": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "installed" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "repositoryOwner": { "type": "string", "minLength": 1 }, "repositoryName": { "type": "string", "minLength": 1 } }, "required": [ "repositoryOwner", "repositoryName" ] } } } }, "summary": "Verify Git Hub Installation" } }, "/github-integration/project/{projectId}": { "get": { "operationId": "getGitHubIntegration", "tags": [ "GitHub" ], "description": "Get GitHub integration for a project", "responses": { "200": { "description": "GitHub integration details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "type": "number", "nullable": true }, "isActive": { "type": "boolean", "nullable": true }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Git Hub Integration" }, "post": { "operationId": "createGitHubIntegration", "tags": [ "GitHub" ], "description": "Create a new GitHub integration for a project", "responses": { "200": { "description": "Integration created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "type": "number", "nullable": true }, "isActive": { "type": "boolean", "nullable": true }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "repositoryOwner": { "type": "string", "minLength": 1 }, "repositoryName": { "type": "string", "minLength": 1 } }, "required": [ "repositoryOwner", "repositoryName" ] } } } }, "summary": "Create Git Hub Integration" }, "patch": { "operationId": "updateGitHubIntegration", "tags": [ "GitHub" ], "description": "Update GitHub integration settings", "responses": { "200": { "description": "Integration updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "type": "number", "nullable": true }, "isActive": { "type": "boolean", "nullable": true }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } }, "404": { "description": "Integration not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" } }, "required": [ "error" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "isActive": { "type": "boolean" } } } } } }, "summary": "Update Git Hub Integration" }, "delete": { "operationId": "deleteGitHubIntegration", "tags": [ "GitHub" ], "description": "Delete GitHub integration for a project", "responses": { "200": { "description": "Integration deleted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "projectId": { "type": "string" }, "repositoryOwner": { "type": "string" }, "repositoryName": { "type": "string" }, "installationId": { "type": "number", "nullable": true }, "isActive": { "type": "boolean", "nullable": true }, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "projectId", "repositoryOwner", "repositoryName", "installationId", "isActive", "createdAt", "updatedAt" ] } } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Git Hub Integration" } }, "/github-integration/import-issues": { "post": { "operationId": "importGitHubIssues", "tags": [ "GitHub" ], "description": "Import GitHub issues as tasks", "responses": { "200": { "description": "Issues imported successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "imported": { "type": "number" }, "skipped": { "type": "number" }, "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "imported", "skipped" ] } } } } }, "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "projectId": { "type": "string" } }, "required": [ "projectId" ] } } } }, "summary": "Import Git Hub Issues" } }, "/external-link/task/{taskId}": { "get": { "operationId": "getExternalLinksByTask", "tags": [ "External Links" ], "description": "Get all external links for a task", "responses": { "200": { "description": "External links for the task", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "taskId": { "type": "string" }, "integrationId": { "type": "string" }, "resourceType": { "type": "string" }, "externalId": { "type": "string" }, "url": { "type": "string" }, "title": { "type": "string", "nullable": true }, "metadata": {}, "createdAt": {}, "updatedAt": {} }, "required": [ "id", "taskId", "integrationId", "resourceType", "externalId", "url", "title", "metadata", "createdAt", "updatedAt" ] } } } } } }, "parameters": [ { "in": "path", "name": "taskId", "schema": { "type": "string" }, "required": true } ], "summary": "Get External Links By Task" } }, "/workflow-rule/{projectId}": { "get": { "operationId": "getWorkflowRules", "tags": [ "Workflow Rules" ], "description": "Get all workflow rules for a project", "responses": { "200": { "description": "List of workflow rules", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "summary": "Get Workflow Rules" }, "put": { "operationId": "upsertWorkflowRule", "tags": [ "Workflow Rules" ], "description": "Create or update a workflow rule", "responses": { "200": { "description": "Workflow rule upserted successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "projectId", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "integrationType": { "type": "string" }, "eventType": { "type": "string" }, "columnId": { "type": "string" } }, "required": [ "integrationType", "eventType", "columnId" ] } } } }, "summary": "Upsert Workflow Rule" } }, "/workflow-rule/{id}": { "delete": { "operationId": "deleteWorkflowRule", "tags": [ "Workflow Rules" ], "description": "Delete a workflow rule", "responses": { "200": { "description": "Workflow rule deleted successfully", "content": { "application/json": { "schema": {} } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Delete Workflow Rule" } }, "/invitation/pending": { "get": { "operationId": "getUserPendingInvitations", "tags": [ "Invitations" ], "description": "Get all pending invitations for the current user", "responses": { "200": { "description": "List of pending invitations", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "workspaceId": { "type": "string" }, "workspaceName": { "type": "string" }, "inviterName": { "type": "string" }, "expiresAt": { "type": "string" }, "createdAt": { "type": "string" }, "status": { "type": "string" } }, "required": [ "id", "email", "workspaceId", "workspaceName", "inviterName", "expiresAt", "createdAt", "status" ] } } } } } }, "summary": "Get User Pending Invitations" } }, "/invitation/{id}": { "get": { "operationId": "getInvitationDetails", "tags": [ "Invitations" ], "description": "Get details of a specific invitation by ID", "responses": { "200": { "description": "Invitation details", "content": { "application/json": { "schema": { "type": "object", "properties": { "valid": { "type": "boolean" }, "invitation": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "workspaceName": { "type": "string" }, "inviterName": { "type": "string" }, "expiresAt": { "type": "string" }, "status": { "type": "string" }, "expired": { "type": "boolean" } }, "required": [ "id", "email", "workspaceName", "inviterName", "expiresAt", "status", "expired" ] }, "error": { "type": "string" } }, "required": [ "valid" ] } } } } }, "parameters": [ { "in": "path", "name": "id", "schema": { "type": "string" }, "required": true } ], "summary": "Get Invitation Details" } }, "/auth/organization/create": { "post": { "tags": [ "Organization Management" ], "description": "Create an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the organization" }, "slug": { "type": "string", "description": "The slug of the organization" }, "userId": { "type": "string", "description": "The user id of the organization creator. If not provided, the current user will be used. Should only be used by admins or when called by the server. server-only. Eg: \"user-id\"", "nullable": true }, "logo": { "type": "string", "description": "The logo of the organization", "nullable": true }, "metadata": { "type": "string", "description": "The metadata of the organization", "nullable": true }, "keepCurrentActiveOrganization": { "type": "boolean", "description": "Whether to keep the current active organization active after creating a new one. Eg: true", "nullable": true }, "description": { "type": "string", "nullable": true } }, "required": [ "name", "slug" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "description": "The organization that was created", "$ref": "#/components/schemas/Organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "createOrganization", "summary": "Create Organization" } }, "/auth/organization/update": { "post": { "tags": [ "Organization Management" ], "description": "Update an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "description": { "type": "string", "nullable": true }, "name": { "type": "string", "description": "The name of the organization", "nullable": true }, "slug": { "type": "string", "description": "The slug of the organization", "nullable": true }, "logo": { "type": "string", "description": "The logo of the organization", "nullable": true }, "metadata": { "type": "string", "description": "The metadata of the organization", "nullable": true } } }, "organizationId": { "type": "string", "description": "The organization ID. Eg: \"org-id\"", "nullable": true } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "description": "The updated organization", "$ref": "#/components/schemas/Organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "updateOrganization", "summary": "Update Organization" } }, "/auth/organization/delete": { "post": { "tags": [ "Organization Management" ], "description": "Delete an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "The organization id to delete" } }, "required": [ "organizationId" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "string", "description": "The organization id that was deleted" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "deleteOrganization", "summary": "Delete Organization" } }, "/auth/organization/set-active": { "post": { "tags": [ "Organization Management" ], "description": "Set the active organization", "operationId": "setOrganizationActive", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "organizationId": { "type": "string", "nullable": true }, "organizationSlug": { "type": "string", "description": "The organization slug to set as active. It can be null to unset the active organization if organizationId is not provided. Eg: \"org-slug\"", "nullable": true } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "description": "The organization", "$ref": "#/components/schemas/Organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "summary": "Set Organization Active" } }, "/auth/organization/get-full-organization": { "get": { "tags": [ "Organization Management" ], "description": "Get the full organization", "operationId": "getOrganizationFullOrganization", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "description": "The organization", "$ref": "#/components/schemas/Organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "summary": "Get Organization Full Organization" } }, "/auth/organization/list": { "get": { "tags": [ "Organization Management" ], "description": "List all organizations", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Organization" } } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganization", "summary": "List Organization" } }, "/auth/organization/invite-member": { "post": { "tags": [ "Organization Management" ], "description": "Create an invitation to an organization", "operationId": "inviteOrganizationMember", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "The email address of the user to invite" }, "role": { "type": "string", "description": "The role(s) to assign to the user. It can be `admin`, `member`, owner. Eg: \"member\"" }, "organizationId": { "type": "string", "description": "The organization ID to invite the user to", "nullable": true }, "resend": { "type": "boolean", "description": "Resend the invitation email, if the user is already invited. Eg: true", "nullable": true }, "teamId": { "type": "string" } }, "required": [ "email", "role", "teamId" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "role": { "type": "string" }, "organizationId": { "type": "string" }, "inviterId": { "type": "string" }, "status": { "type": "string" }, "expiresAt": { "type": "string" }, "createdAt": { "type": "string" } }, "required": [ "id", "email", "role", "organizationId", "inviterId", "status", "expiresAt", "createdAt" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "summary": "Invite Organization Member" } }, "/auth/organization/cancel-invitation": { "post": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "invitationId": { "type": "string", "description": "The ID of the invitation to cancel" } }, "required": [ "invitationId" ] } } } }, "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "cancelOrganizationInvitation", "summary": "Cancel Organization Invitation" } }, "/auth/organization/accept-invitation": { "post": { "tags": [ "Organization Management" ], "description": "Accept an invitation to an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "invitationId": { "type": "string", "description": "The ID of the invitation to accept" } }, "required": [ "invitationId" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "invitation": { "type": "object" }, "member": { "type": "object" } } } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "acceptOrganizationInvitation", "summary": "Accept Organization Invitation" } }, "/auth/organization/get-invitation": { "get": { "tags": [ "Organization Management" ], "description": "Get an invitation by ID", "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "query", "schema": { "type": "string", "description": "The ID of the invitation to get" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "role": { "type": "string" }, "organizationId": { "type": "string" }, "inviterId": { "type": "string" }, "status": { "type": "string" }, "expiresAt": { "type": "string" }, "organizationName": { "type": "string" }, "organizationSlug": { "type": "string" }, "inviterEmail": { "type": "string" } }, "required": [ "id", "email", "role", "organizationId", "inviterId", "status", "expiresAt", "organizationName", "organizationSlug", "inviterEmail" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "getOrganizationInvitation", "summary": "Get Organization Invitation" } }, "/auth/organization/reject-invitation": { "post": { "tags": [ "Organization Management" ], "description": "Reject an invitation to an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "invitationId": { "type": "string", "description": "The ID of the invitation to reject" } }, "required": [ "invitationId" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "invitation": { "type": "object" }, "member": { "type": "object", "nullable": true } } } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "rejectOrganizationInvitation", "summary": "Reject Organization Invitation" } }, "/auth/organization/list-invitations": { "get": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationInvitations", "summary": "List Organization Invitations" } }, "/auth/organization/get-active-member": { "get": { "tags": [ "Organization Management" ], "description": "Get the member details of the active organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "organizationId": { "type": "string" }, "role": { "type": "string" } }, "required": [ "id", "userId", "organizationId", "role" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "getOrganizationActiveMember", "summary": "Get Organization Active Member" } }, "/auth/organization/check-slug": { "post": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "slug": { "type": "string", "description": "The organization slug to check. Eg: \"my-org\"" } }, "required": [ "slug" ] } } } }, "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "checkOrganizationSlug", "summary": "Check Organization Slug" } }, "/auth/organization/remove-member": { "post": { "tags": [ "Organization Management" ], "description": "Remove a member from an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "memberIdOrEmail": { "type": "string", "description": "The ID or email of the member to remove" }, "organizationId": { "type": "string", "description": "The ID of the organization to remove the member from. If not provided, the active organization will be used. Eg: \"org-id\"", "nullable": true } }, "required": [ "memberIdOrEmail" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "member": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "organizationId": { "type": "string" }, "role": { "type": "string" } }, "required": [ "id", "userId", "organizationId", "role" ] } }, "required": [ "member" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "removeOrganizationMember", "summary": "Remove Organization Member" } }, "/auth/organization/update-member-role": { "post": { "tags": [ "Organization Management" ], "description": "Update the role of a member in an organization", "operationId": "updateOrganizationMemberRole", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "role": { "type": "string", "description": "The new role to be applied. This can be a string or array of strings representing the roles. Eg: [\"admin\", \"sale\"]" }, "memberId": { "type": "string", "description": "The member id to apply the role update to. Eg: \"member-id\"" }, "organizationId": { "type": "string", "description": "An optional organization ID which the member is a part of to apply the role update. If not provided, you must provide session headers to get the active organization. Eg: \"organization-id\"", "nullable": true } }, "required": [ "role", "memberId" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "member": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "organizationId": { "type": "string" }, "role": { "type": "string" } }, "required": [ "id", "userId", "organizationId", "role" ] } }, "required": [ "member" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "summary": "Update Organization Member Role" } }, "/auth/organization/leave": { "post": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "organizationId": { "type": "string", "description": "The organization Id for the member to leave. Eg: \"organization-id\"" } }, "required": [ "organizationId" ] } } } }, "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "leaveOrganization", "summary": "Leave Organization" } }, "/auth/organization/list-user-invitations": { "get": { "tags": [ "Organization Management" ], "description": "List all invitations a user has received", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "role": { "type": "string" }, "organizationId": { "type": "string" }, "organizationName": { "type": "string" }, "inviterId": { "type": "string", "description": "The ID of the user who created the invitation" }, "teamId": { "type": "string", "description": "The ID of the team associated with the invitation", "nullable": true }, "status": { "type": "string" }, "expiresAt": { "type": "string" }, "createdAt": { "type": "string" } }, "required": [ "id", "email", "role", "organizationId", "organizationName", "inviterId", "status", "expiresAt", "createdAt" ] } } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationUserInvitations", "summary": "List Organization User Invitations" } }, "/auth/organization/list-members": { "get": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationMembers", "summary": "List Organization Members" } }, "/auth/organization/get-active-member-role": { "get": { "tags": [ "Organization Management" ], "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "getOrganizationActiveMemberRole", "summary": "Get Organization Active Member Role" } }, "/auth/organization/create-team": { "post": { "tags": [ "Organization Management" ], "description": "Create a new team within an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the team. Eg: \"my-team\"" }, "organizationId": { "type": "string", "description": "The organization ID which the team will be created in. Defaults to the active organization. Eg: \"organization-id\"", "nullable": true } }, "required": [ "name" ] } } } }, "responses": { "200": { "description": "Team created successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the created team" }, "name": { "type": "string", "description": "Name of the team" }, "organizationId": { "type": "string", "description": "ID of the organization the team belongs to" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was last updated" } }, "required": [ "id", "name", "organizationId", "createdAt", "updatedAt" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "createOrganizationTeam", "summary": "Create Organization Team" } }, "/auth/organization/list-teams": { "get": { "tags": [ "Organization Management" ], "description": "List all teams in an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Teams retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the team" }, "name": { "type": "string", "description": "Name of the team" }, "organizationId": { "type": "string", "description": "ID of the organization the team belongs to" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was last updated" } }, "required": [ "id", "name", "organizationId", "createdAt", "updatedAt" ] }, "description": "Array of team objects within the organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationTeams", "summary": "List Organization Teams" } }, "/auth/organization/remove-team": { "post": { "tags": [ "Organization Management" ], "description": "Remove a team from an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string", "description": "The team ID of the team to remove. Eg: \"team-id\"" }, "organizationId": { "type": "string", "description": "The organization ID which the team falls under. If not provided, it will default to the user's active organization. Eg: \"organization-id\"", "nullable": true } }, "required": [ "teamId" ] } } } }, "responses": { "200": { "description": "Team removed successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Confirmation message indicating successful removal", "enum": [ "Team removed successfully." ] } }, "required": [ "message" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "removeOrganizationTeam", "summary": "Remove Organization Team" } }, "/auth/organization/update-team": { "post": { "tags": [ "Organization Management" ], "description": "Update an existing team in an organization", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string", "description": "The ID of the team to be updated. Eg: \"team-id\"" }, "data": { "type": "object", "properties": { "id": { "type": "string", "default": "vrJTKvZCXxj4Lop9wiAMXpztxBHNJnZF", "nullable": true }, "name": { "type": "string", "nullable": true }, "organizationId": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "nullable": true }, "updatedAt": { "type": "string", "nullable": true } } } }, "required": [ "teamId", "data" ] } } } }, "responses": { "200": { "description": "Team updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the updated team" }, "name": { "type": "string", "description": "Updated name of the team" }, "organizationId": { "type": "string", "description": "ID of the organization the team belongs to" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team was last updated" } }, "required": [ "id", "name", "organizationId", "createdAt", "updatedAt" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "updateOrganizationTeam", "summary": "Update Organization Team" } }, "/auth/organization/set-active-team": { "post": { "tags": [ "Organization Management" ], "description": "Set the active team", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string", "nullable": true } } } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "description": "The team", "$ref": "#/components/schemas/Team" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "setOrganizationActiveTeam", "summary": "Set Organization Active Team" } }, "/auth/organization/list-user-teams": { "get": { "tags": [ "Organization Management" ], "description": "List all teams that the current user is a part of.", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Teams retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "description": "The team", "$ref": "#/components/schemas/Team" }, "description": "Array of team objects within the organization" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationUserTeams", "summary": "List Organization User Teams" } }, "/auth/organization/list-team-members": { "get": { "tags": [ "Organization Management" ], "description": "List the members of the given team.", "security": [ { "bearerAuth": [] } ], "parameters": [], "responses": { "200": { "description": "Teams retrieved successfully", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "description": "The team member", "properties": { "id": { "type": "string", "description": "Unique identifier of the team member" }, "userId": { "type": "string", "description": "The user ID of the team member" }, "teamId": { "type": "string", "description": "The team ID of the team the team member is in" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team member was created" } }, "required": [ "id", "userId", "teamId", "createdAt" ] }, "description": "Array of team member objects within the team" } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "listOrganizationTeamMembers", "summary": "List Organization Team Members" } }, "/auth/organization/add-team-member": { "post": { "tags": [ "Organization Management" ], "description": "The newly created member", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string", "description": "The team the user should be a member of." }, "userId": { "type": "string", "description": "The user Id which represents the user to be added as a member." } }, "required": [ "teamId", "userId" ] } } } }, "responses": { "200": { "description": "Team member created successfully", "content": { "application/json": { "schema": { "type": "object", "description": "The team member", "properties": { "id": { "type": "string", "description": "Unique identifier of the team member" }, "userId": { "type": "string", "description": "The user ID of the team member" }, "teamId": { "type": "string", "description": "The team ID of the team the team member is in" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the team member was created" } }, "required": [ "id", "userId", "teamId", "createdAt" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "addOrganizationTeamMember", "summary": "Add Organization Team Member" } }, "/auth/organization/remove-team-member": { "post": { "tags": [ "Organization Management" ], "description": "Remove a member from a team", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "teamId": { "type": "string", "description": "The team the user should be removed from." }, "userId": { "type": "string", "description": "The user which should be removed from the team." } }, "required": [ "teamId", "userId" ] } } } }, "responses": { "200": { "description": "Team member removed successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "Confirmation message indicating successful removal", "enum": [ "Team member removed successfully." ] } }, "required": [ "message" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "removeOrganizationTeamMember", "summary": "Remove Organization Team Member" } }, "/auth/organization/has-permission": { "post": { "tags": [ "Organization Management" ], "description": "Check if the user has permission", "security": [ { "bearerAuth": [] } ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "permission": { "type": "object", "description": "The permission to check", "deprecated": true }, "permissions": { "type": "object", "description": "The permission to check" } }, "required": [ "permissions" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "success": { "type": "boolean" } }, "required": [ "success" ] } } } }, "400": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Bad Request. Usually due to missing parameters, or invalid parameters." }, "401": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ] } } }, "description": "Unauthorized. Due to missing or invalid authentication." }, "403": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Forbidden. You do not have permission to access this resource or to perform this action." }, "404": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Not Found. The requested resource was not found." }, "429": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Too Many Requests. You have exceeded the rate limit. Try again later." }, "500": { "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } }, "description": "Internal Server Error. This is a problem with the server that you cannot fix." } }, "operationId": "hasOrganizationPermission", "summary": "Check Organization Permission" } } }, "tags": [ { "name": "Organization Management" } ] }