Skip to content

APIs for Tasks

Get all tasks of project

http
GET /api/:workspaceId/:projectId/tasks

Request Body

No body required

Response

ts
type Tasks = {
  success: boolean;
  message: string;
  data: Data[];
};

type Data = {
  workspace_id: string;
  project_id: string;
  id: string;
  title: string;
  description: string;
  status: string;
  priority: string;
  start_date: null;
  due_date: Date;
  comments_count: string;
  assignees: Assignees[];
  type: null;
  created_by: CreatedBy;
};

type CreatedBy = {
  name: string;
  email: string;
};

type Assignees = {
  id: string;
  name: string;
  email: string;
};

Create Task

http
POST /api/:workspaceId/:projectId/tasks

Request Body

ts
type CreateTask = {
  title: string;
  description: string;
  status: string;
  priority: string;
  due_date: Date;
  start_date: string;
  assignees: string[];
};

Response

ts
type CreateTaskResponse = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  title: string;
  description: string;
  status: string;
  priority: string;
  due_date: Date;
  created_by: string;
  created_at: Date;
  type: null;
  start_date: null;
};

Update task

http
PUT /api/:workspaceId/:projectId/tasks/:taskId

Request Body

ts
type UpdateTask = {
  title: string;
  description: string;
  status: string;
  priority: string;
  due_date: Date;
  start_date: string;
  assignees: string[];
};

Response

ts
type UpdateTaskResponse = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  title: string;
  description: string;
  status: string;
  priority: string;
  due_date: Date;
  created_by: string;
  created_at: Date;
  type: string;
  start_date: Date;
};

Delete task

http
DELETE /api/:workspaceId/:projectId/tasks/:taskId

Request Body

No body required

Response

ts
type DeleteTaskResponse = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  title: string;
  description: string;
  status: string;
  priority: string;
  due_date: Date;
  created_by: string;
  created_at: Date;
  type: string;
  start_date: string;
};

Assign task to user

http
POST /api/:workspaceId/:projectId/tasks/:taskId/assign

Request Body

ts
type AssignUserToTask = {
  assignees: string[];
};

Response

ts
type AssignUserToTaskResponse = {
  success: boolean;
  message: string;
  data: Date[];
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  user_id: string; //email
};

Remove task from user

http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/assign

Request Body

ts
type AssignUserToTask = {
  assignees: string[];
};

Response

ts
type AssignUserToTask = {
  success: boolean;
  message: string;
};

Add comment to task

http
POST /api/:workspaceId/:projectId/tasks/:taskId/comments

Request Body

ts
type AddComment = {
  content: string;
};

Response

ts
type AddCommentResponse = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  content: string;
  created_at: Date;
  user_email: string;
  parent_comment_id: null;
};

Add reply to comment

http
POST /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/reply

Request Body

ts
type AddReply = {
  content: string;
};

Response

ts
type AddReplyResponse = {
  success: boolean;
  message: string;
  data: Data;
};

export interface Data {
  id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  content: string;
  created_at: Date;
  user_email: string;
  parent_comment_id: string;
}

Add reaction to comment

http
POST /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/reactions

Request Body

ts
type AddReactions = {
  emoji: string;
};

Response

ts
type AddReactionsResponse = {
  success: boolean;
  message: string;
  data: Data;
};

export interface Data {
  id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  comment_id: string;
  emoji: string;
  user_email: string;
  created_at: Date;
}

Remove reaction from comment

http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId/reactions/:emoji

Request Body

No body required

Response

ts
type RemoveResponse = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  comment_id: string;
  emoji: string;
  user_email: string;
  created_at: Date;
};

Get all comments of task

http
GET /api/:workspaceId/:projectId/tasks/:taskId/comments

Request Body

No body required

Response

ts
type CommentResponse = {
  success: boolean;
  message: string;
  data: Data[];
};

type Data = {
  id: string;
  name: string;
  email: string;
  photo: null;
  content: string;
  timestamp: Date;
  parent_comment_id: null | string;
  reactions: Reaction[];
  attachments: Attachment[];
};

type Reaction = {
  emoji: string;
  users: string[];
  count: number;
};

type Attachment = {
  id: string;
  task_id: string;
  comment_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
  url: string;
};

Delete comment from task

http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/comments/:commentId

Request Body

No Body required

Response

ts
type DeleteCommentResponse = {
  success: boolean;
  message: string;
};

Add attachments to comment

http
POST /api/:workspaceId/:projectId

Request Body

ts
type AddCommentAttachment = {
  file_name: string;
  file_type: string;
  file_path: string;
};

Response

ts
type AddCommentAttachment = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  task_id: string;
  comment_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
};

Delete attachments to comment

http
DELETE /api/:workspaceId/:projectId

Request Body

No body required

Response

ts
type DeleteCommentAttachmentResponse = {
  success: boolean;
  message: string;
};

Get files of task

http
GET  /api/:workspaceId/:projectId/tasks/:taskId/file

Request Body

No Body required

Response

ts
type FileResponse = {
  success: boolean;
  message: string;
  data: Date[];
};

type Date = {
  file_id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
};

Upload file to task

http
POST /api/:workspaceId/:projectId/tasks/:taskId/file

Request Body

ts
type FileUpload = {
  fileName: string;
  fileType: string;
  filePath: string;
};

Response

ts
type FileUploadResponse = {
  success: boolean;
  message: string;
  data: Data;
};

export interface Data {
  file_id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
}

Export task file

http
GET /api/:workspaceId/:projectId/tasks/:taskId/file/:fileId/export

Request Body

No body required

Response

Returns a downloadable file

Get task videos

http
GET /api/:workspaceId/:projectId/tasks/:taskId/videos

Response Body

No Body required

Response

ts
type Response = {
  success: boolean;
  message: string;
  data: Data[];
};

type Data = {
  file_id: string;
  workspace_id: string;
  project_id: string;
  task_id: string;
  file_name: string;
  file_path: string;
  file_type: string;
  uploaded_by: string;
  uploaded_at: Date;
  url: string;
};

Task Property

Create Tast Property

http
POST /api/:workspaceId/:projectId/tasks/:taskId/properties

Request Body

ts
type CreateProperty = {
  property: Property[];
};

type Property = {
  name: string;
  color: string;
};

Response

ts
type Response = {
  success: boolean;
  message: string;
  data: Data;
};

type Data = {
  id: string;
  project_id: string;
  task_id: string;
  property: Property[];
};

type Property = {
  name: string;
  color: string;
};

Get Task Property

http
GET /api/:workspaceId/:projectId/tasks/:taskId/properties

Request Body

No Body required

Response

ts
type PropertyResponse = {
  success: boolean;
  message: string;
  data: Data[];
};

type Data = {
  id: string;
  project_id: string;
  task_id: string;
  property_name: string;
  value: ValueType;
};

Update Task Property

http
PUT /api/:workspaceId/:projectId/tasks/:taskId/properties/:propertyId

Request Body

ts
type UpdateProperty = {
  property: Property[];
};

type Property = {
  name: string;
  color: string;
};

Response

ts
type UpdatePropertyRespone = {
  success: boolean;
  message: string;
};

Delete Task Property

http
DELETE /api/:workspaceId/:projectId/tasks/:taskId/properties/:propertyId

Request Body

No Body Required

Response

ts
type DeletePropertyRespone = {
  success: boolean;
  message: string;
};