MS-Project API (1.0)

Download OpenAPI specification:

Project and Task Management API built with Go, Fiber, and GORM

projects

List projects with pagination

Get list of projects with optional filtering and pagination

Authorizations:
Bearer
query Parameters
page
integer
Default: 1

Page number

limit
integer
Default: 10

Items per page

search
string

Search in name/description

sortBy
string

Field to sort by

sortOrder
string
Enum: "asc" "desc"

Sort order (asc/desc)

status
string

Filter by project status

customerId
string

Filter by customer ID

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "meta": {
    }
}

Create a new project

Create a new project with products, participants, and documents

Authorizations:
Bearer
Request Body schema: application/json
required

Create Project Request

contractValue
required
integer >= 0
currency
string
customerId
required
string
description
string
documentFileIds
Array of strings
name
required
string
participantIds
Array of strings
Array of objects (ms-project_internal_dto.CreateProductRequest)
replyDate
required
string

Responses

Request samples

Content type
application/json
{
  • "contractValue": 0,
  • "currency": "string",
  • "customerId": "string",
  • "description": "string",
  • "documentFileIds": [
    ],
  • "name": "string",
  • "participantIds": [
    ],
  • "products": [
    ],
  • "replyDate": "string"
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get project by unique code

Get detailed information of a specific project by its unique code

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code (e.g., PRJ-2024-001)

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Delete a project

Soft delete a project by unique code

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Update project by unique code

Update an existing project's information

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

Request Body schema: application/json
required

Update Project Request

contractValue
integer >= 0
currency
string
description
string
documentFileIds
Array of strings
name
string
participantIds
Array of strings
progress
string (ms-project_internal_enums.ProjectProgress)
Enum: "technical_negotiating" "bidding" "waiting_for_contract" "contract_negotiating" "production_planning" "in_production" "delivering"
replyDate
string
status
string (ms-project_internal_enums.ProjectStatus)
Enum: "pending" "order_placed" "canceled" "delivered" "awaiting_payment" "completed" "need_update" "approved"

Responses

Request samples

Content type
application/json
{
  • "contractValue": 0,
  • "currency": "string",
  • "description": "string",
  • "documentFileIds": [
    ],
  • "name": "string",
  • "participantIds": [
    ],
  • "progress": "technical_negotiating",
  • "replyDate": "string",
  • "status": "pending"
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Approve a project

Change project status to approved

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Count project resources

Get count of various resources associated with a project

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

query Parameters
resourceTypes
Array of strings

Resource types to count

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

Get project expenses

Get total expenses and breakdown for a project

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Update project progress

Update the progress status of a project

Authorizations:
Bearer
path Parameters
uniqueCode
required
string

Project unique code

Request Body schema: application/json
required

Progress Update Request

progress
required
string (ms-project_internal_enums.ProjectProgress)
Enum: "technical_negotiating" "bidding" "waiting_for_contract" "contract_negotiating" "production_planning" "in_production" "delivering"

Responses

Request samples

Content type
application/json
{
  • "progress": "technical_negotiating"
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

tasks

Create a new task

Create a new task with participants, tags, and attachments

Authorizations:
Bearer
Request Body schema: application/json
required

Create Task Request

departmentId
required
string
description
string
endDate
required
string
fileId
string
name
required
string
parentId
string
participantIds
Array of strings
priority
required
string (ms-project_internal_enums.Priority)
Enum: "low" "medium" "high" "urgent"
projectUniqueCode
required
string
status
required
string
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "departmentId": "string",
  • "description": "string",
  • "endDate": "string",
  • "fileId": "string",
  • "name": "string",
  • "parentId": "string",
  • "participantIds": [
    ],
  • "priority": "low",
  • "projectUniqueCode": "string",
  • "status": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get tasks assigned to current user

Get all tasks assigned to the authenticated user

Authorizations:
Bearer
query Parameters
page
integer
Default: 1

Page number

limit
integer
Default: 10

Items per page

search
string

Search in name/description

status
string

Filter by task status

priority
string

Filter by priority

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "meta": {
    }
}

Get combined tasks with comments and activities

Get tasks with nested comments and activities for a project

Authorizations:
Bearer
path Parameters
projectId
required
string

Project ID

query Parameters
page
integer
Default: 1

Page number

limit
integer
Default: 10

Items per page

includeComments
boolean

Include task comments

includeActivities
boolean

Include task activities

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "meta": {
    }
}

Get task filter metadata

Get available filter options with counts for faceted search

Authorizations:
Bearer
path Parameters
projectId
required
string

Project ID

query Parameters
filters[status]
string

Filter by status (comma-separated)

filters[priority]
string

Filter by priority (comma-separated)

filters[departmentId]
string

Filter by department (comma-separated)

filters[tags]
string

Filter by tags (comma-separated)

searches[name]
string

Search in name

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get task summary for a project

Get task statistics by status, priority, and department

Authorizations:
Bearer
path Parameters
projectId
required
string

Project ID

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

List tasks for a project

Get paginated list of tasks for a specific project

Authorizations:
Bearer
path Parameters
projectId
required
string

Project ID

query Parameters
page
integer
Default: 1

Page number

limit
integer
Default: 10

Items per page

search
string

Search in name/description

sortBy
string

Field to sort by

sortOrder
string
Enum: "asc" "desc"

Sort order (asc/desc)

status
string

Filter by task status

priority
string

Filter by priority

departmentId
string

Filter by department

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "meta": {
    }
}

