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
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project | Get all projects |
POST | /api/public-v1/project | Create 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/activity | Get dashboard activities |
POST | /api/public-v1/project/{uuid}/activity | Get project activities |
POST | /api/public-v1/project/all-tasks/list | Get all tasks list |
POST | /api/public-v1/project/{uuid}/change-priority | Change project priority |
POST | /api/public-v1/project/{uuid}/change-status | Change project status |
POST | /api/public-v1/project/{uuid}/change-category | Change project category |
Task Management
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project/{uuid}/task | Get all tasks in project |
POST | /api/public-v1/project/{uuid}/task | Create 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-order | Change task order |
POST | /api/public-v1/project/{uuid}/task/{id}/change-container | Change task container |
POST | /api/public-v1/project/{uuid}/task/{id}/change-priority | Change task priority |
POST | /api/public-v1/project/{uuid}/task/{id}/mark-as-complete | Mark task as complete |
Task Labels & Assignees
| Method | Endpoint | Description |
|---|---|---|
POST | /api/public-v1/project/{uuid}/task/{id}/label | Add label to task |
DELETE | /api/public-v1/project/{uuid}/task/{id}/label | Remove label from task |
POST | /api/public-v1/project/{uuid}/task/{id}/assignee | Add assignee to task |
DELETE | /api/public-v1/project/{uuid}/task/{id}/assignee | Remove assignee from task |
Task Documents & Comments
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project/{uuid}/task/{id}/document | Get task documents |
POST | /api/public-v1/project/{uuid}/task/{id}/document | Add document to task |
DELETE | /api/public-v1/project/{uuid}/task/{id}/document | Remove document from task |
GET | /api/public-v1/project/{uuid}/task/{id}/comment | Get task comments |
POST | /api/public-v1/project/{uuid}/task/{id}/comment | Add comment to task |
DELETE | /api/public-v1/project/{uuid}/task/{id}/comment | Remove comment from task |
Task Files Management
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project/{uuid}/task/files | Get all task files in project |
GET | /api/public-v1/project/{uuid}/task/{id}/files | Get task files |
POST | /api/public-v1/project/{uuid}/task/{id}/files | Upload file to task |
DELETE | /api/public-v1/project/{uuid}/task/{id}/files | Delete file from task |
GET | /api/public-v1/project/{uuid}/files | Get all project files |
Discussion Management
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project/{uuid}/discussion | Get project discussions |
POST | /api/public-v1/project/{uuid}/discussion | Create new discussion |
GET | /api/public-v1/project/{uuid}/discussion/files | Get discussion files |
Container Management (Kanban/Board)
| Method | Endpoint | Description |
|---|---|---|
POST | /api/public-v1/project/{uuid}/container | Create new container |
PUT | /api/public-v1/project/{uuid}/container/{id}/rename | Rename container |
POST | /api/public-v1/project/{uuid}/container/{id}/change-color | Change container color |
POST | /api/public-v1/project/{uuid}/container/change-order | Change container order |
DELETE | /api/public-v1/project/{uuid}/container/{id}/delete | Delete container |
POST | /api/public-v1/project/{uuid}/container/{id}/move-all-tasks | Move all tasks from container |
Project Attributes
| Method | Endpoint | Description |
|---|---|---|
GET | /api/public-v1/project/attribute/all | Get all project attributes |
POST | /api/public-v1/project/attribute | Create new attribute |
PUT | /api/public-v1/project/attribute/{id}/update | Update attribute |
DELETE | /api/public-v1/project/attribute/{id}/delete | Delete attribute |
POST | /api/public-v1/project/attribute/tags/update | Bulk update tags |
POST | /api/public-v1/project/attribute/categories/update | Bulk update categories |
Get All Projects
Retrieve a list of all projects in your system.
GET /api/public-v1/projectRequest Headers
X-Secret-Key: your-secret-key-here
Content-Type: application/jsonQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number for pagination (default: 1) |
limit | integer | No | Number of projects per page (default: 50) |
search | string | No | Search term for project name or description |
sort | string | No | Sort field (name, status, start_date, end_date, created_at) |
order | string | No | Sort order (asc or desc) |
status | string | No | Filter by status |
client_id | integer | No | Filter by client ID |
assigned_to | integer | No | Filter 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/projectRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Project title (max 191 characters) |
description | string | No | Project description |
priority | integer | Yes | Priority level (1-5) |
privacy | integer | Yes | Privacy setting (0=Private, 1=Public) |
status | string | Yes | Project status enum value |
started_at | string | No | Start date |
ended_at | string | No | End date |
client | array | No | Array of client IDs |
created_by | integer | No | Creator user ID |
tags | array | No | Array of tag IDs |
category | array | No | Array of category IDs |
assignee | array | No | Array of assignee user IDs |
complete_status_id | integer | No | Completion status ID |
notify_client | boolean | No | Send notification to client |
project_manager | array | No | Array 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Project 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Project ID or UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Project title (max 191 characters) |
description | string | No | Project description |
priority | integer | Yes | Priority level (1-5) |
privacy | integer | Yes | Privacy setting (0=Private, 1=Public) |
status | string | Yes | Project status enum value |
started_at | string | No | Start date |
ended_at | string | No | End date |
client | array | No | Array of client IDs |
tags | array | No | Array of tag IDs |
category | array | No | Array of category IDs |
assignee | array | No | Array of assignee user IDs |
complete_status_id | integer | No | Completion status ID |
notify_client | boolean | No | Send notification to client |
project_manager | array | No | Array 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Project 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/activityRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of activities (default: 50) |
from_date | string | No | Filter from date |
to_date | string | No | Filter 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}/activityPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Number of activities |
page | integer | No | Page 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/listRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by status |
assigned_to | integer | No | Filter by assignee |
project_ids | array | No | Filter 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-priorityPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
priority | string | Yes | New 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-statusPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | New status |
Example Response
[
"Project Status Updated"
]Change Project Category
Change the category of a project.
POST /api/public-v1/project/{uuid}/change-categoryPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
category_id | integer | Yes | New category ID |
Example Response
[
"Project Category Updated"
]Get Project Tasks
Get all tasks in a project.
GET /api/public-v1/project/{uuid}/taskPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project 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}/taskPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
priority | string | No | Priority enum value |
description | string | No | Task description |
due_date | string | No | Due date |
order | integer | No | Task order in container |
container_id | integer | Yes | Container ID (must exist in project_task_containers) |
assignees | array | No | Array of assignee user IDs |
labels | array | No | Array of label IDs |
documents | array | No | Array 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
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task 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
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Task title |
priority | string | No | Priority enum value |
description | string | No | Task description |
due_date | string | No | Due date |
order | integer | No | Task order in container |
container_id | integer | Yes | Container ID (must exist in project_task_containers) |
assignees | array | No | Array of assignee user IDs |
labels | array | No | Array of label IDs |
documents | array | No | Array 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
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task 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-orderPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
container_id | integer | Yes | Target container ID |
order | array | Yes | Array 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-containerPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
container_id | integer | Yes | New container ID |
order | integer | No | Position 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-priorityPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
priority | string | Yes | New 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-completePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
is_completed | integer | Yes | Completion 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}/labelPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
label_id | integer | Yes | Label/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}/labelPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
label_id | integer | Yes | Label 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}/assigneePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
assignee_id | integer | Yes | User 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}/assigneePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
assignee_id | integer | Yes | User 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}/documentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task 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}/documentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
document_id | integer | Yes | Document 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}/documentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
document_id | integer | Yes | Document 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}/commentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task 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}/commentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
description | string | Yes | Comment 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}/commentPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
comment_id | integer | Yes | Comment 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/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project 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}/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task 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}/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
file_id | integer | Yes | Media/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}/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Task ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
file_id | integer | Yes | Media/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}/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project 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}/discussionPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project 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}/discussionPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
msg | string | Yes | Discussion message content |
attachment | array | No | Array 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/filesPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project 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}/containerPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Container name |
color | string | No | Container color (hex) |
order | integer | No | Display 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}/renamePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Container ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | New 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-colorPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Container ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
color | string | Yes | New color (hex) |
Example Response
{
"msg": "Color changed"
}Change Container Order
Change the display order of containers.
POST /api/public-v1/project/{uuid}/container/change-orderPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
order | array | Yes | Array 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}/deletePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Container 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-tasksPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Project UUID |
id | integer | Yes | Source container ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
target_container_id | integer | Yes | Target 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/allExample 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/attributeRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Attribute title (max 191 characters) |
color | string | Yes | Color hex code (max 50 characters) |
type | string | Yes | Attribute 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}/updatePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Attribute ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Attribute title (max 191 characters) |
color | string | Yes | Color hex code (max 50 characters) |
type | string | Yes | Attribute type enum value |
Example Response
{
"msg": "Project Attribute Updated"
}Delete Attribute
Delete an attribute.
DELETE /api/public-v1/project/attribute/{id}/deletePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Attribute ID |
Example Response
{
"msg": "Project Attribute Deleted"
}Bulk Update Tags
Bulk update tags for multiple projects/tasks.
POST /api/public-v1/project/attribute/tags/updateRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Attribute title (max 191 characters) |
color | string | Yes | Color hex code (max 50 characters) |
type | string | Yes | Attribute 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/updateRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
project_ids | array | Yes | Array of project IDs to update |
category_id | integer | Yes | Category ID to apply to projects |
Example Response
{
"msg": "Project Category Updated"
}Error Responses
Common Error Codes
| Status Code | Error Type | Description |
|---|---|---|
400 | Bad Request | Invalid request data |
401 | Unauthorized | Invalid or missing X-Secret-Key |
403 | Forbidden | Insufficient permissions |
404 | Not Found | Resource not found |
422 | Validation Error | Request validation failed |
429 | Too Many Requests | Rate 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."]
}
}