Query project tasks
Retrieve a list of project tasks
/project/PROJECT-ID/tasks
Parameters
Name |
Required |
Default |
Type/Format |
Description |
closed |
no |
False |
Boolean |
set to true to retrieve all open and closed tasks |
subfolders |
no |
False |
Boolean |
if set to true returns tasks from project it's subfolders |
Response
Sample response →
[
{
"id": "TASK-ID",
"shortId": "75",
"actionRequiredUserId": USER-ID,
"assignedToUserId": "USER-ID",
"createdByUserId": "USER-ID",
"customFieldsData": {},
"deadline": null,
"endDate": null,
"estimate": null,
"momentClosed": null,
"momentCreated": "2018-09-07T19:35:32.09136",
"name": "Sample task name",
"parentTaskId": null,
"priority": 5,
"progress": null,
"projectId": "PROJECT-ID",
"recentActivityMoment": "2018-10-30T15:15:20.437519",
"reportedTime": null,
"scheduleDate": null,
"scheduleStatus": 0,
"startDate": null,
"status": {
"id": "STATUS-ID",
"name": "New"
},
"systemStatus": 1,
"systemType": 1,
"taskType": {
"id": "TASK-TYPE-ID",
"name": "Task"
},
"users": [
"USER-ID",
"USER-ID"
]
},
...
]
Query user action required tasks
Retrieve a list of action required tasks for a selected user
/user/USER-ID/action-required-tasks
Response
Sample response →
[
{
"id": "TASK-ID",
"shortId": "75",
"actionRequiredUserId": USER-ID,
"assignedToUserId": "USER-ID",
"createdByUserId": "USER-ID",
"customFieldsData": {},
"deadline": null,
"endDate": null,
"estimate": null,
"momentClosed": null,
"momentCreated": "2018-09-07T19:35:32.09136",
"name": "Sample task name",
"parentTaskId": null,
"priority": 5,
"progress": null,
"projectId": "PROJECT-ID",
"recentActivityMoment": "2018-10-30T15:15:20.437519",
"reportedTime": null,
"scheduleDate": null,
"scheduleStatus": 0,
"startDate": null,
"status": {
"id": "STATUS-ID",
"name": "New"
},
"systemStatus": 1,
"systemType": 1,
"taskType": {
"id": "TASK-TYPE-ID",
"name": "Task"
},
"users": [
"USER-ID",
"USER-ID"
]
},
...
]
Query user assigned tasks
Retrieve a list of tasks assigned to selected user
/user/USER-ID/assigned-tasks
Parameters
Name |
Required |
Default |
Type/Format |
Description |
closed |
no |
False |
Boolean |
set to true to retrieve all open and closed tasks |
Response
Sample response →
[
{
"id": "TASK-ID",
"shortId": "75",
"actionRequiredUserId": USER-ID,
"assignedToUserId": "USER-ID",
"createdByUserId": "USER-ID",
"customFieldsData": {},
"deadline": null,
"endDate": null,
"estimate": null,
"momentClosed": null,
"momentCreated": "2018-09-07T19:35:32.09136",
"name": "Sample task name",
"parentTaskId": null,
"priority": 5,
"progress": null,
"projectId": "PROJECT-ID",
"recentActivityMoment": "2018-10-30T15:15:20.437519",
"reportedTime": null,
"scheduleDate": null,
"scheduleStatus": 0,
"startDate": null,
"status": {
"id": "STATUS-ID",
"name": "New"
},
"systemStatus": 1,
"systemType": 1,
"taskType": {
"id": "TASK-TYPE-ID",
"name": "Task"
},
"users": [
"USER-ID",
"USER-ID"
]
},
...
]
Get task
Retrieve task details
/task/TASK-ID
Response
Sample response →
{
"id": "Xudir1",
"name": "Task title",
"actionRequiredUserId": null,
"assignedToUserId": "huiw87",
"createdByUserId": "huiw87",
"customFieldsData": {},
"deadline": null,
"endDate": null,
"estimate": null,
"momentClosed": null,
"momentCreated": "2017-11-21T18:44:13.44853",
"parentTaskId": null,
"priority": 5,
"progress": null,
"projectId": "deJCVA",
"recentActivityMoment": "2018-07-26T02:34:21.019378",
"reportedTime": null,
"scheduleDate": null,
"scheduleStatus": 0,
"shortId": "2955",
"startDate": null,
"status": {
"id": "L0MvEM",
"name": "Not started"
},
"subtasks": [],
"systemStatus": 1,
"systemType": 1,
"taskType": {
"id": "6h9Lee",
"name": "Task"
},
"users": [
"xcCyuq",
"huiw87"
]
}
Create task
Create new task
/tasks
Parameters
Name |
Required |
Type/Format |
Description |
projectId |
yes |
String |
Task project ID |
parentTaskId |
no |
String |
Pass parent task ID to create a subtask |
title |
yes |
String |
Task title |
message |
no |
String |
Task description / initial message |
fromUserId |
yes |
String |
Task created by user ID |
toUserId |
no |
String |
Assigned To/Action required user ID |
taskTypeId |
no |
String |
Task type ID |
startDate |
no |
YYYY-MM-DD |
Task start date (schedule date if no endDate specified) |
endDate |
no |
YYYY-MM-DD |
Task end date |
deadline |
no |
YYYY-MM-DD |
Task deadline (due date) |
estimate |
no |
Integer |
Task estimate in minutes |
priority |
no |
Integer |
Task priority (1-10), 50 - Blocker, 100 - Emergency |
Sample CURL →
curl -X POST
https://api.goodday.work/2.0/tasks
-H "Content-Type: application/json"
-H "gd-api-token: AUTH-TOKEN"
-d '{
"title": "New Task Title",
"projectId": "PROJECT-ID",
"fromUserId": "USER1-ID",
"toUserId": "USER2-ID",
"estimate": 120,
"startDate": "2019-09-25",
"endDate": "2019-09-27"
}'
Response
Sample response →
{
"id": "TASK-ID",
"momentCreated": "2018-09-20 20:14:34.636937",
"shortId": "7693"
}
Query task messages
Retrieve a list of task messages
/task/TASK-ID/messages
Response
Sample response →
[
{
"id": "TASK-MESSAGES-ID",
"dateCreated": "2020-01-01T10:00:00",
"communicationFlow": 2,
"fromUserId": "USER-ID",
"toUserId": "ACTION-REQUIRED-USER-ID"
"message": "Lorem ipsum",
"messageRTF": {
...
},
"editByUserId": null,
"editDate": null,
"taskStatusId": "NEW-STATUS-ID",
"taskSystemStatusNew": null,
"timeReportId": "TIME-REPORT-ID",
}
...
]
Comment
Create task comment.
/task/TASK-ID/comment
Parameters
Name |
Required |
Type/Format |
Description |
userId |
yes |
String |
User on behalf of whom API will execute update |
message |
no |
String |
Comment |
Reply / Change AR user
Reply or change AR user.
/task/TASK-ID/reply
Parameters
Name |
Required |
Type/Format |
Description |
userId |
yes |
String |
User on behalf of whom API will execute update |
actionRequiredUsedId |
yes |
String |
Action required user |
message |
no |
String |
Comment |
Update status
Update task status.
/task/TASK-ID/status
Parameters
Name |
Required |
Type/Format |
Description |
userId |
yes |
String |
User on behalf of whom API will execute update |
statusId |
yes |
String |
New status ID |
message |
no |
String |
Comment |
Update task
Update task parameters. All the parameters are optional and won't be updated if not passed. Set to null to reset.
/task/TASK-ID/update
Parameters
Name |
Required |
Type/Format |
Description |
userId |
yes |
String |
User on behalf of whom API will execute update |
start-date |
no |
YYYY-MM-DD |
Task start date, 'null' to reset |
end-date |
no |
YYYY-MM-DD |
Task end date, 'null' to reset |
deadline |
no |
YYYY-MM-DD |
Task deadline (due date), 'null' to reset |
priority |
no |
Integer |
Task priority (1-10), 50 - Blocker, 100 - Emergency |
estimate |
no |
Integer |
Task estimate in minutes, 'null' to reset |
progress |
no |
Integer |
Task progress percentage (0-100) or 'null' to reset |
title |
no |
String |
Task title |
Sample CURL →
curl -X PUT
https://api.goodday.work/2.0/task/TASK-ID/update
-H "Content-Type: application/json"
-H "gd-api-token: AUTH-TOKEN"
-d '{
"userId": "USER-ID",
"start-date":"2020-02-15",
"end-date":"2020-01-10",
"deadline":"2020-02-10",
"priority":10,
"estimate":100,
"progress":70,
"title":"Updated task title"
}'
Delete Task
Delete a Task
/task/TASK-ID
By deleting a task you also delete all task's related data including time reports, sub tasks, etc. It is recommended to cancel tasks (by updating status) instead of deleting.