Project Management

Project Management API

The Project Management API allows you to manage projects, tasks, milestones, and team collaboration in your TaskIP CRM system. You can create and track projects, assign tasks, monitor progress, and manage project workflows with comprehensive reporting and analytics.

Complete Endpoints Overview

Project Management

MethodEndpointDescription
GET/api/public-v1/projectGet all projects
POST/api/public-v1/projectCreate a new project
GET/api/public-v1/project/{id}Get a specific project
PUT/api/public-v1/project/{id}Update a project
DELETE/api/public-v1/project/{id}Delete a project
POST/api/public-v1/project/dashboard/activityGet dashboard activities
POST/api/public-v1/project/{uuid}/activityGet project activities
POST/api/public-v1/project/all-tasks/listGet all tasks list
POST/api/public-v1/project/{uuid}/change-priorityChange project priority
POST/api/public-v1/project/{uuid}/change-statusChange project status
POST/api/public-v1/project/{uuid}/change-categoryChange project category

Task Management

MethodEndpointDescription
GET/api/public-v1/project/{uuid}/taskGet all tasks in project
POST/api/public-v1/project/{uuid}/taskCreate a new task
GET/api/public-v1/project/{uuid}/task/{id}Get a specific task
PUT/api/public-v1/project/{uuid}/task/{id}Update a task
DELETE/api/public-v1/project/{uuid}/task/{id}Delete a task
POST/api/public-v1/project/{uuid}/task/change-orderChange task order
POST/api/public-v1/project/{uuid}/task/{id}/change-containerChange task container
POST/api/public-v1/project/{uuid}/task/{id}/change-priorityChange task priority
POST/api/public-v1/project/{uuid}/task/{id}/mark-as-completeMark task as complete

Task Labels & Assignees

MethodEndpointDescription
POST/api/public-v1/project/{uuid}/task/{id}/labelAdd label to task
DELETE/api/public-v1/project/{uuid}/task/{id}/labelRemove label from task
POST/api/public-v1/project/{uuid}/task/{id}/assigneeAdd assignee to task
DELETE/api/public-v1/project/{uuid}/task/{id}/assigneeRemove assignee from task

Task Documents & Comments

MethodEndpointDescription
GET/api/public-v1/project/{uuid}/task/{id}/documentGet task documents
POST/api/public-v1/project/{uuid}/task/{id}/documentAdd document to task
DELETE/api/public-v1/project/{uuid}/task/{id}/documentRemove document from task
GET/api/public-v1/project/{uuid}/task/{id}/commentGet task comments
POST/api/public-v1/project/{uuid}/task/{id}/commentAdd comment to task
DELETE/api/public-v1/project/{uuid}/task/{id}/commentRemove comment from task

Task Files Management

MethodEndpointDescription
GET/api/public-v1/project/{uuid}/task/filesGet all task files in project
GET/api/public-v1/project/{uuid}/task/{id}/filesGet task files
POST/api/public-v1/project/{uuid}/task/{id}/filesUpload file to task
DELETE/api/public-v1/project/{uuid}/task/{id}/filesDelete file from task
GET/api/public-v1/project/{uuid}/filesGet all project files

Discussion Management

MethodEndpointDescription
GET/api/public-v1/project/{uuid}/discussionGet project discussions
POST/api/public-v1/project/{uuid}/discussionCreate new discussion
GET/api/public-v1/project/{uuid}/discussion/filesGet discussion files

Container Management (Kanban/Board)

MethodEndpointDescription
POST/api/public-v1/project/{uuid}/containerCreate new container
PUT/api/public-v1/project/{uuid}/container/{id}/renameRename container
POST/api/public-v1/project/{uuid}/container/{id}/change-colorChange container color
POST/api/public-v1/project/{uuid}/container/change-orderChange container order
DELETE/api/public-v1/project/{uuid}/container/{id}/deleteDelete container
POST/api/public-v1/project/{uuid}/container/{id}/move-all-tasksMove all tasks from container

Project Attributes

MethodEndpointDescription
GET/api/public-v1/project/attribute/allGet all project attributes
POST/api/public-v1/project/attributeCreate new attribute
PUT/api/public-v1/project/attribute/{id}/updateUpdate attribute
DELETE/api/public-v1/project/attribute/{id}/deleteDelete attribute
POST/api/public-v1/project/attribute/tags/updateBulk update tags
POST/api/public-v1/project/attribute/categories/updateBulk update categories

Get All Projects

Retrieve a list of all projects in your system.

GET /api/public-v1/project

Request Headers

X-Secret-Key: your-secret-key-here
Content-Type: application/json

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number for pagination (default: 1)
limitintegerNoNumber of projects per page (default: 50)
searchstringNoSearch term for project name or description
sortstringNoSort field (name, status, start_date, end_date, created_at)
orderstringNoSort order (asc or desc)
statusstringNoFilter by status
client_idintegerNoFilter by client ID
assigned_tointegerNoFilter by assigned team member

Example Request

