Tasks

Getting the list of all account tasks through API: get_all_tasks

Sample get_all_tasks request

?action=get_all_tasks

Returns all incomplete and completed tasks of all projects *except tasks with delayed publication *subtasks can be returned with extra=subtasks parameter

Optional parameters:

  • extra — additional task info (can be specified with commas, for example extra=text,files):

  • text or html — description in text or html format

  • files — attached files info (in task description)

  • comments — five last comments

  • relations — dependencies with other tasks

  • subtasks — list of subtasks (in child dataset)

  • archive — tasks of archived projects

  • filter=active — incomplete tasks (completed tasks filtering is not available)

Returned data:

  • id — task ID

  • name — task name

  • page — task link

  • status — state (active/done — incomplete/completed)

  • priority — priority (value range: 0..10)

  • user_from and user_to — task author and task executive

  • project — project info

  • text — task description in text or html format (if request contains corresponding extra parameter)

  • date_added — creation date and time

  • date_start — start date (if specified)

  • date_end — due date (if specified)

  • date_closed — closing date and time

  • time_end — due time (if specified)

  • max_time and max_money — time and financial estimates (if specified)

  • tags — array in id: name format for task tags (if specified)

  • files — attached files info (if request contains extra=files parameter):

  • id — file ID (can be used for downloading through download method)

  • size — file size (in bytes)

  • name — file name with its extension

  • page — part of the link for direct download (for the full path put the address of your account in front, for example https://youraccount.worksection.com/download/123456)

  • relations — dependencies with other tasks (if request contains extra=relations parameter):

  • from — inbound dependencies:

  • type — dependency type finish-to-start/start-to-start

  • task — linked task

  • to — outbound dependencies (similar to from)

  • child — subtasks data (if request contains extra=subtasks parameter)

Sample JSON response

If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_1",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_NAME",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY—MM—DD HH:II",
            "date_start": "YYYY—MM—DD",
            "date_end": "YYYY—MM—DD",
            "date_closed": "YYYY—MM—DD HH:II",
            "time_end": "HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": {
                "TAG_ID": "TAG_NAME_1",
                "TAG_ID": "TAG_NAME_2"
            },
            "files": [
                {
                    "id": "FILE_ID",
                    "size": "FILE_SIZE",
                    "name": "Example.docx",
                    "page": "/download/FILE_ID"
                }
            ],
            "relations": {
                "to": [
                    {
                        "type": "finish-to-start",
                        "task": {
                            "id": "SUBTASK_ID",
                            "name": "SUBTASK_NAME",
                            "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                            "status": "active",
                            "priority": "0..10"
                        }
                    }
                ],
                "from": [
                    {
                        "type": "start-to-start",
                        "task": {
                            "id": "SUBTASK_ID",
                            "name": "SUBTASK_NAME",
                            "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                            "status": "done",
                            "priority": "0..10"
                        }
                    }
                ]
            },
            "child": [
                {
                    "id": "SUBTASK_ID",
                    "name": "SUBTASK_NAME_1",
                    "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                    ... ... ...,
                    "child": [
                        {
                         "id": "SUBTASK_ID",
                         "name": "SUBTASK_NAME_2",
                         "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                         ... ... ...
                        }
                    ]
                }
            ]    
        },
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_2",
            "page": "/project/PROJECT_ID/TASK_ID/",
            ... ... ...
        }
    ]
}

Getting the list of project tasks through API: get_tasks

Sample get_tasks request

?action=get_tasks&id_project=PROJECT_ID

Returns all incomplete and completed tasks of selected project

*except tasks with delayed publication

*subtasks can be returned with extra=subtasks parameter

Required parameters:

  • id_project — project ID

Optional parameters:

  • extra — additional task info (can be specified with commas, for example extra=text,files):

  • text or html — description in text or html format

  • files — attached files info (in task description)

  • comments — five last comments

  • relations — dependencies with other tasks

  • subtasks — subtasks list (in child dataset)

  • subscribers — subscribers list

  • filter=active — incomplete tasks (completed tasks filtering is not available)

