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/project
Request Headers
X-Secret-Key: your-secret-key-here
Content-Type: application/json
Query 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/project
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 |
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/activity
Request 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}/activity
Path 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/list
Request 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-priority
Path 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-status
Path 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-category
Path 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}/task
Path 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}/task
Path 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-order
Path 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-container
Path 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-priority
Path 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-complete
Path 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}/label
Path 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}/label
Path 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}/assignee
Path 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}/assignee
Path 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}/document
Path 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}/document
Path 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}/document
Path 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}/comment
Path 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}/comment
Path 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}/comment
Path 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/files
Path 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}/files
Path 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}/files
Path 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}/files
Path 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}/files
Path 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}/discussion
Path 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}/discussion
Path 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/files
Path 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}/container
Path 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}/rename
Path 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-color
Path 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-order
Path 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}/delete
Path 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-tasks
Path 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/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
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}/update
Path 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}/delete
Path 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/update
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"
}
Bulk Update Categories
Bulk update categories for multiple projects.
POST /api/public-v1/project/attribute/categories/update
Request 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."]
}
}