The Tasks API allows to manage user task lists and tasks in it, work in collaboration with other users.
Basic entities:
Some of requests may return related_changes
as a field of result object.
related_changes
is an object with two arrays unavailable
and changed
.
unavailable
contains task ids that was deleted in current operation.
changed
is a list of task changes that was done in this operation (except task that was excplicity changed)
Changes objects will provide sync_token
(new one) and prev_sync_token
(old one)
to simplify tracking of changes in tasks.
{
"related_changes": {
"unavailable": [
1032
],
changed: [
{
"id": 1032,
"sort": 2112312,
"mod_time": 1922321312,
"mod_uid": 123123
"sync_token": "20",
"prev_sync_token": "14"
}
]
}
}
tasks/
tasks_access_protected
designed to restrict an access to user's protected projects.
Without this scope application will not recieve protected projects from tasks/projects
endpoint and will not get access into any endpoint under PROJECT_RESOURCE_URI
of protected project.
tasks_access_protected
scope also needed to update needs_protection
attribute of project.
RESOURCE_URI
— URI is obtained from token exchange point.
PROJECT_RESOURCE_URI
— URI is obtained from the project details response.
Prefix | Endpoint | Description |
---|---|---|
RESOURCE_URI | tasks/projects/ | Getting a list of projects |
RESOURCE_URI | tasks/projects/add/ | Creating a project |
RESOURCE_URI | tasks/invitations | Get pending project join invitations |
RESOURCE_URI | tasks/invitations/PROJECT_ID/accept | Accept project join invitation |
RESOURCE_URI | tasks/invitations/PROJECT_ID/decline | Decline project join invitation |
RESOURCE_URI | tasks/projects/ID/sort/ | Sorting a project |
RESOURCE_URI | tasks/projects/ID/disconnect/ | Disconnecting from a project |
RESOURCE_URI | tasks/projects/ID/acls/order/get | Get user defined order of acls in particular project |
RESOURCE_URI | tasks/projects/ID/acls/order/set | Get user defined order of acls in particular project |
PROJECT_RESOURCE_URI | null | Retrieving project details |
PROJECT_RESOURCE_URI | stats/ | Getting statistics |
PROJECT_RESOURCE_URI | edit/ | Editing a project |
PROJECT_RESOURCE_URI | delete/ | Deleting a project |
PROJECT_RESOURCE_URI | upload_tempfile/ | Upload temporrary file for further attachmens creation |
PROJECT_RESOURCE_URI | sync/ | Get tasks updates |
PROJECT_RESOURCE_URI | acls/ | Getting a list of ACLs |
PROJECT_RESOURCE_URI | acls/add | Add ACLs to project |
PROJECT_RESOURCE_URI | acls/ID | Retrieving ACL details |
PROJECT_RESOURCE_URI | acls/ID/edit/ | Editing an ACL |
PROJECT_RESOURCE_URI | acls/ID/delete/ | Deleting an ACL |
PROJECT_RESOURCE_URI | tasks/ | Getting a list of tasks |
PROJECT_RESOURCE_URI | tasks/add/ | Adding a task |
PROJECT_RESOURCE_URI | tasks/ID | Retrieving task details |
PROJECT_RESOURCE_URI | tasks/ID/assign/ | Assigning a task |
PROJECT_RESOURCE_URI | tasks/ID/move/ | Moving a task |
PROJECT_RESOURCE_URI | tasks/ID/sort/ | Sorting a task |
PROJECT_RESOURCE_URI | tasks/ID/edit/ | Editing a task |
PROJECT_RESOURCE_URI | tasks/ID/relocate/TARGET_PROJECT_ID | Move task to another project |
PROJECT_RESOURCE_URI | tasks/ID/delete/ | Deleting a task |
PROJECT_RESOURCE_URI | tasks/ID/history/ | Getting a task update history |
tasks/projects/
tasks/projects/add/
updated_sorts
can be added to response object see after_item in @ProjectCreateRequesttasks/invitations
tasks/invitations/PROJECT_ID/accept
tasks/invitations/PROJECT_ID/decline
stats/
tasks/projects/ID/sort/
edit/
disconnect/
tasks/projects/ID/acls/order/get
tasks/projects/ID/acls/order/get
delete/
sync/
upload_tempfile/
POST
multipart/form-data
file
or in param wich name is specified by 'upload_parameter_name' inside 'q' paramq
i.e. (q={"key":"value"}
)upload_tempfile/
To upload file use returned put_uri
. If chunks_expected
is equal 1 then upload
file with a single request.If chunks_expected
> 1 then file must be sent in separate
requests with propper Range header set. Content-Range: bytes START_POS-END_POS/FILE_SIZE
where
On successful chunk upload server will response with 201 status.
On last chunk upload server will response with @Attachment
acls/
acls/add
acls/ID
acls/ID/edit/
acls/ID/delete/
related_changes
@see Related changes in case this operation caused other tasks to be changed.tasks/
tasks/ID
tasks/add/
related_changes
@see Related changes in case this operation caused other tasks to be changed.tasks/ID/assign/
related_changes
@see Related changes in case this operation caused other tasks to be changed.tasks/ID/move/
related_changes
@see Related changes in case this operation caused other tasks to be changed.This will move task and all it descendant tasks into project specified by TARGET_PROJECT_ID
.
User must be admin for both source and target projects.
tasks/ID/relocate/TARGET_PROJECT_ID
tasks/ID/sort/
related_changes
@see Related changes in case this operation caused other tasks to be changed.tasks/ID/edit/
related_changes
@see Related changes in case this operation caused other tasks to be changed.Deleting a task which has subtasks will lead to move nested tasks to a higher level.
tasks/ID/delete/
related_changes
@see Related changes in case this operation caused other tasks to be changed.tasks/ID/history/
Name | Description |
---|---|
withremote |
Whether to retrieve info about remote lists (not owned by user, but shared with him by its owner) |
Name | Description |
---|---|
items[] |
Name | Description |
---|---|
id |
Unique project identifier |
resource_uri |
URL to use as |
title |
Project title |
is_remote |
if false - project is owned by user, otherwise it is shared with him |
is_multiuser |
If project has more than one user |
sort |
Project order |
acl_order[] |
Order of acl ids - may not contain all acl ids |
admin_uid |
user id of project owner - for remote == false it is always current user |
needs_protection |
This flag signals that project owner wishes access to this |
sync_token |
Current sync token for this project. |
Name | Description |
---|---|
populate_users |
return additional user info |
Name | Description |
---|---|
id |
Unique project identifier |
resource_uri |
URL to use as |
title |
Project title |
is_remote |
If false - project is owned by user, otherwise it is shared with him |
is_multiuser |
If project has more than one user |
admin_uid |
User id of project owner - for remote == false it is always current user |
role |
@ProjectRole Project role of current user (for local projects it is always "admin") |
users[] |
@ProjectACL List of project acls |
needs_protection |
This flag signals that project owner wishes access to this |
sync_token |
Current sync token for this project. |
Name | Description |
---|---|
id |
Unique user identifier |
role |
@ProjectRole User role in project |
can_add |
if true user has rights to add new tasks |
state |
|
sync_token |
Personal sync_token for this ACL |
Name | Description |
---|---|
title (required) |
Project title. |
after_item |
Project id to place project after it or "" (empty string) |
Name | Description |
---|---|
title (required) |
Project title. |
needs_protection |
Requires |
sync_token |
If provided will ensure that changed project sync_token is not older |
Name | Description |
---|---|
after_item (required) |
Project id to place project after it or "" (empty string) |
Name | Description |
---|---|
sorts[] |
|
sorts[n].id |
Project ID |
sorts[n].sort |
Sort value |
Name | Description |
---|---|
year |
4 digit year |
month |
Month number starting from 1 |
date |
Date in month starting from 1 |
executor_uid |
User id to filter tasks by |
timezone |
Timezone to use, format as in Olson DB |
Name | Description |
---|---|
created |
Number of created tasks |
overdued |
Number of overdued tasks |
completed |
Number of completed tasks |
Name | Description |
---|---|
items[] |
Name | Description |
---|---|
role |
@ProjectRole |
can_add |
new value for "can_add", editable only if user role is executor (whether it was set in this request or before) |
populate_users |
whether to populate user before return |
sync_token |
If provided will ensure that changed acl sync_token is not older |
Name | Description |
---|---|
uid (required) |
User UID or profile url to add. |
role |
@ProjectRole |
can_add |
new value for "can_add", editable only if user role is executor (whether it was set in this request or before) |
populate_users |
whether to populate user before return |
Name | Description |
---|---|
delete_tasks |
if true then tasks that were assigned to this user will be deleted as well |
Name | Description |
---|---|
ids[] |
exact list of task ids to retrieve (no createria will be checked) |
criteria |
@TasksListCriteria special criteria to search for tasks |
fields[] |
TODO |
Name | Description |
---|---|
status |
|
color |
|
parent_id |
parent task id |
executor_uid |
user id |
owner_uid |
user id |
modified_after |
timestamp to retrieve tasks created or modified after it |
min_create_time |
get tasks created not earlier than specified value |
max_create_time |
get tasks created not later than specified value |
min_finish_time |
get tasks finished not earlier than specified value |
max_finish_time |
get tasks finished not later than specified value |
min_deadline_time |
get tasks that has deadline not earlier than specified value |
max_deadline_time |
get tasks that has deadline not later than specified value |
Name | Description |
---|---|
items[] |
Name | Description |
---|---|
fields[] |
TODO |
Name | Description |
---|---|
title (required) |
Task title |
color |
@TaskColor |
parent_id |
ID of parent task or omit to add task into top level |
previous_id |
ID of previous task or omit to add task into start position in nest level |
executor_uid |
Executor user id (only if user has rights to set it) |
deadline_time |
Time user plan to close task, 0 - no deadline |
description |
Task description (may contain html) |
attachments[] |
|
fields[] |
TODO |
Name | Description |
---|---|
title |
Task title |
color |
|
status |
|
deadline_time |
Time user plan to close task, 0 - no deadline |
description |
Task description (may contain html) |
attachments[] |
|
force_title |
Rewrite title even if server content_mod_time is newer than content_mod_time |
force_description |
Rewrite description even if server content_mod_time is newer than content_mod_time |
content_mod_time |
Last recieved content_mod_time for a task to check for concurent title or description change |
sync_token |
Last known sync_token - if this token will be different from server current sync token |
fields[] |
TODO |
Name | Description |
---|---|
nested |
true - remove task with its children |
Name | Description |
---|---|
level_resorted |
true - if level re-sort was occured |
ids[] |
IDs of moved or deleted tasks (children only). For nested delete will contain all nested task ids. For not nested delete will contain only first level tasks as only they will have their parent_ids changed |
Name | Description |
---|---|
id |
Task ID. |
project_id |
Project ID. |
title |
Task title. |
description |
Description text (HTML formatted). |
color |
|
parent_id |
ID of the parent task. |
sort |
The task sorting position. |
status |
|
owner_uid |
User who created the task. |
executor_uid |
User who is the executor of the task. |
create_time |
Time the task was created. |
finish_time |
Time of the task complete. |
deadline_time |
Deadline time. |
mod_time |
Modification time. |
mod_uid |
User who modified any parameter of the task. |
content_mod_time |
Modification time of the task's content. |
content_mod_uid |
User who modified the task's content. |
attachments |
|
has_attachments |
Flag indicates that the task has attachments. |
has_description |
Flag indicates that the task has description. |
has_rich_decor |
Flag indicates that the description text is formatted using complex HTML tags, such as TABLE, FIELDSET, etc. |
comments_count |
Number of comments. |
sync_token |
Personal sync_token for this task |
Name | Description |
---|---|
executor_uid (r) |
New executor user id |
parent_task |
ID of a task to set as |
after_task |
ID of a task to place this task after it. 0 - place task at first position |
fields[] |
TODO |
sync_token |
If provided will ensure that changed task sync_token is not older |
Name | Description |
---|---|
parent_task (required) |
ID of a task to set as |
after_task |
ID of a task to place this task after it. 0 - place task at first position |
fields[] |
TODO |
sync_token |
If provided will ensure that changed task sync_token is not older |
Name | Description |
---|---|
after_task (r) |
ID of a task to place this task after it. |
fields[] |
TODO |
sync_token |
If provided will ensure that changed task sync_token is not older |
Name | Description |
---|---|
moved_ids[] |
Ids of moved tasks |
Name | Description |
---|---|
items[] |
Name | Description |
---|---|
sync_token |
Token recieved from previous sync request or empty string |
check_ids[] |
If from last sync has past a lot of time, server will reject |
populate_users |
return additional user info |
fields[] |
TODO |
Name | Description |
---|---|
project |
@ProjectFullInfo or null if |
tasks |
|
tasks.updated[] |
|
tasks.unavailable[] |
IDs of unavailable tasks (this can be deleted or tasks that |
acls |
|
acls.updated[] |
|
acls.unavailable[] |
Unavailable ProjectACL ids (deleted) |
sync_token |
New sync token - app should use it in next sync request |
Name | Description |
---|---|
put_method (required) |
true |
file_size (required) |
Size of file to be uploaded |
file_name (required) |
File name |
chunk_size |
Must be multiple of 256Kb |
Name | Description |
---|---|
put_uri |
Upload endpoint to send file to via |
chunks_expected |
|
file_types_expected |
Of file, image, video, audio |
timeout |
How long in seconds returned upload endpoint will be available if not in use. |
Name | Description |
---|---|
time |
When this status record was added |
type |
Possible values:
|
actor_uid |
ID of user that does changes |
new_values |
@StatusRecordValues New values for some of changed fields |
updated[] |
Array of changes that was made.
|
Name | Description |
---|---|
status |
@TaskStatus new task status if it was changed |
executor_uid |
ID of new executor if it was changed |
Name | Description |
---|---|
items[] |
Name | Description |
---|---|
project_id |
|
project_title |
|
admin_uid |
UID of project's admin |
add_time |
Time in seconds when invitation was added |