curl -X GET "https://public-api.taskip.net/api/public-v1/project?page=1&limit=20" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json"

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "Website Redesign - Acme Corp",
      "uuid": "proj_abc123def456",
      "description": "Complete website redesign and development for Acme Corporation",
      "priority": 3,
      "privacy": 1,
      "status": "active",
      "started_at": "15-Jan-2024",
      "ended_at": "15-Apr-2024",
      "client": [
        {
          "id": 15,
          "name": "John Smith",
          "email": "john@acmecorp.com"
        }
      ],
      "created_by": {
        "id": 3,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "created_at": "10-Jan-2024",
      "updated_at": "20-Jan-2024",
      "project_manager": [
        {
          "id": 5,
          "name": "Mike Wilson",
          "email": "mike@company.com"
        }
      ],
      "assignees": [
        {
          "id": 8,
          "name": "David Chen",
          "email": "david@company.com"
        }
      ],
      "tags": [
        {
          "id": 1,
          "name": "website",
          "color": "#FF5722"
        }
      ],
      "categories": [
        {
          "id": 2,
          "name": "Development",
          "color": "#4CAF50"
        }
      ],
      "total_tasks": 45,
      "completed_tasks": 29,
      "completion_percentage": 64.44
    }
  ],
  "links": {
    "first": "https://public-api.taskip.net/api/public-v1/project?page=1",
    "last": "https://public-api.taskip.net/api/public-v1/project?page=3",
    "prev": null,
    "next": "https://public-api.taskip.net/api/public-v1/project?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 3,
    "path": "https://public-api.taskip.net/api/public-v1/project",
    "per_page": 15,
    "to": 15,
    "total": 45
  }
}

Create New Project

Create a new project in your system.

POST /api/public-v1/project

Request Body

FieldTypeRequiredDescription
titlestringYesProject title (max 191 characters)
descriptionstringNoProject description
priorityintegerYesPriority level (1-5)
privacyintegerYesPrivacy setting (0=Private, 1=Public)
statusstringYesProject status enum value
started_atstringNoStart date
ended_atstringNoEnd date
clientarrayNoArray of client IDs
created_byintegerNoCreator user ID
tagsarrayNoArray of tag IDs
categoryarrayNoArray of category IDs
assigneearrayNoArray of assignee user IDs
complete_status_idintegerNoCompletion status ID
notify_clientbooleanNoSend notification to client
project_managerarrayNoArray of project manager user IDs

Example Request

curl -X POST "https://public-api.taskip.net/api/public-v1/project" \
  -H "X-Secret-Key: your-secret-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "E-commerce Platform",
    "description": "Build complete e-commerce platform",
    "priority": 4,
    "privacy": 1,
    "status": "planning",
    "started_at": "2024-03-01",
    "ended_at": "2024-09-01",
    "client": [28],
    "tags": [1, 3],
    "category": [2],
    "assignee": [8, 12],
    "project_manager": [5],
    "notify_client": true
  }'

Example Response

{
  "msg": "Project Created Successfully",
  "data": {
    "id": 26,
    "title": "E-commerce Platform",
    "uuid": "proj_xyz789ghi012",
    "description": "Build complete e-commerce platform",
    "priority": 4,
    "privacy": 1,
    "status": "planning",
    "started_at": "01-Mar-2024",
    "ended_at": "01-Sep-2024",
    "client": [
      {
        "id": 28,
        "name": "GreenTech Solutions",
        "email": "contact@greentech.com"
      }
    ],
    "created_by": {
      "id": 3,
      "name": "Current User",
      "email": "current@company.com"
    },
    "created_at": "20-Feb-2024",
    "updated_at": "20-Feb-2024",
    "project_manager": [
      {
        "id": 5,
        "name": "Mike Wilson",
        "email": "mike@company.com"
      }
    ],
    "assignees": [
      {
        "id": 8,
        "name": "David Chen",
        "email": "david@company.com"
      },
      {
        "id": 12,
        "name": "Lisa Park",
        "email": "lisa@company.com"
      }
    ],
    "tags": [
      {
        "id": 1,
        "name": "ecommerce",
        "color": "#2196F3"
      },
      {
        "id": 3,
        "name": "platform",
        "color": "#FF9800"
      }
    ],
    "categories": [
      {
        "id": 2,
        "name": "Development",
        "color": "#4CAF50"
      }
    ],
    "total_tasks": 0,
    "completed_tasks": 0,
    "completion_percentage": 0
  }
}

Get Specific Project

Retrieve details of a specific project.

GET /api/public-v1/project/{id}

Path Parameters

ParameterTypeRequiredDescription
idstringYesProject ID or UUID

Example Response

{
  "data": {
    "id": 26,
    "title": "E-commerce Platform",
    "uuid": "proj_xyz789ghi012",
    "description": "Build complete e-commerce platform",
    "priority": 4,
    "privacy": 1,
    "status": "planning",
    "started_at": "01-Mar-2024",
    "ended_at": "01-Sep-2024",
    "client_id": 28,
    "client": [
      {
        "id": 28,
        "name": "GreenTech Solutions",
        "email": "contact@greentech.com"
      }
    ],
    "created_by": {
      "id": 3,
      "name": "Current User",
      "email": "current@company.com"
    },
    "created_at": "01-Mar-2024",
    "updated_at": "01-Mar-2024",
    "assignees": [
      {
        "id": 8,
        "name": "David Chen",
        "email": "david@company.com"
      }
    ],
    "tags": [
      {
        "id": 1,
        "name": "ecommerce",
        "color": "#2196F3"
      }
    ],
    "categories": [
      {
        "id": 2,
        "name": "Development",
        "color": "#4CAF50"
      }
    ],
    "project_manager": [
      {
        "id": 5,
        "name": "Mike Wilson",
        "email": "mike@company.com"
      }
    ],
    "complete_status_id": null,
    "total_tasks": 0,
    "completed_tasks": 0,
    "completion_percentage": 0
  },
  "status": 200
}

