basePath: /api/v1 consumes: - application/json definitions: Block: description: Block is the basic data unit properties: createAt: description: The creation time format: int64 type: integer x-go-name: CreateAt createdBy: description: The id for user who created this block type: string x-go-name: CreatedBy deleteAt: description: The deleted time. Set to indicate this block is deleted format: int64 type: integer x-go-name: DeleteAt fields: additionalProperties: type: object description: The block fields type: object x-go-name: Fields id: description: The id for this block type: string x-go-name: ID modifiedBy: description: The id for user who last modified this block type: string x-go-name: ModifiedBy parentId: description: The id for this block's parent block. Empty for root blocks type: string x-go-name: ParentID rootId: description: The id for this block's root block type: string x-go-name: RootID schema: description: The schema version of this block format: int64 type: integer x-go-name: Schema title: description: The display title type: string x-go-name: Title type: description: The block type type: string x-go-name: Type updateAt: description: The last modified time format: int64 type: integer x-go-name: UpdateAt required: - id - rootId - createdBy - modifiedBy - schema - type - createAt - updateAt type: object x-go-package: github.com/mattermost/focalboard/server/model BlockPatch: description: BlockPatch is a patch for modify blocks properties: deletedFields: description: The block removed fields items: type: string type: array x-go-name: DeletedFields parentId: description: The id for this block's parent block. Empty for root blocks type: string x-go-name: ParentID rootId: description: The id for this block's root block type: string x-go-name: RootID schema: description: The schema version of this block format: int64 type: integer x-go-name: Schema title: description: The display title type: string x-go-name: Title type: description: The block type type: string x-go-name: Type updatedFields: additionalProperties: type: object description: The block updated fields type: object x-go-name: UpdatedFields type: object x-go-package: github.com/mattermost/focalboard/server/model ChangePasswordRequest: description: ChangePasswordRequest is a user password change request properties: newPassword: description: New password type: string x-go-name: NewPassword oldPassword: description: Old password type: string x-go-name: OldPassword required: - oldPassword - newPassword type: object x-go-package: github.com/mattermost/focalboard/server/api ErrorResponse: description: ErrorResponse is an error response properties: error: description: The error message type: string x-go-name: Error errorCode: description: The error code format: int64 type: integer x-go-name: ErrorCode type: object x-go-package: github.com/mattermost/focalboard/server/model FileUploadResponse: description: FileUploadResponse is the response to a file upload properties: fileId: description: The FileID to retrieve the uploaded file type: string x-go-name: FileID required: - fileId type: object x-go-package: github.com/mattermost/focalboard/server/api LoginRequest: description: LoginRequest is a login request properties: email: description: If specified, login using email type: string x-go-name: Email password: description: Password type: string x-go-name: Password type: description: Type of login, currently must be set to "normal" type: string x-go-name: Type username: description: If specified, login using username type: string x-go-name: Username required: - type - password type: object x-go-package: github.com/mattermost/focalboard/server/api LoginResponse: description: LoginResponse is a login response properties: token: description: Session token type: string x-go-name: Token required: - token type: object x-go-package: github.com/mattermost/focalboard/server/api RegisterRequest: description: RegisterRequest is a user registration request properties: email: description: User's email type: string x-go-name: Email password: description: Password type: string x-go-name: Password token: description: Registration authorization token type: string x-go-name: Token username: description: User name type: string x-go-name: Username required: - username - email - password - token type: object x-go-package: github.com/mattermost/focalboard/server/api Sharing: description: Sharing is sharing information for a root block properties: enabled: description: Is sharing enabled type: boolean x-go-name: Enabled id: description: ID of the root block type: string x-go-name: ID modifiedBy: description: ID of the user who last modified this type: string x-go-name: ModifiedBy token: description: Access token type: string x-go-name: Token update_at: description: Updated time format: int64 type: integer x-go-name: UpdateAt required: - id - enabled - token - modifiedBy - update_at type: object x-go-package: github.com/mattermost/focalboard/server/model User: description: User is a user properties: create_at: description: Created time format: int64 type: integer x-go-name: CreateAt delete_at: description: Deleted time, set to indicate user is deleted format: int64 type: integer x-go-name: DeleteAt email: description: The user's email type: string x-go-name: Email id: description: The user ID type: string x-go-name: ID props: additionalProperties: type: object description: User settings type: object x-go-name: Props update_at: description: Updated time format: int64 type: integer x-go-name: UpdateAt username: description: The user name type: string x-go-name: Username required: - id - username - email - props - create_at - update_at - delete_at type: object x-go-package: github.com/mattermost/focalboard/server/model Workspace: description: Workspace is information global to a workspace properties: id: description: ID of the workspace type: string x-go-name: ID modifiedBy: description: ID of user who last modified this type: string x-go-name: ModifiedBy settings: additionalProperties: type: object description: Workspace settings type: object x-go-name: Settings signupToken: description: Token required to register new users type: string x-go-name: SignupToken title: description: Title of the workspace type: string x-go-name: Title updateAt: description: Updated time format: int64 type: integer x-go-name: UpdateAt required: - id - signupToken - modifiedBy - updateAt type: object x-go-package: github.com/mattermost/focalboard/server/model host: localhost info: contact: email: api@focalboard.com name: Focalboard url: https://www.focalboard.com description: Server for Focalboard license: name: Custom url: https://github.com/mattermost/focalboard/blob/main/LICENSE.txt title: Focalboard Server version: 1.0.0 paths: /api/v1/login: post: description: Login user operationId: login parameters: - description: Login request in: body name: body required: true schema: $ref: '#/definitions/LoginRequest' produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/LoginResponse' "401": description: invalid login schema: $ref: '#/definitions/ErrorResponse' "500": description: internal error schema: $ref: '#/definitions/ErrorResponse' /api/v1/register: post: description: Register new user operationId: register parameters: - description: Register request in: body name: body required: true schema: $ref: '#/definitions/RegisterRequest' produces: - application/json responses: "200": description: success "401": description: invalid registration token "500": description: internal error schema: $ref: '#/definitions/ErrorResponse' /api/v1/users/{userID}: get: description: Returns a user operationId: getUser parameters: - description: User ID in: path name: userID required: true type: string produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/User' default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/users/{userID}/changepassword: post: description: Change a user's password operationId: changePassword parameters: - description: User ID in: path name: userID required: true type: string - description: Change password request in: body name: body required: true schema: $ref: '#/definitions/ChangePasswordRequest' produces: - application/json responses: "200": description: success "400": description: invalid request schema: $ref: '#/definitions/ErrorResponse' "500": description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/users/me: get: description: Returns the currently logged-in user operationId: getMe produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/User' default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}: get: description: Returns information of the root workspace operationId: getWorkspace parameters: - description: Workspace ID in: path name: workspaceID required: true type: string produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/Workspace' default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/{rootID}/files: post: consumes: - multipart/form-data description: Upload a binary file, attached to a root block operationId: uploadFile parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of the root block in: path name: rootID required: true type: string - description: The file to upload in: formData name: uploaded file type: file produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/FileUploadResponse' default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/blocks: get: description: Returns blocks operationId: getBlocks parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of parent block, omit to specify all blocks in: query name: parent_id type: string - description: Type of blocks to return, omit to specify all types in: query name: type type: string produces: - application/json responses: "200": description: success schema: items: $ref: '#/definitions/Block' type: array default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] post: description: Insert or update blocks operationId: updateBlocks parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: array of blocks to insert or update in: body name: Body required: true schema: items: $ref: '#/definitions/Block' type: array produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/blocks/{blockID}: delete: description: Deletes a block operationId: deleteBlock parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of block to delete in: path name: blockID required: true type: string produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] patch: description: Partially updates a block operationId: patchBlock parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of block to patch in: path name: blockID required: true type: string - description: block patch to apply in: body name: Body required: true schema: $ref: '#/definitions/BlockPatch' produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/blocks/{blockID}/subtree: get: description: Returns the blocks of a subtree operationId: getSubTree parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: The ID of the root block of the subtree in: path name: blockID required: true type: string - description: The number of levels to return. 2 or 3. Defaults to 2. in: query maximum: 3 minimum: 2 name: l type: integer produces: - application/json responses: "200": description: success schema: items: $ref: '#/definitions/Block' type: array default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/blocks/export: get: description: Returns all blocks operationId: exportBlocks parameters: - description: Workspace ID in: path name: workspaceID required: true type: string produces: - application/json responses: "200": description: success schema: items: $ref: '#/definitions/Block' type: array default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/blocks/import: post: description: Import blocks operationId: importBlocks parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: array of blocks to import in: body name: Body required: true schema: items: $ref: '#/definitions/Block' type: array produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/regenerate_signup_token: post: description: Regenerates the signup token for the root workspace operationId: regenerateSignupToken parameters: - description: Workspace ID in: path name: workspaceID required: true type: string produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/sharing/{rootID}: get: description: Returns sharing information for a root block operationId: getSharing parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of the root block in: path name: rootID required: true type: string produces: - application/json responses: "200": description: success schema: $ref: '#/definitions/Sharing' default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] post: description: Sets sharing information for a root block operationId: postSharing parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of the root block in: path name: rootID required: true type: string - description: sharing information for a root block in: body name: Body required: true schema: $ref: '#/definitions/Sharing' produces: - application/json responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /api/v1/workspaces/{workspaceID}/users: get: description: Returns workspace users operationId: getWorkspaceUsers parameters: - description: Workspace ID in: path name: workspaceID required: true type: string produces: - application/json responses: "200": description: success schema: items: $ref: '#/definitions/User' type: array default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] /workspaces/{workspaceID}/{rootID}/{fileID}: get: description: Returns the contents of an uploaded file operationId: getFile parameters: - description: Workspace ID in: path name: workspaceID required: true type: string - description: ID of the root block in: path name: rootID required: true type: string - description: ID of the file in: path name: fileID required: true type: string produces: - application/json - image/jpg - image/png responses: "200": description: success default: description: internal error schema: $ref: '#/definitions/ErrorResponse' security: - BearerAuth: [] produces: - application/json schemes: - http - https securityDefinitions: BearerAuth: description: 'Pass session token using Bearer authentication, e.g. set header "Authorization: Bearer "' in: header name: Authorization type: apiKey swagger: "2.0"