Get task by unique code

Get detailed information of a specific task by its unique code

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code (e.g., TSK-2024-001)

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Update task by unique code

Update an existing task's information

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Request Body schema: application/json
required

Update Task Request

departmentId
string
description
string
endDate
string
name
string
parentId
string

Pointer to allow null/empty distinction

participantIds
Array of strings
priority
string (ms-project_internal_enums.Priority)
Enum: "low" "medium" "high" "urgent"
status
string
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "departmentId": "string",
  • "description": "string",
  • "endDate": "string",
  • "name": "string",
  • "parentId": "string",
  • "participantIds": [
    ],
  • "priority": "low",
  • "status": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Delete a task

Soft delete a task by unique code

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Get task activities

Get activity history for a specific task

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Responses

Response samples

Content type
application/json
{
  • "property1": [
    ],
  • "property2": [
    ]
}

Get task comments

Get paginated list of comments for a specific task

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

query Parameters
page
integer
Default: 1

Page number

limit
integer
Default: 10

Items per page

sortBy
string

Field to sort by

sortOrder
string
Enum: "asc" "desc"

Sort order (asc/desc)

Responses

Response samples

Content type
application/json
{
  • "data": null,
  • "meta": {
    }
}

Add comment to task

Add a new comment to a specific task

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Request Body schema: application/json
required

Comment Request

attachmentIds
Array of strings
content
required
string
parentId
string

Responses

Request samples

Content type
application/json
{
  • "attachmentIds": [
    ],
  • "content": "string",
  • "parentId": "string"
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Toggle comment like/dislike

Toggle like or dislike reaction on a task comment

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Request Body schema: application/json
required

Like/Dislike Request

commentId
required
string
type
required
string (ms-project_internal_enums.TaskCommentReaction)
Enum: "like" "dislike"

Responses

Request samples

Content type
application/json
{
  • "commentId": "string",
  • "type": "like"
}

Response samples

Content type
application/json
{
  • "commentId": "string",
  • "dislikes": 0,
  • "likes": 0,
  • "userReaction": "string"
}

Delete task comment

Delete a specific comment from a task

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

commentId
required
string

Comment ID

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Update task status

Update the status of a specific task

Authorizations:
Bearer
path Parameters
unique_code
required
string

Task unique code

Request Body schema: application/json
required

Status Update Request

status
required
string

Responses

Request samples

Content type
application/json
{
  • "status": "string"
}

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}