Update Project

Update an existing project.

PUT /api/public-v1/project/{id}

Path Parameters

ParameterTypeRequiredDescription
idstringYesProject ID or UUID

Request Body

FieldTypeRequiredDescription
titlestringYesProject title (max 191 characters)
descriptionstringNoProject description
priorityintegerYesPriority level (1-5)
privacyintegerYesPrivacy setting (0=Private, 1=Public)
statusstringYesProject status enum value
started_atstringNoStart date
ended_atstringNoEnd date
clientarrayNoArray of client IDs
tagsarrayNoArray of tag IDs
categoryarrayNoArray of category IDs
assigneearrayNoArray of assignee user IDs
complete_status_idintegerNoCompletion status ID
notify_clientbooleanNoSend notification to client
project_managerarrayNoArray of project manager user IDs

Example Response

{
  "msg": "Project Updated",
  "status": 200,
  "data": {
    "id": 26,
    "title": "E-commerce Platform - Updated",
    "uuid": "proj_xyz789ghi012",
    "description": "Updated e-commerce platform description",
    "priority": 5,
    "privacy": 1,
    "status": "active",
    "started_at": "01-Mar-2024",
    "ended_at": "01-Oct-2024",
    "client_id": 28,
    "client": [
      {
        "id": 28,
        "name": "GreenTech Solutions",
        "email": "contact@greentech.com"
      }
    ],
    "created_by": {
      "id": 3,
      "name": "Current User",
      "email": "current@company.com"
    },
    "created_at": "01-Mar-2024",
    "updated_at": "21-Feb-2024",
    "assignees": [],
    "tags": [],
    "categories": [],
    "project_manager": [],
    "complete_status_id": null,
    "total_tasks": 5,
    "completed_tasks": 2,
    "completion_percentage": 40.0
  }
}

Delete Project

Delete a project from the system.

DELETE /api/public-v1/project/{id}

Path Parameters

ParameterTypeRequiredDescription
idstringYesProject ID or UUID

Example Response

{
  "msg": "Project Deleted",
  "status": 200
}

Get Dashboard Activities

Get dashboard activities across all projects.

POST /api/public-v1/project/dashboard/activity

Request Body

FieldTypeRequiredDescription
limitintegerNoNumber of activities (default: 50)
from_datestringNoFilter from date
to_datestringNoFilter to date

Example Response