Returned data on tasks/subtasks:

  • id — task ID

  • name — task name

  • page — task link

  • status — state (active/done — incomplete/completed)

  • priority — priority (value range: 0..10)

  • user_from and user_to — task author and task executive

  • project — project info

  • text — task description in text or html format (if request contains corresponding extra parameter)

  • date_added — creation date and time

  • date_start — start date (if specified)

  • date_end — due date (if specified)

  • date_closed — closing date and time

  • time_end — due time (if specified)

  • max_time and max_money — time and financial estimates (if specified)

  • tags — array in id: name format for task tags (if specified)

  • files — attached files info (if request contains extra=files parameter):

  • id — file ID (can be used for downloading through download method)

  • size — file size (in bytes)

  • name — file name with its extension

  • page — part of the link for direct download (for the full path put the address of your account in front, for example https://youraccount.worksection.com/download/123456)

  • subscribers — subscribers list (if request contains extra=subscribers parameter)

  • relations — dependencies with other tasks (if request contains extra=relations parameter):

  • from — inbound dependencies:

  • type — dependency type finish-to-start/start-to-start

  • task — linked task

  • to — outbound dependencies (similar to from)

  • child — subtasks data (if request contains extra=subtasks parameter)

Sample JSON response

If the request succeeds, the response will contain ok status and the following data:

{
    "status": "ok",
    "data": [
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_1",
            "page": "/project/PROJECT_ID/TASK_ID/",
            "status": "done",
            "priority": "0..10",
            "user_from": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "user_to": {
                "id": "USER_ID",
                "email": "USER_EMAIL",
                "name": "USER_NAME"
            },
            "project": {
                "id": "PROJECT_ID",
                "name": "PROJECT_NAME",
                "page": "/project/PROJECT_ID/"
            },
            "text": "TASK_TEXT",
            "date_added": "YYYY—MM—DD HH:II",
            "date_start": "YYYY—MM—DD",
            "date_end": "YYYY—MM—DD",
            "date_closed": "YYYY—MM—DD HH:II",
            "time_end": "HH:II",
            "max_time": "50",
            "max_money": "100",
            "tags": {
                "TAG_ID": "TAG_NAME_1",
                "TAG_ID": "TAG_NAME_2"
            },
            "files": [
                {
                    "id": "FILE_ID",
                    "size": "FILE_SIZE",
                    "name": "Example.docx",
                    "page": "/download/FILE_ID"
                }
            ],
            "subscribers": [
                {
                    "id": "USER_ID",
                    "email": "USER_EMAIL",
                    "name": "USER_NAME_1"
                },
                {
                    "id": "USER_ID",
                    "email": "USER_EMAIL",
                    "name": "USER_NAME_2"
                }
            ],
            "relations": {
                "to": [
                    {
                        "type": "finish-to-start",
                        "task": {
                            "id": "SUBTASK_ID",
                            "name": "SUBTASK_NAME",
                            "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                            "status": "active",
                            "priority": "0..10"
                        }
                    }
                ],
                "from": [
                    {
                        "type": "start-to-start",
                        "task": {
                            "id": "SUBTASK_ID",
                            "name": "SUBTASK_NAME",
                            "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                            "status": "done",
                            "priority": "0..10"
                        }
                    }
                ]
            },
            "child": [
                {
                    "id": "SUBTASK_ID",
                    "name": "SUBTASK_NAME_1",
                    "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                    ... ... ...,
                    "child": [
                        {
                         "id": "SUBTASK_ID",
                         "name": "SUBTASK_NAME_2",
                         "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                         ... ... ...
                        }
                    ]
                }
            ]    
        },
        {
            "id": "TASK_ID",
            "name": "TASK_NAME_2",
            "page": "/project/PROJECT_ID/TASK_ID/",
            ... ... ...
        }
    ]
}

Getting a project task through API: get_task

Sample get_task request