{
  "data": [
    {
      "id": 1,
      "project_uuid": "proj_xyz789ghi012",
      "activity_type": "task_created",
      "content": "New task created: Design database schema",
      "metadata": {
        "task_id": 245,
        "task_title": "Design database schema"
      },
      "old_value": null,
      "new_value": "task_created",
      "createdBy": {
        "id": 3,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "updatedBy": {
        "id": 3,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "project": {
        "id": 26,
        "title": "E-commerce Platform",
        "uuid": "proj_xyz789ghi012"
      },
      "createdAt": "2 hours ago"
    }
  ],
  "links": {
    "first": "https://public-api.taskip.net/api/public-v1/project/dashboard/activity?page=1",
    "last": "https://public-api.taskip.net/api/public-v1/project/dashboard/activity?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://public-api.taskip.net/api/public-v1/project/dashboard/activity",
    "per_page": 15,
    "to": 5,
    "total": 5
  }
}

Get Project Activities

Get activities for a specific project.

POST /api/public-v1/project/{uuid}/activity

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
limitintegerNoNumber of activities
pageintegerNoPage number

Example Response

{
  "data": [
    {
      "id": 2,
      "project_uuid": "proj_xyz789ghi012",
      "activity_type": "status_changed",
      "content": "Project status changed from planning to active",
      "metadata": {
        "field_changed": "status"
      },
      "old_value": "planning",
      "new_value": "active",
      "createdBy": {
        "id": 5,
        "name": "Mike Wilson",
        "email": "mike@company.com"
      },
      "updatedBy": {
        "id": 5,
        "name": "Mike Wilson",
        "email": "mike@company.com"
      },
      "project": {
        "id": 26,
        "title": "E-commerce Platform",
        "uuid": "proj_xyz789ghi012"
      },
      "createdAt": "1 day ago"
    }
  ],
  "links": {
    "first": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/activity?page=1",
    "last": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/activity?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/activity",
    "per_page": 15,
    "to": 3,
    "total": 3
  }
}

Get All Tasks List

Get all tasks across projects.

POST /api/public-v1/project/all-tasks/list

Request Body

FieldTypeRequiredDescription
statusstringNoFilter by status
assigned_tointegerNoFilter by assignee
project_idsarrayNoFilter by project IDs

Example Response

{
  "data": [
    {
      "id": 245,
      "title": "Design database schema",
      "project_uuid": "proj_xyz789ghi012",
      "priority": 4,
      "is_completed": false,
      "description": "Create comprehensive database schema for the e-commerce platform",
      "due_date": "2024-03-20",
      "order": "2024-03-20",
      "container_id": 1,
      "created_at": "21/Mar/2024",
      "assignees": [
        {
          "id": 8,
          "name": "David Chen",
          "email": "david@company.com"
        }
      ],
      "labels": [
        {
          "id": 1,
          "name": "backend",
          "color": "#4285F4"
        },
        {
          "id": 2,
          "name": "database",
          "color": "#FF9800"
        }
      ],
      "updated_at": "22/Mar/2024",
      "created_by": {
        "id": 3,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "project": {
        "id": 26,
        "title": "E-commerce Platform",
        "uuid": "proj_xyz789ghi012"
      }
    }
  ]
}

Change Project Priority

Change the priority of a project.

POST /api/public-v1/project/{uuid}/change-priority

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
prioritystringYesNew priority (low, medium, high, critical)

Example Response

[
  "Project Priority Updated"
]

Change Project Status

Change the status of a project.

POST /api/public-v1/project/{uuid}/change-status

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
statusstringYesNew status

Example Response

[
  "Project Status Updated"
]

Change Project Category

Change the category of a project.

POST /api/public-v1/project/{uuid}/change-category

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
category_idintegerYesNew category ID

Example Response

[
  "Project Category Updated"
]

Get Project Tasks

Get all tasks in a project.

GET /api/public-v1/project/{uuid}/task

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Example Response

{
  "data": [
    {
      "id": "container-1",
      "container_id": 1,
      "title": "To Do",
      "color": "#FF5722",
      "order": 1,
      "stats": {
        "total_tasks": 5,
        "completed_tasks": 0,
        "completion_percentage": 0
      },
      "items": [
        {
          "id": 245,
          "title": "Design database schema",
          "project_uuid": "proj_xyz789ghi012",
          "priority": "high",
          "is_completed": false,
          "description": "Create comprehensive database schema for the e-commerce platform",
          "due_date": "2024-03-20",
          "order": "2024-03-20",
          "container_id": 1,
          "created_at": "21/Feb/2024",
          "documents": [],
          "assignees": [
            {
              "id": 8,
              "name": "David Chen",
              "email": "david@company.com"
            }
          ],
          "labels": [
            {
              "id": 1,
              "name": "backend",
              "color": "#4285F4"
            },
            {
              "id": 2,
              "name": "database",
              "color": "#FF9800"
            }
          ],
          "files": [],
          "comments": [],
          "updated_at": "22/Feb/2024",
          "created_by": {
            "id": 3,
            "name": "Sarah Johnson",
            "email": "sarah@company.com"
          }
        }
      ]
    },
    {
      "id": "container-2",
      "container_id": 2,
      "title": "In Progress",
      "color": "#2196F3",
      "order": 2,
      "stats": {
        "total_tasks": 3,
        "completed_tasks": 0,
        "completion_percentage": 0
      },
      "items": []
    }
  ],
  "links": {
    "first": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/task?page=1",
    "last": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/task?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://public-api.taskip.net/api/public-v1/project/proj_xyz789ghi012/task",
    "per_page": 15,
    "to": 8,
    "total": 8
  }
}

Create Task

Create a new task in a project.

POST /api/public-v1/project/{uuid}/task

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
titlestringYesTask title
prioritystringNoPriority enum value
descriptionstringNoTask description
due_datestringNoDue date
orderintegerNoTask order in container
container_idintegerYesContainer ID (must exist in project_task_containers)
assigneesarrayNoArray of assignee user IDs
labelsarrayNoArray of label IDs
documentsarrayNoArray of document IDs

Example Response

{
  "msg": "Task Created",
  "task": {
    "id": 246,
    "title": "Setup authentication",
    "project_uuid": "proj_xyz789ghi012",
    "priority": "medium",
    "is_completed": false,
    "description": "Implement user authentication system with JWT",
    "due_date": "2024-03-15",
    "order": "2024-03-15",
    "container_id": 1,
    "created_at": "22/Feb/2024",
    "documents": [],
    "assignees": [
      {
        "id": 12,
        "name": "Lisa Park",
        "email": "lisa@company.com"
      }
    ],
    "labels": [
      {
        "id": 3,
        "name": "authentication",
        "color": "#9C27B0"
      }
    ],
    "files": [],
    "comments": [],
    "updated_at": "22/Feb/2024",
    "created_by": {
      "id": 3,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    }
  },
  "status": 200
}

Get Specific Task

Get details of a specific task.

GET /api/public-v1/project/{uuid}/task/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Example Response

{
  "data": {
    "title": "Design database schema",
    "project_uuid": "proj_xyz789ghi012",
    "priority": "high",
    "is_completed": false,
    "description": "Create comprehensive database schema for the e-commerce platform",
    "due_date": "20/Mar/2024",
    "order": 1,
    "container": {
      "id": 1,
      "title": "To Do",
      "color": "#FF5722",
      "order": 1
    },
    "labels": [
      {
        "id": 1,
        "name": "backend",
        "color": "#4285F4"
      },
      {
        "id": 2,
        "name": "database",
        "color": "#FF9800"
      }
    ],
    "files": [
      {
        "id": 10,
        "name": "schema.sql",
        "size": 5120,
        "type": "text/sql"
      }
    ],
    "comments": [
      {
        "id": 45,
        "content": "Started working on user tables",
        "author": "David Chen",
        "created_at": "22/Feb/2024"
      }
    ],
    "documents": [
      {
        "id": 15,
        "name": "Database Requirements",
        "type": "requirement"
      }
    ],
    "assignees": [
      {
        "id": 8,
        "name": "David Chen",
        "email": "david@company.com"
      }
    ],
    "created_at": "21/Feb/2024",
    "updated_at": "22/Feb/2024",
    "created_by": {
      "id": 3,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "id": 245
  },
  "status": 200
}

Update Task

Update an existing task.

PUT /api/public-v1/project/{uuid}/task/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
titlestringYesTask title
prioritystringNoPriority enum value
descriptionstringNoTask description
due_datestringNoDue date
orderintegerNoTask order in container
container_idintegerYesContainer ID (must exist in project_task_containers)
assigneesarrayNoArray of assignee user IDs
labelsarrayNoArray of label IDs
documentsarrayNoArray of document IDs

Example Response

{
  "msg": "Task Update",
  "task": {
    "id": 245,
    "title": "Design database schema - Updated",
    "project_uuid": "proj_xyz789ghi012",
    "priority": "critical",
    "is_completed": false,
    "description": "Updated: Create comprehensive database schema with performance optimization",
    "due_date": "2024-03-18",
    "order": "2024-03-18",
    "container_id": 2,
    "created_at": "21/Feb/2024",
    "documents": [],
    "assignees": [
      {
        "id": 8,
        "name": "David Chen",
        "email": "david@company.com"
      },
      {
        "id": 12,
        "name": "Lisa Park",
        "email": "lisa@company.com"
      }
    ],
    "labels": [
      {
        "id": 1,
        "name": "backend",
        "color": "#4285F4"
      },
      {
        "id": 2,
        "name": "database",
        "color": "#FF9800"
      },
      {
        "id": 4,
        "name": "performance",
        "color": "#4CAF50"
      }
    ],
    "files": [],
    "comments": [],
    "updated_at": "23/Feb/2024",
    "created_by": {
      "id": 3,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    }
  },
  "status": 200
}

Delete Task

Delete a task from the project.

DELETE /api/public-v1/project/{uuid}/task/{id}

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Example Response

{
  "status": 200,
  "msg": "Task deleted successfully"
}

Change Task Order

Change the order of tasks within a container.

POST /api/public-v1/project/{uuid}/task/change-order

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
container_idintegerYesTarget container ID
orderarrayYesArray of order objects with item_id and order

Example Response

{
  "msg": "Task Order Changed",
  "status": 200
}

Change Task Container

Move a task to a different container/column.

POST /api/public-v1/project/{uuid}/task/{id}/change-container

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
container_idintegerYesNew container ID
orderintegerNoPosition in new container

Example Response

{
  "msg": "Task Container Changed",
  "status": 200
}

Change Task Priority

Change the priority of a task.

POST /api/public-v1/project/{uuid}/task/{id}/change-priority

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
prioritystringYesNew priority

Example Response

{
  "msg": "Task Priority Changed",
  "status": 200
}

Mark Task Complete

Mark a task as complete.

POST /api/public-v1/project/{uuid}/task/{id}/mark-as-complete

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
is_completedintegerYesCompletion status (0=Not Complete, 1=Complete)

Example Response

{
  "msg": "Task Marked as Complete",
  "stats": {
    "total_tasks": 45,
    "completed_tasks": 30,
    "completion_percentage": 66.67
  },
  "status": 200
}

Add Task Label

Add a label to a task.

POST /api/public-v1/project/{uuid}/task/{id}/label

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
label_idintegerYesLabel/Attribute ID to add to task

Example Response

{
  "msg": "Task Label added",
  "data": {
    "id": 3,
    "title": "backend",
    "color": "#4285F4",
    "type": "label"
  },
  "status": 200
}

Remove Task Label

Remove a label from a task.

DELETE /api/public-v1/project/{uuid}/task/{id}/label

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
label_idintegerYesLabel ID to remove

Example Response

{
  "msg": "Task Label removed",
  "status": 200
}

Add Task Assignee

Assign a user to a task.

POST /api/public-v1/project/{uuid}/task/{id}/assignee

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
assignee_idintegerYesUser ID to assign to the task

Example Response

{
  "msg": "Task Assignee added",
  "data": {
    "task_id": 245,
    "assignee_id": {
      "id": 12,
      "name": "Lisa Park",
      "email": "lisa@company.com"
    },
    "assigned_by": {
      "id": 3,
      "name": "Sarah Johnson",
      "email": "sarah@company.com"
    },
    "created_at": "23/Feb/2024",
    "id": 15
  },
  "status": 200
}

Remove Task Assignee

Remove an assignee from a task.

DELETE /api/public-v1/project/{uuid}/task/{id}/assignee

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
assignee_idintegerYesUser ID to remove from task

Example Response

{
  "msg": "Task Assignee remove",
  "status": 200
}

Get Task Documents

Get documents attached to a task.

GET /api/public-v1/project/{uuid}/task/{id}/document

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Example Response

{
  "data": [
    {
      "task_id": 245,
      "document_id": 10,
      "document": {
        "id": 10,
        "title": "Project Requirements Document",
        "description": "Detailed requirements for the e-commerce platform",
        "file_name": "requirements.pdf",
        "file_size": 1024000,
        "file_type": "application/pdf",
        "created_at": "20/Feb/2024",
        "updated_at": "20/Feb/2024"
      },
      "id": 245
    },
    {
      "task_id": 245,
      "document_id": 15,
      "document": {
        "id": 15,
        "title": "Database Schema Design",
        "description": "Visual representation of database structure",
        "file_name": "schema_diagram.png",
        "file_size": 512000,
        "file_type": "image/png",
        "created_at": "21/Feb/2024",
        "updated_at": "21/Feb/2024"
      },
      "id": 245
    }
  ],
  "status": 200
}

Add Task Document

Add a document to a task.

POST /api/public-v1/project/{uuid}/task/{id}/document

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
document_idintegerYesDocument ID to attach to the task

Example Response

{
  "msg": "Task Document added",
  "data": {
    "task_id": 245,
    "document_id": 18,
    "document": {
      "id": 18,
      "title": "API Documentation",
      "description": "Complete API documentation for the project",
      "file_name": "api_docs.pdf",
      "file_size": 2048000,
      "file_type": "application/pdf",
      "created_at": "23/Feb/2024",
      "updated_at": "23/Feb/2024"
    },
    "id": 245
  },
  "status": 200
}

Remove Task Document

Remove a document from a task.

DELETE /api/public-v1/project/{uuid}/task/{id}/document

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
document_idintegerYesDocument ID to remove

Example Response

{
  "msg": "Task Document removed",
  "status": 200
}

Get Task Comments

Get comments on a task.

GET /api/public-v1/project/{uuid}/task/{id}/comment

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Example Response

{
  "data": [
    {
      "id": 45,
      "task_id": 245,
      "description": "Started working on this task - implementing user authentication module",
      "user": {
        "id": 8,
        "name": "David Chen",
        "email": "david@company.com"
      },
      "createdAt": "22 Feb 2024 14:30"
    },
    {
      "id": 46,
      "task_id": 245,
      "description": "Good progress! Let me know if you need help with JWT implementation.",
      "user": {
        "id": 3,
        "name": "Sarah Johnson",
        "email": "sarah@company.com"
      },
      "createdAt": "22 Feb 2024 16:45"
    }
  ],
  "status": 200
}

Add Task Comment

Add a comment to a task.

POST /api/public-v1/project/{uuid}/task/{id}/comment

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
descriptionstringYesComment description/text

Example Response

{
  "msg": "Task comment added",
  "data": {
    "id": 47,
    "task_id": 245,
    "description": "Completed the initial design and ready for review",
    "user": {
      "id": 12,
      "name": "Lisa Park",
      "email": "lisa@company.com"
    },
    "createdAt": "23 Feb 2024 10:00"
  },
  "status": 200
}

Remove Task Comment

Delete a comment from a task.

DELETE /api/public-v1/project/{uuid}/task/{id}/comment

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
comment_idintegerYesComment ID to delete from task

Example Response

{
  "msg": "Task comment deleted",
  "status": 200
}

Get All Task Files

Get all task files in a project.

GET /api/public-v1/project/{uuid}/task/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Example Response

{
  "status": 200,
  "msg": "Project task files retrieved successfully",
  "data": [
    {
      "task_id": 245,
      "media": {
        "id": 12,
        "title": "schema.sql",
        "ext": "sql",
        "size": 5120,
        "url": "https://storage.taskip.net/tenant-123/files/schema.sql",
        "createdAt": "22-Feb-2024 10:30:15"
      },
      "createdAt": "22-Feb-2024 10:30:15"
    },
    {
      "task_id": 246,
      "media": {
        "id": 15,
        "title": "mockup.png",
        "ext": "png",
        "size": 102400,
        "url": "https://storage.taskip.net/tenant-123/files/mockup.png",
        "createdAt": "23-Feb-2024 14:45:22"
      },
      "createdAt": "23-Feb-2024 14:45:22"
    }
  ]
}

Get Task Files

Get files attached to a specific task.

GET /api/public-v1/project/{uuid}/task/{id}/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Example Response

{
  "msg": "Task file added",
  "data": [
    {
      "task_id": 245,
      "media": {
        "id": 12,
        "title": "schema.sql",
        "ext": "sql",
        "size": 5120,
        "url": "https://storage.taskip.net/tenant-123/files/schema.sql",
        "createdAt": "22-Feb-2024 15:00:30"
      },
      "createdAt": "22-Feb-2024 15:00:30"
    },
    {
      "task_id": 245,
      "media": {
        "id": 18,
        "title": "design_wireframe.pdf",
        "ext": "pdf",
        "size": 256000,
        "url": "https://storage.taskip.net/tenant-123/files/design_wireframe.pdf",
        "createdAt": "23-Feb-2024 11:20:45"
      },
      "createdAt": "23-Feb-2024 11:20:45"
    }
  ],
  "status": 200
}

Upload Task File

Upload a file to a task.

POST /api/public-v1/project/{uuid}/task/{id}/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
file_idintegerYesMedia/File ID to attach to task

Example Response

{
  "msg": "Task file added",
  "data": {
    "task_id": 245,
    "media": {
      "id": 19,
      "title": "updated_mockup.png",
      "ext": "png",
      "size": 102400,
      "url": "https://storage.taskip.net/tenant-123/files/updated_mockup.png",
      "createdAt": "24-Feb-2024 09:15:30"
    },
    "createdAt": "24-Feb-2024 09:15:30"
  },
  "status": 200
}

Delete Task File

Delete a file from a task.

DELETE /api/public-v1/project/{uuid}/task/{id}/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesTask ID

Request Body

FieldTypeRequiredDescription
file_idintegerYesMedia/File ID to delete from task

Example Response

{
  "msg": "Task file deleted",
  "status": 200
}

Get Project Files

Get all files in a project.

GET /api/public-v1/project/{uuid}/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Example Response

{
  "data": [
    {
      "id": 10,
      "title": "project-brief.pdf",
      "ext": "pdf",
      "size": 204800,
      "url": "https://storage.taskip.net/tenant-123/files/project-brief.pdf",
      "createdAt": "20-Feb-2024 09:00:00"
    },
    {
      "id": 25,
      "title": "project-logo.png",
      "ext": "png",
      "size": 51200,
      "url": "https://storage.taskip.net/tenant-123/files/project-logo.png",
      "createdAt": "21-Feb-2024 14:30:45"
    },
    {
      "id": 30,
      "title": "technical-specs.docx",
      "ext": "docx",
      "size": 128000,
      "url": "https://storage.taskip.net/tenant-123/files/technical-specs.docx",
      "createdAt": "22-Feb-2024 16:20:10"
    }
  ]
}

Get Project Discussions

Get discussions in a project.

GET /api/public-v1/project/{uuid}/discussion

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Example Response

{
  "data": [
    {
      "id": 5,
      "status": "active",
      "msg_content": "Let's discuss the system architecture for the e-commerce platform. I think we should consider microservices approach.",
      "user_id": 5,
      "project_id": 26,
      "createdAt": "2 hours ago",
      "user": {
        "id": 5,
        "uuid": "user_mno345pqr678",
        "name": "Mike Wilson",
        "media": {
          "id": 25,
          "title": "mike_avatar.jpg",
          "ext": "jpg",
          "size": 15360,
          "url": "https://storage.taskip.net/tenant-123/avatars/mike_avatar.jpg",
          "createdAt": "15-Jan-2024 10:20:30"
        },
        "email": "mike@company.com"
      },
      "attachment": {
        "id": 30,
        "title": "architecture_diagram.png",
        "ext": "png",
        "size": 256000,
        "url": "https://storage.taskip.net/tenant-123/files/architecture_diagram.png",
        "createdAt": "21-Feb-2024 11:00:15"
      }
    },
    {
      "id": 6,
      "status": "active",
      "msg_content": "Great idea! I agree with the microservices approach. We should also consider using Docker for containerization.",
      "user_id": 3,
      "project_id": 26,
      "createdAt": "1 hour ago",
      "user": {
        "id": 3,
        "uuid": "user_abc123def456",
        "name": "Sarah Johnson",
        "media": {
          "id": 15,
          "title": "sarah_avatar.jpg",
          "ext": "jpg",
          "size": 12800,
          "url": "https://storage.taskip.net/tenant-123/avatars/sarah_avatar.jpg",
          "createdAt": "10-Jan-2024 09:15:45"
        },
        "email": "sarah@company.com"
      },
      "attachment": null
    }
  ]
}

Create Discussion

Create a new discussion in a project.

POST /api/public-v1/project/{uuid}/discussion

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
msgstringYesDiscussion message content
attachmentarrayNoArray of attachment/media IDs

Example Response

{
  "msg": "Message Send Successfully",
  "data": {
    "id": 7,
    "status": "active",
    "msg_content": "I've reviewed the project timeline and made some suggestions for optimization.",
    "user_id": 8,
    "project_id": 26,
    "createdAt": "just now",
    "user": {
      "id": 8,
      "uuid": "user_ghi789jkl012",
      "name": "David Chen",
      "media": {
        "id": 20,
        "title": "david_avatar.jpg",
        "ext": "jpg",
        "size": 18432,
        "url": "https://storage.taskip.net/tenant-123/avatars/david_avatar.jpg",
        "createdAt": "12-Jan-2024 14:30:20"
      },
      "email": "david@company.com"
    },
    "attachment": {
      "id": 35,
      "title": "timeline_suggestions.pdf",
      "ext": "pdf",
      "size": 128000,
      "url": "https://storage.taskip.net/tenant-123/files/timeline_suggestions.pdf",
      "createdAt": "23-Feb-2024 14:00:30"
    }
  }
}

Get Discussion Files

Get files from project discussions.

GET /api/public-v1/project/{uuid}/discussion/files

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Example Response

{
  "data": [
    {
      "id": 30,
      "title": "architecture_diagram.png",
      "ext": "png",
      "size": 256000,
      "url": "https://storage.taskip.net/tenant-123/files/architecture_diagram.png",
      "createdAt": "21-Feb-2024 11:00:15"
    },
    {
      "id": 35,
      "title": "timeline_suggestions.pdf",
      "ext": "pdf",
      "size": 128000,
      "url": "https://storage.taskip.net/tenant-123/files/timeline_suggestions.pdf",
      "createdAt": "23-Feb-2024 14:00:30"
    },
    {
      "id": 42,
      "title": "tech_stack_comparison.xlsx",
      "ext": "xlsx",
      "size": 87040,
      "url": "https://storage.taskip.net/tenant-123/files/tech_stack_comparison.xlsx",
      "createdAt": "24-Feb-2024 09:45:10"
    }
  ]
}

Create Container

Create a new container/column for tasks.

POST /api/public-v1/project/{uuid}/container

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
namestringYesContainer name
colorstringNoContainer color (hex)
orderintegerNoDisplay order

Example Response

{
  "msg": "New Container Added",
  "data": {
    "id": 4,
    "project_uuid": "proj_xyz789ghi012",
    "title": "In Review",
    "color": "#FFA500",
    "order": 3,
    "created_at": "24/Feb/2024"
  }
}

Rename Container

Rename an existing container.

PUT /api/public-v1/project/{uuid}/container/{id}/rename

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesContainer ID

Request Body

FieldTypeRequiredDescription
namestringYesNew container name

Example Response

{
  "msg": "Title changed"
}

Change Container Color

Change the color of a container.

POST /api/public-v1/project/{uuid}/container/{id}/change-color

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesContainer ID

Request Body

FieldTypeRequiredDescription
colorstringYesNew color (hex)

Example Response

{
  "msg": "Color changed"
}

Change Container Order

Change the display order of containers.

POST /api/public-v1/project/{uuid}/container/change-order

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID

Request Body

FieldTypeRequiredDescription
orderarrayYesArray of order objects with container_id and order fields

Example Response

{
  "msg": "Order changed"
}

Delete Container

Delete a container from the project.

DELETE /api/public-v1/project/{uuid}/container/{id}/delete

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesContainer ID

Example Response

{
  "msg": "Container deleted"
}

Move All Tasks

Move all tasks from one container to another.

POST /api/public-v1/project/{uuid}/container/{id}/move-all-tasks

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesProject UUID
idintegerYesSource container ID

Request Body

FieldTypeRequiredDescription
target_container_idintegerYesTarget container ID

Example Response

{
  "msg": "Container Move All Task Successfully"
}

Get All Attributes

Get all project attributes (tags, categories, etc.).

GET /api/public-v1/project/attribute/all

Example Response

{
  "data": [
    {
      "id": 1,
      "title": "backend",
      "color": "#4285F4",
      "type": "tag"
    },
    {
      "id": 2,
      "title": "frontend",
      "color": "#34A853",
      "type": "tag"
    },
    {
      "id": 3,
      "title": "Development",
      "color": "#2196F3",
      "type": "category"
    },
    {
      "id": 4,
      "title": "Design",
      "color": "#9C27B0",
      "type": "category"
    },
    {
      "id": 5,
      "title": "low",
      "color": "#999999",
      "type": "priority"
    },
    {
      "id": 6,
      "title": "medium",
      "color": "#FFA500",
      "type": "priority"
    },
    {
      "id": 7,
      "title": "high",
      "color": "#FF0000",
      "type": "priority"
    }
  ],
  "links": {
    "first": "https://public-api.taskip.net/api/public-v1/project/attribute/all?page=1",
    "last": "https://public-api.taskip.net/api/public-v1/project/attribute/all?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://public-api.taskip.net/api/public-v1/project/attribute/all",
    "per_page": 15,
    "to": 7,
    "total": 7
  }
}

Create Attribute

Create a new project attribute.

POST /api/public-v1/project/attribute

Request Body

FieldTypeRequiredDescription
titlestringYesAttribute title (max 191 characters)
colorstringYesColor hex code (max 50 characters)
typestringYesAttribute type enum value

Example Response

{
  "msg": "Project Attribute Created Successfully",
  "data": {
    "id": 8,
    "title": "database",
    "color": "#FF9800",
    "type": "tag"
  }
}

Update Attribute

Update an existing attribute.

PUT /api/public-v1/project/attribute/{id}/update

Path Parameters

ParameterTypeRequiredDescription
idintegerYesAttribute ID

Request Body

FieldTypeRequiredDescription
titlestringYesAttribute title (max 191 characters)
colorstringYesColor hex code (max 50 characters)
typestringYesAttribute type enum value

Example Response

{
  "msg": "Project Attribute Updated"
}

Delete Attribute

Delete an attribute.

DELETE /api/public-v1/project/attribute/{id}/delete

Path Parameters

ParameterTypeRequiredDescription
idintegerYesAttribute ID

Example Response

{
  "msg": "Project Attribute Deleted"
}

Bulk Update Tags

Bulk update tags for multiple projects/tasks.

POST /api/public-v1/project/attribute/tags/update

Request Body

FieldTypeRequiredDescription
titlestringYesAttribute title (max 191 characters)
colorstringYesColor hex code (max 50 characters)
typestringYesAttribute type enum value

Example Response

{
  "msg": "Project Attribute Updated"
}

Bulk Update Categories

Bulk update categories for multiple projects.

POST /api/public-v1/project/attribute/categories/update

Request Body

FieldTypeRequiredDescription
project_idsarrayYesArray of project IDs to update
category_idintegerYesCategory ID to apply to projects

Example Response

{
  "msg": "Project Category Updated"
}

Error Responses

Common Error Codes

Status CodeError TypeDescription
400Bad RequestInvalid request data
401UnauthorizedInvalid or missing X-Secret-Key
403ForbiddenInsufficient permissions
404Not FoundResource not found
422Validation ErrorRequest validation failed
429Too Many RequestsRate limit exceeded

Example Error Response

{
  "status": 422,
  "error": "Validation Error",
  "message": "The given data was invalid",
  "errors": {
    "name": ["The name field is required."],
    "start_date": ["The start date must be before end date."]
  }
}