?action=get_task&id_task=TASK_ID

Returns selected incomplete or completed (sub)task

*except (sub)tasks with delayed publication

*task along with its subtasks can be returned with extra=subtasks parameter

Required parameters:

  • id_task — task ID

Optional parameters:

  • extra — additional task info (can be specified with commas, for example extra=text,files):

  • text or html — description in text or html format

  • files — attached files info (in task description)

  • comments — five last comments

  • relations — dependencies with other tasks

  • subtasks — subtasks list (in child dataset)

  • subscribers — subscribers list

  • filter=active — only incomplete subtasks (when using extra=subtasks parameter) Completed subtasks filtering is not available

Returned data:

  • id — task ID

  • name — task name

  • page — task link

  • status — state (active/done — incomplete/completed)

  • priority — priority (value range: 0..10)

  • user_from and user_to — task author and task executive

  • project — project info

  • parent — parent task (if request contains subtask ID)

  • text — task description in text or html format (if request contains corresponding extra parameter)

  • date_added — creation date and time

  • date_start — start date (if specified)

  • date_end — due date (if specified)

  • date_closed — closing date and time

  • time_end — due time (if specified)

  • max_time and max_money — time and financial estimates (if specified)

  • tags — array in id: name format for task tags (if specified)

  • files — attached files info (if request contains extra=files parameter):

  • id — file ID (can be used for downloading through download method)

  • size — file size (in bytes)

  • name — file name with its extension

  • page — part of the link for direct download (for the full path put the address of your account in front, for example https://youraccount.worksection.com/download/123456)

  • subscribers — subscribers list (if request contains extra=subscribers parameter)

  • relations — dependencies with other tasks (if request contains extra=relations parameter):

  • from — inbound dependencies:

  • type — dependency type finish-to-start/start-to-start

  • task — linked task

  • to — outbound dependencies (similar to from)

  • child — subtasks data (only if task ID is specified and request contains extra=subtasks parameter)

Sample JSON response If the request succeeds, the response will contain ok status and the following data:

*for a task

{
    "status": "ok",
    "data": {
        "id": "TASK_ID",
        "name": "TASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/",
        "status": "active",
        "priority": "0..10",
        "user_from": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "user_to": {
            "id": "USER_ID",
            "email": "USER_EMAIL",
            "name": "USER_NAME"
        },
        "project": {
            "id": "PROJECT_ID",
            "name": "PROJECT_NAME",
            "page": "/project/PROJECT_ID/"
        },
        "text": "TASK_TEXT",
        "date_added": "YYYY-MM-DD HH:II",
        "date_start": "YYYY-MM-DD",
        "date_end": "YYYY-MM-DD",
        "date_closed": "YYYY-MM-DD HH:II",
        "time_end": "HH:II",
        "max_time": "25",
        "max_money": "50",
        "tags": {
            "TAG_ID": "TAG_NAME_1",
            "TAG_ID": "TAG_NAME_2"
        },
        "files": [
            {
                "id": "FILE_ID",
                "size": "FILE_SIZE",
                "name": "Example.docx",
                "page": "/download/FILE_ID"
            }
        ],
        "subscribers": [
            {
                 "id": "USER_ID",
                 "email": "USER_EMAIL",
                 "name": "USER_NAME_1"
            },
            {
                 "id": "USER_ID",
                 "email": "USER_EMAIL",
                 "name": "USER_NAME_2"
            }
        ],
        "relations": {
            "to": [
                {
                     "type": "finish-to-start",
                     "task": {
                         "id": "TASK_ID",
                         "name": "TASK_NAME",
                         "page": "/project/PROJECT_ID/TASK_ID/",
                         "status": "active",
                         "priority": "0..10"
                     }
                }
            ],
            "from": [
                {
                     "type": "start-to-start",
                     "task": {
                         "id": "TASK_ID",
                         "name": "TASK_NAME",
                         "page": "/project/PROJECT_ID/TASK_ID/",
                         "status": "done",
                         "priority": "0..10"
                     }
                }
            ]
        },
        "child": [
            {
                "id": "SUBTASK_ID",
                "name": "SUBTASK_NAME_1",
                "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                "status": "active",
                "priority": "0..10",
                "child": [
                    {
                     "id": "SUBTASK_ID",
                     "name": "SUBTASK_NAME_2",
                     "page": "/project/PROJECT_ID/TASK_ID/SUBTASK_ID/",
                     "status": "done",
                     "priority": "0..10"
                    }
                ]
            }
        ]
    }
}

*for a subtask/sub-subtask (identical response structure, only with additional parent dataset and without child dataset)

{
    "status": "ok",
    "data": {
        "id": "SUB-SUBTASK_ID",
        "name": "SUB-SUBTASK_NAME",
        "page": "/project/PROJECT_ID/TASK_ID/SUB-SUBTASK_ID/", 
        ... ... ...,
        "project": {
            ... ... ...
        },
        "parent": {
            "id": "SUBTASK_ID",
            "name": "SUBTASK_NAME",
            "page": "/project/PROJECT_ID/SUBTASK_ID/",
            "status": "active",
            "priority": "0..10",
            "parent": {
                "id": "TASK_ID",
                "name": "TASK_NAME",
                "page": "/project/PROJECT_ID/TASK_ID/",
                "status": "active",
                "priority": "0..10",
            }
        },
        "text": ...,
        ... ... ...
        "relations": {
            ... ... ...
        }
    }
}

Creating a task through API: post_task

Sample post_task request

?action=post_task&id_project=PROJECT_ID&title=TASK_NAME

Creates (sub)task in selected project *allows files attaching to (sub)task description (see details)

Required parameters:

  • id_project — project ID

  • title — task name

Optional parameters:

  • id_parent — parent task ID (creating subtask)

  • email_user_from — task author email (will be set automatically if using access token)

  • email_user_to — task executive email, additional possible values: ANY – "Anyone", NOONE or not specified – "Executive isn't assigned"

  • priority — priority (value range: 0..10)

  • text — task description

  • todo⦋⦌ — checkbox item added to task description (combine several items to get checklist, example: todo⦋⦌=case1&todo⦋⦌=case2)

  • datestart — start date in DD.MM.YYYY format

  • dateend — due date in DD.MM.YYYY format

  • subscribe — user emails separated by commas, who will be subscribed to the task

  • hidden — user emails separated by commas, who will have access to this task, while it will be hidden for others

  • mention — user emails separated by commas, who will be mentioned at the end of the task description

  • max_time — time estimates

  • max_money — financial estimates

  • tags — task tags separated by commas (for example: tags=TAG1,TAG2) You can specify names (if they are unique) or their IDs (can be obtained through get_task_tags method)


Sample JSON response

If the request succeeds, the response will contain ok status and the following data:

{    "status": "ok",    "data": {        "id": "TASK_ID",        "name": "TASK_NAME",        "page": "/project/PROJECT_ID/TASK_ID/",        "status": "active",        "priority": "0..10",        "user_from": {            "id": "USER_ID",              "email": "USER_EMAIL",            "name": "USER_NAME"        },        "user_to": {
            "id": "USER_ID",            "email": "USER_EMAIL",            "name": "USER_NAME"        },        "project": {            "id": "PROJECT_ID",            "name": "PROJECT_NAME",            "page": "/project/PROJECT_ID/"        },        "text": "TASK_TEXT",        "date_added": "YYYY—MM—DD HH:II",        "date_start": "YYYY—MM—DD",        "date_end": "YYYY—MM—DD",        "max_time": 40,        "max_money": 200,
        "tags": {
            "TAG_ID": "TAG_NAME_1",
            "TAG_ID": "TAG_NAME_2",

        }    }}

Updating a task through API: update_task

Sample update_task request

?action=update_task&id_task=TASK_ID&email_user_to=USER_EMAIL

Updates selected incomplete or completed (sub)task parameters

Required parameters:

  • id_task — task ID

Optional parameters:

  • email_user_to — task executive email, additional possible values: ANY – "Anyone", NOONE or not specified – "Executive isn't assigned"

  • priority — priority (value range: 0..10)

  • title — task name

  • datestart — start date in DD.MM.YYYY format

  • dateend — due date in DD.MM.YYYY format

  • dateclosed — closing date in DD.MM.YYYY format

  • max_time — time estimates

  • max_money — financial estimates

Parameters unavailable for editing:

  • email_user_from — task author

  • text — task description

  • todo — checklist

  • subscribe — users, who will be subscribed to the task

  • hidden — users, who will have access to this task, while it will be hidden for others

  • tags — task tags (can be updated through update_task_tags method)


Sample JSON response

If the request succeeds, the response will contain ok status and the following data:

{    "status": "ok",    "data": {        "id": "TASK_ID",        "name": "TASK_NAME",        "page": "/project/PROJECT_ID/TASK_ID/",        "status": "active",        "priority": "0..10",        "user_from": {
            "id": "USER_ID",
            "email": "USER_EMAIL",            "name": "USER_NAME"        },        "user_to": {
            "id": "USER_ID",
            "email": "USER_EMAIL",            "name": "USER_NAME"        },        "project": {            "id": "PROJECT_ID",            "name": "PROJECT_NAME",            "page": "/project/PROJECT_ID/"        },        "date_added": "YYYY-MM-DD HH:II",        "date_start": "YYYY-MM-DD",        "date_end": "YYYY-MM-DD",
        "max_time": 40,
        "max_money": 200,
        "tags": {
            "TAG_ID": "TAG_NAME_1",
            "TAG_ID": "TAG_NAME_2"
        }    }}

Closing a task through API: complete_task

Sample complete_task request

?action=complete_task&id_task=TASK_ID

Completes selected (sub)task

Required parameters:

  • id_task — task ID


Sample JSON response

If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Reopening a task through API: reopen_task

Sample reopen_task request

?action=reopen_task&id_task=TASK_ID

Reopens selected completed (sub)task

Required parameters:

  • id_task — task ID


Sample JSON response

If the request succeeds, the response will contain ok status

{
    "status": "ok"
}

Searching tasks through API: search_tasks

Sample search_tasks request

?action=search_tasks&id_project=PROJECT_ID&filter=(name has 'Report' or
name has 'Approval') and (dateend>'25.05.2021' and dateend<'31.05.2021')

Returns tasks that meet search query

Conditional parameters: *at least one of them required

  • id_project — project ID

  • id_task — task ID

  • email_user_from — task author email

  • email_user_to — task executive email

  • filter — search query (see description below)

Optional parameters:

  • status — task state, possible values: active/done — incomplete/completed

  • extra — additional task info (can be specified with commas, for example extra=text,files):

  • text or html — description in text or html format

  • files — attached files info (in task description)

Integer fields:

  • id=TASK_ID — returns particular task

  • project=PROJECT_ID — returns tasks of a particular project

  • parent=TASK_ID — returns subtasks of a particular parent task

Equality and range operators for integer fields: =, in

project{=}2456
id {in} (1234, 1240)

String fields:

  • name — task name

Full or partial match for string fields: =, has

name{=}'Task Report'
name {has} 'Report'

Date fields:

  • dateadd — task creation date in 'DD.MM.YYYY' format

  • datestart — task start date in 'DD.MM.YYYY' format

  • dateend — task due date or end date in 'DD.MM.YYYY' format

  • dateclose — task closing date in 'DD.MM.YYYY' format

Relational operators for date fields: >, <, >=, <=, ! =, =

dateadd{=}'01.05.2021'

Query conditions can be combined with parentheses () and logical operations and, or (only in lowercase)

Sample filter query

&filter=(name has 'Report' or name has 'Approval') and
(dateend>'25.05.2021' and dateend<'31.05.2021')

Was this helpful?