Tasks API

Scope: ZohoProjects.tasks.{Operation}

Operations: READ, CREATE, UPDATE, DELETE, ALL

Use the ALL operation to gain the scope for all the other operations like READ, CREATE, UPDATE, and DELETE at once.

All Tasks 
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/
Tasks for a Tasklist
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasklists/[TASKLISTID]/tasks/
Task Details
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/
Task Activities
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/activities/
Create Task
POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/
Update Task
POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/
Reorder Task
POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/reorder
Delete Task
DELETE /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/
Create Subtask
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/subtasks/
Get My Tasks
GET /restapi/portal/[PORTALID]/mytasks/
Get Subtasks
GET /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/subtasks/
Get Comments
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/
Add Comment
POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/
Update Comment
POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/[COMMENTID]/
Delete Comment
DELETE /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/[COMMENTID]/
Get Task Attachments
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/
Add Task Attachments
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/
Delete Task Attachments
DELETE  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/[ATTACHMENTID]/
Get All Task Layouts
GET  /restapi/portal/[PORTALID]/tasklayouts
Get Task Layout Details
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasklayouts
Get Task Custom Views
GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/views
Get My Tasks Custom Views
GET /restapi/portal/[PORTALID]/mytasks/views
Set Dependency Between Tasks
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/
Update Lag in Dependency
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/
Update Dependency Type
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/
Remove Dependency
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/
Follow Task
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/follow
Unfollow Task
POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/unfollow
Associate Bugs
POST /api/v3/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/bugs
Dissociate Bugs
DELETE /api/v3/portal/[PORTALID]/projects/[PROJECTID]/bugs/[BUGID]/task/[TASKID]
Move Tasks
GET /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/move
 
Task Status History from Portal
GET  /api/v3/portal/{{Portal_Id}}/taskstatushistory
 
Task Status History from Project
GET  /api/v3/portal/{Portal_Id}/projects/{Project_Id}/taskstatushistory
 

 All Tasks

Gets all the tasks in the given project. It fetches only the main tasks and not the subtasks.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task.
rangeintRange of the tasks.
ownerString or Long

Owner of the task must be provided as all or user ID.

(all - String, user ID - Long)

statusStringStatus of the task must be all or completed or notcompleted.
timeStringTime period of the task must be all or overdue or today or tomorrow.
priorityStringPriority of the task must be all or none or low or medium or high.
tasklist_idLongID of the tasklist.
custom_statusLongThe ID of the custom task status. Example : 932200000000277068.
sort_columnStringSort tasks using the last modified time or time of creation. (created_time / last_modified_time)
sort_orderStringSort in ascending or descending order.
last_modified_timeLongLast updated time of task in milliseconds.
milestone_idLongID of the milestone.
created_byString or LongPass the value as all or the user ID (all - String, user ID - Long).
custom_fieldsJSON ObjectValue of the custom field. Example: {"UDF_CHAR1":"Hello"}
view_idLongView ID of the Task. view_id is obtained from the Get Task Custom Views API.
all_tasksBooleanSpecify whether to retrieve subtasks in the response. Accepted values: true or false. 

Example of viewing a task with custom fields

Since custom field <display_name> is not unique, custom fields are referred by their respective < column_name>. The same custom field <display_name> will be referred with different < column_name>. The params that you need to pass for the task custom fields is the value in <column_name> in Get Task Layout Details API. 

You must first get all the custom fields, and then pass the <column_name> value of the custom field as a param to create a task with the custom fields.

Example: {“UDF_CHAR1”:”Hello”}

UDF_CHAR1 is the param that you need to pass while creating tasks.

Hello is the value of the custom field. 

Here is a sample response of a custom field:

{
"section_name": "New Section",
"customfield_details": [{
"column_name": "UDF_CHAR1",
"is_mandatory": false,
"is_default": false",
"display_name": "My_Field",
"column_type": "singleline" }]
}

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "tasks": [
    {
      "end_date": "05-09-2018",
      "milestone_id": "170876000004922038",
      "link": {
        "timesheet": {
          "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000004921003/tasks/170876000004922138/logs/"
        },
        "self": {
          "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000004921003/tasks/170876000004922138/"
        }
      },
      "description": "",
      "start_date_long": 1524251880000,
      "end_date_long": 1525893480000,
      "end_date_format": "05-09-2018 12:18:00 PM",
      "duration": "13",
      "last_updated_time_long": 1511331772071,
      "details": {
        "owners": [
          {
            "name": "Eduardo Vargas",
            "id": "2060557"
          },
          {
            "name": "Lin Brenn",
            "id": "639281665"
          }
        ]
      },
      "id": 170876000004922140,
      "key": "X9-T8",
      "start_date": "04-20-2018",
      "created_person": "Helen Collins",
      "created_time_long": 1511331772071,
      "created_time": "11-21-2017",
      "is_reminder_set": false,
      "is_recurrence_set": false,
      "created_time_format": "11-21-2017 10:22:52 PM",
      "subtasks": false,
      "dependency": {},
      "work": "208:00",
      "isparent": false,
      "start_date_format": "04-20-2018 12:18:00 PM",
      "work_type": "work_hrs_per_day",
      "completed": false,
      "priority": "None",
      "created_by": "639283127",
      "percent_complete": "0",
      "last_updated_time": "11-21-2017",
      "name": "Roofing paper installed",
      "id_string": "170876000004922138",
      "last_updated_time_format": "11-21-2017 10:22:52 PM",
      "tasklist": {
        "name": "Roofing- All tasks",
        "id": "170876000004922094"
      },
      "order_sequence": 1,
      "status": {
        "name": "Open",
        "id": "170876000004668068",
        "type": "open",
        "color_code": "#568dd5"
      }
   }
]}

Note:

  • The task custom field feature is available only in the Enterprise plan.

 Tasks for a Tasklist

Gets all the tasks in the given tasklist .

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasklists/[TASKLISTID]/tasks/

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task.
rangeintRange of the tasks.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "tasks": [
    {
      "end_date": "09-05-2020",
      "is_sprints_task": false,
      "link": {
        "timesheet": {
          "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000003066079/tasks/170876000009578967/logs/"
        },
        "self": {
          "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000003066079/tasks/170876000009578967/"
        }
      },
      "created_by_zpuid": "170876000007981001",
      "description": "<div><br></div>",
      "start_date_long": 1599244200000,
      "work_form": "standard_work",
      "is_comment_added": false,
      "end_date_long": 1599244200000,
      "end_date_format": "09-05-2020 12:00:00 AM",
      "duration": "1",
      "last_updated_time_long": 1617005750000,
      "is_forum_associated": false,
      "details": {
        "owners": [
          {
            "zpuid": "170876000005155055",
            "name": "Helen",
            "id": "639283127",
            "email": "helenc@zylker.com"
          }
        ]
      },
      "id": 170876000009578980,
      "key": "NM-T30",
      "tasklist_id": "170876000009578951",
      "start_date": "09-05-2020",
      "created_person": "Monica Hemsworth",
      "created_time_long": 1598674306701,
      "created_time": "08-29-2020",
      "is_reminder_set": false,
      "is_recurrence_set": false,
      "created_time_format": "08-29-2020 09:41:46 AM",
      "subtasks": false,
      "work": "8:00",
      "custom_fields": [
        {
          "column_name": "UDF_TEXT2",
          "label_name": "Feedback ",
          "value": "Content Approval"
        }
      ],
      "isparent": false,
      "duration_type": "days",
      "start_date_format": "09-05-2020 12:00:00 AM",
      "work_type": "work_hrs_per_day",
      "task_followers": {
        "FOLUSERS": "",
        "FOLLOWERSIZE": -1,
        "FOLLOWERS": []
      },
      "completed": false,
      "priority": "Medium",
      "created_by": "703961433",
      "percent_complete": "0",
      "GROUP_NAME": {
        "ASSOCIATED_TEAMS": {
          "AnyTeam": "Not Associated"
        },
        "ASSOCIATED_TEAMS_COUNT": 0,
        "IS_TEAM_UNASSIGNED": true
      },
      "last_updated_time": "03-29-2021",
      "name": "Layouts Finding",
      "is_docs_assocoated": false,
      "id_string": "170876000009578967",
      "log_hours": {
        "non_billable_hours": "0.0",
        "billable_hours": "0.0"
      },
      "billingtype": "None",
      "last_updated_time_format": "03-29-2021 01:45:50 PM",
      "order_sequence": 3,
      "status": {
        "name": "Open",
        "id": "170876000004668068",
        "type": "open",
        "color_code": "#08aeea"
      }
    }
  ]
}

 Task Details

Gets all the details for the task.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/

Scope: ZohoProjects.tasks.READ

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "tasks": [
        {
            "end_date": "07-25-2019",
            "milestone_id": "170876000000000073",
            "link": {
                "timesheet": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000004154005/tasks/170876000006986036/logs/"
                },
                "self": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000004154005/tasks/170876000006986036/"
                }
            },
            "start_date_long": 1562869800000,
            "is_comment_added": false,
            "end_date_long": 1564050600000,
            "end_date_format": "07-25-2019 04:00:00 PM",
            "duration": "15",
            "last_updated_time_long": 1574762930961,
            "is_forum_associated": false,
            "details": {
                "owners": [
                    {
                        "name": "Unassigned"
                    }
                ]
            },
            "id": 170876000006986050,
            "key": "DC-T666",
            "start_date": "07-12-2019",
            "created_person": "Helen Collins",
            "created_time_long": 1562950590000,
            "created_time": "07-12-2019",
            "is_reminder_set": false,
            "is_recurrence_set": false,
            "created_time_format": "07-12-2019 10:26:30 PM",
            "subtasks": false,
            "dependency": {
                "dependencyDetails": {
                    "170876000006750097": {
                        "DEPENDENCY_TYPE": "FS"
                    }
                },
                "successor": [
                    "170876000006750097"
                ]
            },
            "work": "120:00",
            "custom_fields": [],
            "forecasted_cost": 0,
            "isparent": false,
            "duration_type": "days",
            "start_date_format": "07-12-2019 12:00:00 AM",
            "work_type": "work_hrs_per_day",
            "task_followers": {
                "FOLUSERS": "",
                "FOLLOWERSIZE": -1,
                "FOLLOWERS": []
            },
            "completed": false,
            "priority": "None",
            "created_by": "639283127",
            "percent_complete": "0",
            "last_updated_time": "11-26-2019",
            "actual_cost": 0,
            "name": "Ledger Reports",
            "is_docs_assocoated": false,
            "id_string": "170876000006986036",
            "log_hours": {
                "non_billable_hours": "0.0",
                "billable_hours": "0.0"
            },
            "last_updated_time_format": "11-26-2019 03:38:50 PM",
            "tasklist": {
                "name": "Electricity and wiring",
                "id": "170876000006986046"
            },
            "planned_cost": 0,
            "order_sequence": 9,
            "status": {
                "name": "Open",
                "id": "170876000004668068",
                "type": "open",
                "color_code": "#568dd5"
            }
        }
    ]
}

 Task Activities

This API fetches the details of who modified a specific task and when.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/activities/

Scope: ZohoProjects.tasks.READ

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "activities": [
        {
            "time_format": "03-12-2020 06:27:46 PM",
            "activity_by": "Monica Hemsworth",
            "time_long": 1584017866187,
            "name": "Task 1",
            "id_string": "170876000008601005",
            "old_value": "",
            "id": 170876000008601005,
            "state": "new",
            "time": "03-12-2020",
            "new_value": "",
            "zuid": "703961433"
        }
    ]
}

 Create Task

POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/

Scope: ZohoProjects.tasks.CREATE

If you are uploading files in the task, you must additionally use this Scope: ZohoPC.files.CREATE

If your Zoho Projects portal is integrated with Zoho Workdrive, you must additionally use this Scope: WorkDrive.files.ALL

Request Parameters

person_responsibleLongOwner ID of the task. User ID for multiple owners must be separated by commas.
tasklist_idLongID of the tasklist.
name*StringName of the task.
start_dateString [MM-DD-YYYY]Start date of the task.
end_dateString [MM-DD-YYYY]End date of the task. You must also provide the start_date value to update end_date. 
duration intDuration of the task.
duration_typeStringDuration of the task type in days or hrs.
priority (None or Low or Medium or High)StringPriority of the task must be None or Low or Medium or High.
descriptionStringDescription for the task.
uploaddocFileAdd file to a task.
start_timeStringStart time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
end_timeStringEnd time can be specified in either 12 hour or 24 hour format. Eg. 09:00 pm or 21:00
owner_workJSON Arrayuser_id and working_hours must be given in the array to assign work hours to task owners. [{"user_id":"xxxxxx","working_hours":"2"}]
Note: person_responsible parameter is mandatory to add owner_work
associated_teamsJSON ArrayTeam ID ex: [4000000086001]
work_typeStringAllocate work_hrs_per_day or work_in_percentage or work_hours.
rate_per_hourFloatSpecify rate per hour if your billing method is based on task hours.
custom_fieldsJSON ObjectValue of the custom field. Example: {“UDF_CHAR1”:”Hello”}
completed_onString [MM-DD-YYYY]Completed date of the task.
reminder_stringJSON Object

Get reminders about tasks at a specified date.

Ex: reminder_string   : { "reminder" : [ { "reminder_criteria" :  "customdate" , "day_before" : "5" , "custom_date" : "12-10-2019" , "reminder_time" : "21:30"  , "reminder_notify_users" : "owner,follower" } ] }

  • Set reminder_criteria as dailyon same day / before due date / customdate
  • day_before: day_before can be used when we set the reminder_criteria before due date.
  • reminder_time: reminder_time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
  • custom_date: custom_date can be specified in [MM-DD-YYYY]. This param is used when we set customdate as reminder_criteria
  •  reminder_notify_users: reminder_notify_users for multiple users must be separated by commas.
  • default notification user contsants: owner, follower, creator, projectowner
 
json_stringJSON Object

If you set a task as recurring task, it will automatically get recreated after the specified time period. Specify the recurring criteria values in the json_string. Separate multiple values using comma. 

Ex: { "recurrence" : { "recurring_frequency" : "monthly", "time_span" : "15", "number_of_occurrences" : "30","is_comments_recurred":"true","set_previous_business_day":"false","recurrence_type":"specified_interval_creation"} } 

  • Set recurring_frequency value(String) as dailyweekly / monthly / yearly.
  • Set time_span value(int) based on which the task will recur again.
  • Set number_of_occurrences value(int) to mention how many times the task should recur. (between 2-30)
  • Set is_comments_recurred value to true if you want to recur the task comments. 
  • set_previous_business_day: (true / false). This is used when the start date of the next recurrence occurs on a holiday or a weekend the previous working day is set as the start date. This param is used when we set recurring_frequency as monthly / yearly.
  • Set recurrence_type: This is used to select the next task recurrence type.  (after_current_task_completed / specified_interval_creation)
    • after_current_task_completed: next recurrence will occur after the current task is complete or closed.
    • specified_interval_creation: next recurrence will occur at the specified interval irrespective of the status of the current task.
budget_valueFloatEnter the Cost Budget or Budgeted Hours based on the selected budget type.
budget_thresholdFloatEnter the Budgeted Hours Threshold or Cost Budget Threshold.
tagIdsJSONArrayTag IDs to associate with the task
coat_per_hourFloatSpecify the cost per hour.
revenue_budgetFloatSpecify the Revenue Budget.

* Indicates a mandatory param

Example of creating a task with custom fields.

Sample Response

Status: 201 Created

Content Type: application/json;charset=utf-8
{
    "tasks": [
        {
            "end_date": "11-30-2019",
            "reminder_date_long": 1573266600000,
            "milestone_id": "170876000000000073",
            "reminder_date": "11-09-2019",
            "link": {
                "timesheet": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000001871117/tasks/170876000002120001/logs/"
                },
                "self": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000001871117/tasks/170876000002120001/"
                }
            },
            "start_date_long": 1572546600000,
            "is_comment_added": false,
            "end_date_long": 1575109800000,
            "end_date_format": "11-30-2019 04:00:00 PM",
            "duration": "23",
            "last_updated_time_long": 1572861349173,
            "is_forum_associated": false,
            "reminder_notify_users": [
                {
                    "reminder_user": {
                        "value": "owner",
                        "key": "owner"
                    },
                    "reminder_user_type": "reminder_default_user"
                },
                {
                    "reminder_user": {
                        "value": "creator",
                        "key": "creator"
                    },
                    "reminder_user_type": "reminder_default_user"
                }
            ],
            "remind_on": "customdate",
            "details": {
                "owners": [
                    {
                        "work": "8:15",
                        "name": "Amritha Agrawal",
                        "id": "2063270"
                    }
                ]
            },
            "id": 170876000002120001,
            "key": "SP-T45",
            "start_date": "11-01-2019",
            "created_person": "Helen Collins",
            "created_time_long": 1422422831353,
            "reminder_time": "8 : 00 am",
            "created_time": "01-28-2015",
            "is_reminder_set": true,
            "is_recurrence_set": true,
            "created_time_format": "01-28-2015 10:57:11 AM",
            "subtasks": false,
            "work": "181:30",
            "isparent": false,
            "duration_type": "days",
            "start_date_format": "11-01-2019 12:00:00 AM",
            "work_type": "work_hrs_per_day",
            "task_followers": {
                "FOLUSERS": "",
                "FOLLOWERSIZE": -1,
                "FOLLOWERS": []
            },
            "completed": false,
            "priority": "Medium",
            "created_by": "639283127",
            "percent_complete": "50",
            "recurrence": {
                "number_of_times": "2",
                "is_recurring_comments": false,
                "timespan": "1",
                "recurrence_frequency": "daily"
            },
            "last_updated_time": "11-04-2019",
            "name": "Review blog post",
            "is_docs_assocoated": false,
            "id_string": "170876000002120001",
            "log_hours": {
                "non_billable_hours": "0.0",
                "billable_hours": "0.0"
            },
            "last_updated_time_format": "11-04-2019 03:25:49 PM",
            "tasklist": {
                "name": "General",
                "id": "170876000001882560"
            },
            "order_sequence": 1,
            "status": {
                "name": "Open",
                "id": "170876000004668068",
                "type": "open",
                "color_code": "#568dd5"
            }
        }
    ]
}

 Update Task

Updates the task in the given project

POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/

Scope: ZohoProjects.tasks.UPDATE

If you are uploading files in the task, you must additionally use this Scope: ZohoPC.files.CREATE

Request Parameters

person_responsibleLong

ZUID of the task owner. User ID for multiple owners must be separated by commas.

If you need to remove users assigned to the task, pass '0' in the parameter.

person_responsible_zpuidLong

ZPUID of the task owner. User ID for multiple owners must be separated by commas.

If you need to remove users assigned to the task, pass '0' in the parameter.

nameStringName of the task.
start_dateString [MM-DD-YYYY]Start date of the task.
end_dateString [MM-DD-YYYY]End date of the task. You must also provide the start_date value to update end_date. 
percent_completeintTask completed percentage must be provided in multiple of 10's. [10 to 100]
durationintDuration of the task.
duration_typeStringDuration of the task type in days or hrs.
priority (None or Low or Medium or High) StringPriority of the task must be None or Low or Medium or High.
descriptionStringDescription for the task.
start_timeStringStart time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
end_timeStringEnd time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
owner_workJSON Arrayuser_id and working_hours must be given in the array to assign work hours to task owners.
Note: person_responsible parameter is mandatory to update owner_work
associated_teamsJSON ArrayTeam ID ex: [4000000086001]
work_typeStringAllocate work_hrs_per_day or work_in_percentage or work_hours.
billingtypeBooleanAvailable values: 'none', 'billable', and 'non billable'.
rate_per_hourFloatSpecify rate per hour if your project budget is based on task hours.
task_duration_as_workStringAllocates entire task duration as work hours for the task owners if value is true
reminder_stringJSON Object

Get reminders about tasks at a specified date.

Ex: reminder_string   : { "reminder" : [ { "reminder_criteria" :  "customdate" , "day_before" : "5" , "custom_date" : "12-10-2019" , "reminder_time" : "21:30"  , "reminder_notify_users" : "owner,follower" } ] }

  • Set reminder_criteria as dailyon same day / before due date / customdate
  • day_before: day_before can be used when we set the reminder_criteria before due date.
  • reminder_time: reminder_time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
  • custom_date: custom_date can be specified in [MM-DD-YYYY]. This param is used when we set customdate as reminder_criteria
  •  reminder_notify_users: reminder_notify_users for multiple users must be separated by commas.
  • default notification user contsants: owner, follower, creator, projectowner
uploaddocFileAdd a file to the task.
custom_fieldsJSON ObjectValue of the custom field. Example : {"UDF_CHAR1":"Hello"}
custom_statusLongThe ID of the custom task status. Example : 932200000000277068
clear_dateBooleanClears the start date and end date of the task. (true / false)
make_as_taskBooleanMake a sub_task as task. (true / false)
json_stringJSON Object

If you set a task as recurring task, it will automatically get recreated after the specified time period. Specify the recurring criteria values in the json_string. Separate multiple values using comma. 

Ex: { "recurrence" : { "recurring_frequency" : "monthly", "time_span" : "15", "number_of_occurrences" : "30","is_comments_recurred":"true","set_previous_business_day":"false","recurrence_type":"specified_interval_creation"} }  

  • Set recurring_frequency value(String) as dailyweekly / monthly / yearly.
  • Set time_span value(int) based on which the task will recur again.
  • Set number_of_occurrences value(int) to mention how many times the task should recur. (between 2-30)
  • Set is_comments_recurred value to true if you want to recur the task comments. 
  • set_previous_business_day: (true / false). This is used when the start date of the next recurrence occurs on a holiday or a weekend the previous working day is set as the start date. This param is used when we set recurring_frequency as monthly / yearly.
  • Set recurrence_type: This is used to select the next task recurrence type.  (after_current_task_completed / specified_interval_creation)
    • after_current_task_completed: next recurrence will occur after the current task is complete or closed.
    • specified_interval_creation: next recurrence will occur at the specified interval irrespective of the status of the current task.
budget_value
Float
Enter the Cost Budget or Budgeted Hours based on the selected budget type.
budget_threshold
Float
Enter the Budgeted Hours Threshold or Cost Budget Threshold.
tagIdsJSONArrayTag IDs to associate with the task
cost_per_hourFloatSpecify the cost per hour.
revenue_budgetFloatSpecify the Revenue Budget.
ignore_bug_associationBooleanThe task is associated with one or many open issue(s). Select "Yes" to close the task anyway.

Note:

  • Add the param removeLag = true to remove the lag, if any, set between your task and its predecessor.

Example of updating task with custom fields.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
"tasks": [
{
"id": 170876000001849020,
"name": "Fix QA comments",
"completed": false,
"created_by": "2060758",
"created_person": "Patricia Boyle",
"priority": "None",
"percent_complete": 0,
"custom_fields": [{
            "column_name": "UDF_DATE1",
            "label_name": "My_date",
            "value": "11-11-2017 12:00:00 AM"
            }],
"recurrence": {
        "number_of_times": "30",
        "timespan": "15",
        "is_recurring_comments": true,
        "recurrence_frequency": "daily"
      },
"order_sequence": 11,
"details": {
"owners": [
{
"name": "Unassigned"
}
]
},
"link": {
"self": {
"url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/ 170876000000147021/tasks/170876000001849039/"
},
"timesheet": {
"url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/ 170876000000147021/tasks/170876000001849039/logs/"
}
},
"status": {
            "name": "Open",
            "id": "4000000000335",
            "type": "open",
            "color_code": "#eb5768"
            }
}
]
}

 Reorder Task

Reorders the tasks in the given project

POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/reorder

Scope: ZohoProjects.tasks.UPDATE

Request Parameters

json_string*json object

Task will be reordered in-between two tasks based on the previous and next task IDs. Specify the previous_task_id and next_task_id values(Long) in json_string. Separate the values using comma.

Ex. { "task_order" : { "previous_task_id" : 4000000021037, "next_task_id" : 4000000029097 } }

If there is no previous task, you can specify only the next_task_id. The task will be reordered above the task with the next_task_id. 

* Indicates a mandatory param

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "message": "Tasks reordered..."
}

 Delete Task

Deletes the tasks in the given project.

DELETE /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/

Scope: ZohoProjects.tasks.DELETE

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "response": "Task Deleted Successfully"
}

 Create Subtask

POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/subtasks/

Scope: ZohoProjects.tasks.CREATE

Request Parameters

person_responsibleLongOwner ID of the task. User ID for multiple owners must be separated by commas.
name*StringName of the task.
start_dateString [MM-DD-YYYY]Start date of the task.
end_dateString [MM-DD-YYYY]End date of the task. You must also provide the start_date value to update end_date. 
durationintDuration of the task.
duration_typeStringDuration of the task type in days or hrs.
priority (None or Low or Medium or High)StringPriority of the task must be None or Low or Medium or High.
descriptionStringDescription of the task.
custom_fieldsJSON ObjectValue of the custom field. Example: {“UDF_CHAR1”: ”Hello”}
reminder_stringJSON Object

Get reminders about tasks at a specified date.

Ex: reminder_string   : { "reminder" : [ { "reminder_criteria" :  "customdate" , "day_before" : "5" , "custom_date" : "12-10-2019" , "reminder_time" : "21:30"  , "reminder_notify_users" : "owner,follower" } ] }

  • Set reminder_criteria as dailyon same day / before due date / customdate
  • day_before: day_before can be used when we set the reminder_criteria before due date.
  • reminder_time: reminder_time can be specified in either 12 hour or 24 hour format. Eg. 01:00 pm or 13:00
  • custom_date: custom_date can be specified in [MM-DD-YYYY]. This param is used when we set customdate as reminder_criteria
  •  reminder_notify_users: reminder_notify_users for multiple users must be separated by commas.
  • default notification user contsants: owner, follower, creator, projectowner

* Indicates a mandatory param

Example of creating a subtask with custom fields.

Sample Response

Status: 201 Created

Content Type: application/json;charset=utf-8
{
    "tasks": [
        {
            "parent_task_id": "170876000006360581",
            "reminder_date_long": 1572834600000,
            "start_date_long": 1572546600000,
            "is_comment_added": false,
            "end_date_format": "11-30-2019 04:00:00 PM",
            "last_updated_time_long": 1572862066540,
            "is_forum_associated": false,
            "remind_on": "daily",
            "details": {
                "owners": [
                    {
                        "name": "Helen Collins",
                        "id": "639283127"
                    }
                ]
            },
            "id": 170876000006360599,
            "created_time": "04-08-2019",
            "work": "184:00",
            "isparent": false,
            "start_date_format": "11-01-2019 12:00:00 AM",
            "completed_time_long": 1569654333117,
            "work_type": "work_hrs_per_day",
            "task_followers": {
                "FOLUSERS": "",
                "FOLLOWERSIZE": -1,
                "FOLLOWERS": []
            },
            "completed": false,
            "priority": "None",
            "created_by": "639283127",
            "last_updated_time": "11-04-2019",
            "actual_cost": 0,
            "root_task_id": "170876000006360581",
            "name": "Windows",
            "is_docs_assocoated": false,
            "last_updated_time_format": "11-04-2019 03:37:46 PM",
            "tasklist": {
                "name": "General",
                "id": "170876000006360573"
            },
            "order_sequence": 2,
            "status": {
                "name": "Open",
                "id": "170876000004668068",
                "type": "open",
                "color_code": "#568dd5"
            },
            "end_date": "11-30-2019",
            "milestone_id": "170876000000000073",
            "reminder_date": "11-04-2019",
            "link": {
                "timesheet": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000006360425/tasks/170876000006360599/logs/"
                },
                "self": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/zylker/projects/170876000006360425/tasks/170876000006360599/"
                }
            },
            "completed_time_format": "09-28-2019 12:35:33 PM",
            "end_date_long": 1575109800000,
            "duration": "23",
            "reminder_notify_users": [
                {
                    "reminder_user": {
                        "value": "owner",
                        "key": "owner"
                    },
                    "reminder_user_type": "reminder_default_user"
                },
                {
                    "reminder_user": {
                        "value": "creator",
                        "key": "creator"
                    },
                    "reminder_user_type": "reminder_default_user"
                }
            ],
            "key": "DA3-T5",
            "start_date": "11-01-2019",
            "created_person": "Helen Collins",
            "created_time_long": 1554694012220,
            "reminder_time": "8 : 00 am",
            "is_reminder_set": true,
            "is_recurrence_set": false,
            "created_time_format": "04-08-2019 08:56:52 AM",
            "subtasks": false,
            "forecasted_cost": 10120,
            "duration_type": "days",
            "parenttask_id": "170876000006360581",
            "percent_complete": "0",
            "depth": 1,
            "completed_time": "09-28-2019",
            "id_string": "170876000006360599",
            "log_hours": {
                "non_billable_hours": "0.0",
                "billable_hours": "0.0"
            },
            "planned_cost": 10120
        }
    ]
}

Note:

  • The task custom field feature is available only in the Enterprise plan.

Get My Tasks

Gets all your tasks in the portal.

GET  /restapi/portal/[PORTALID]/mytasks/

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task.
rangeintRange of the tasks.
ownerString or Long

Owner of the task must be provided as all or user ID.

(all - String, user ID - Long)

statusStringStatus of the task must be all or open or closed.
timeStringTime period of the task must be all or overdue or today or tomorrow.
priorityStringPriority of the task must be low or medium or high or none.
projects_idsLongThe project ID of the task. Multiple project IDs must be separated by commas.
sort_columnStringSort tasks using the last modified time or time of creation. (created_time / last_modified_time)
sort_orderStringSort in ascending or descending order.
customview_idlongCustom view ID of the task. view_id is obtained from the Get My Task Custom Views API.
last_modified_timeLongLast updated time of task in milliseconds.
created_byString or LongPass the value as all or the user ID (all - String, user ID - Long).
owner_emailStringEmail ID of the owner.
reverse_orderBooleanPass the value as true or false.
filterJSONArrayContains maximum of two objects.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
Public
 {
  "tasks": [
    {
      "milestone_id": "170876000004154071",
      "project": {
        "name": "Donnelly Apartments Construction",
        "id": 170876000004154020
      },
      "last_updated_time_long": 1518530491135,
      "details": {
        "owners": [
          {
            "name": "Patricia Boyle",
            "id": "2060758"
          },
          {
            "work": "40:00",
            "name": "Helen Collins",
            "id": "639283127"
          }
        ]
      },
      "id": 170876000004685020,
      "key": "DC-T158",
      "created_person": "Helen Collins",
      "created_time_long": 1499061211693,
      "created_time": "07-02-2017",
      "is_reminder_set": false,
      "is_recurrence_set": false,
      "created_time_format": "07-02-2017 10:53:31 PM",
      "subtasks": true,
      "work": "40:00",
      "custom_fields": [],
      "isparent": true,
      "work_type": "work_hours",
      "completed": false,
      "priority": "None",
      "created_by": "639283127",
      "percent_complete": "10",
      "last_updated_time": "02-13-2018",
      "name": "Roof trusses construction",
      "id_string": "170876000004685009",
      "tasklist": {
        "name": "Finish coat",
        "id": 170876000004154530
      },
      "last_updated_time_format": "02-13-2018 06:01:31 AM",
      "order_sequence": 1,
      "status": {
        "name": "In Progress",
        "id": "170876000004771005",
        "type": "open",
        "color_code": "#878b8e"
      }
    },
    {
      "milestone_id": "170876000004521019",
      "project": {
        "name": "Pet Drive",
        "id": 170876000004521000
      },
      "last_updated_time_long": 1507111847000,
      "details": {
        "owners": [
          {
            "name": "Helen Collins",
            "id": "639283127"
          }
        ]
      },
      "id": 170876000004850020,
      "key": "KH-T17",
      "created_person": "Patricia Boyle",
      "created_time_long": 1507110576936,
      "created_time": "10-04-2017",
      "is_reminder_set": false,
      "is_recurrence_set": false,
      "created_time_format": "10-04-2017 02:49:36 AM",
      "subtasks": false,
      "work": "200:00",
      "custom_fields": [],
      "isparent": false,
      "parenttask_id": "170876000004521105",
      "work_type": "work_hrs_per_day",
      "completed": false,
      "priority": "None",
      "created_by": "2060758",
      "percent_complete": "0",
      "depth": 1,
      "last_updated_time": "10-04-2017",
      "name": "test",
      "id_string": "170876000004850031",
      "tasklist": {
        "name": "Place and venue",
        "id": 170876000004521020
      },
      "last_updated_time_format": "10-04-2017 03:10:47 AM",
      "order_sequence": 4,
      "status": {
        "name": "Open",
        "id": "170876000004668068",
        "type": "open",
        "color_code": "#568dd5"
      }
      {
    "criteria": [
        {
            "field_name": "start_date",
            "filter_type": "between",
            "from": "2021-08-25T09:00:00+05:00",
            "to": "2021-08-25T09:30:00+05:00"
        },
        {
            "field_name": "end_date",
            "filter_type": "between",
            "from": "2021-08-26T09:00:00+05:00",
            "to": "2021-08-26T09:30:00+05:00"
        }
    ],
    "condition": "AND"
}
]}

 Get Subtasks

Get all the subtasks of the given task.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/subtasks/

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the subtask.
rangeintRange of the subtasks.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "tasks": [{
        "created_by": "2060758",
        "subtasks": false,
        "start_date_long": 1408365000000,
        "link": {
            "self": {
                "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/
                        170876000001865067/tasks/170876000001868770/"
            },
            "timesheet": {
                "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/
                        170876000001865067/tasks/170876000001868770/logs/"
            }
        },
        "tasklist": {
            "id": 170876000001868599,
            "name": "ERP Phase III"
        },
        "depth": 1,
        "end_date_format": "08-19-2014 06:30 AM",
        "id": 170876000001868770,
        "percent_complete": "60",
        "duration": "2",
        "created_person": "Boyle Patricia",
        "end_date": "08-19-2014",
        "details": {
            "owners": [{
                "id": "2060556",
                "name": "Hiyoshi Nakano"
            }, {
                "id": "2060755",
                "name": "Manish Patel"
            }]
        },
        "priority": "None",
        "name": "Work on Finance Budget for this month",
        "end_date_long": 1408483800000,
        "start_date_format": "08-17-2014 09:30 PM",
        "start_date": "08-17-2014",
        "completed": false
    }]
}

 Get Comments

Get all the task comments. 

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task comment.
rangeintRange of the task comments.
sort_columnStringSort task comments using the last modified time or time of creation. (created_time/last_modified_time)
sort_orderStringSort in ascending or descending order.
last_modified_timeLongLast updated time of the task comment in milliseconds.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "comments": [
        {
            "created_time_long": 1574763010989,
            "created_time": "11-26-2019",
            "created_time_format": "11-26-2019 03:40:10 PM",
            "added_by": "639283127",
            "id_string": "170876000007835007",
            "project": {
                "name": "Donnelly Apartments Construction",
                "id": "170876000004154005"
            },
            "added_person": "Helen Collins",
            "id": 170876000007835000,
            "content": "Testing Need to be Done"
        },
        {
            "created_time_long": 1574763020347,
            "created_time": "11-26-2019",
            "created_time_format": "11-26-2019 03:40:20 PM",
            "added_by": "639283127",
            "id_string": "170876000007835011",
            "project": {
                "name": "Donnelly Apartments Construction",
                "id": "170876000004154005"
            },
            "added_person": "Helen Collins",
            "id": 170876000007835000,
            "content": "Waiting for approval"
        }
    ]
}

 Add Comment

Adds a task comment.

POST  /restapi /portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/

Scope: ZohoProjects.tasks.CREATE

If you are uploading files in the task comment, you must additionally use this Scope: ZohoPC.files.CREATE

Request Parameters

content*StringComment for the task.
uploaddocFileAdd file in the task comment.

* Indicates a mandatory param

Sample Response

Status: 201 Created

Content Type: application/json;charset=utf-8
{
    "comments": [{
        "content": "Setup Demo Video",
        "id": 57000001149011,
        "created_time_long": 1411756962722,
        "added_by": "2060758",
        "added_person": "Boyle Patricia",
        "created_time_format": "09-26-2014 03:42 AM",
        "created_time": "09-26-2014"
    }]
}

 Update Comment

Updates the description of task comment.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/[COMMENTID]/

Scope: ZohoProjects.tasks.UPDATE

Request Parameters

content*StringComment for the task.

* Indicates a mandatory param


Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "comments": [{
        "content": "Setup Demo Video",
        "id": 57000001149011,
        "created_time_long": 1411756962722,
        "added_by": "2060758",
        "added_person": "Boyle Patricia",
        "created_time_format": "09-26-2014 03:42 AM",
        "created_time": "09-26-2014"
    }]
}

 Delete Comment

Deletes the task comment.

DELETE  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/comments/[COMMENTID]/

Scope: ZohoProjects.tasks.DELETE

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "response": "Comment Deleted Successfully"
}

 Get Task Attachments

Retrieve details of attachments associated to the task.

GET /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/

Scope: ZohoProjects.tasks.READ, ZohoPC.files.READ

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
[{
    "CONTENT_TYPE": "pdf",
    "AUTHOR_ID": "565296969",
    "THUMBNAIL_URL": "https://download.zoho.com/paramdownloadservlet?x-service=EX&x-encoding=gzip&x-mode=2&x-resource_id=033zqca7d98669ef541348a5d2ded5d44ff3d&event-id=033zqca7d98669ef541348a5d2ded5d44ff3d_350x262&x-w=350&x-h=262",
    "FILENAME": "mybook.pdf",
    "UPLOADED_TIME": 1476939840136,
    "DOWNLOAD_URL": "https://download.zoho.com/paramdownloadservlet?x-service=EX&event-id=033zqca7d98669ef541348a5d2ded5d44ff3d_1476939885220&x-encoding=gzip&x-resource_id=033zqca7d98669ef541348a5d2ded5d44ff3d",
    "RESOURCE_ID": "033zqca7d98669ef541348a5d2ded5d44ff3d",
    "OWNER": "Boyle Patricia"
}]

Add Task Attachments

Add attachments to a task.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/

Scope: ZohoProjects.tasks.READ, ZohoPC.files.ALL

Request Parameters

uploaddoc*FileAdd file to task comment.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
[{
    "CONTENT_TYPE": "pdf",
    "AUTHOR_ID": "565296969",
    "THUMBNAIL_URL": "https://download.zoho.com/paramdownloadservlet?x-service=EX&x-encoding=gzip&x-mode=2&x-resource_id=033zqca7d98669ef541348a5d2ded5d44ff3d&event-id=033zqca7d98669ef541348a5d2ded5d44ff3d_350x262&x-w=350&x-h=262",
    "FILENAME": "mybook.pdf",
    "UPLOADED_TIME": 1476939840136,
    "DOWNLOAD_URL": "https://download.zoho.com/paramdownloadservlet?x-service=EX&event-id=033zqca7d98669ef541348a5d2ded5d44ff3d_1476939885220&x-encoding=gzip&x-resource_id=033zqca7d98669ef541348a5d2ded5d44ff3d",
    "RESOURCE_ID": "033zqca7d98669ef541348a5d2ded5d44ff3d",
    "OWNER": "Boyle Patricia"
}]

 Delete Task Attachments

Delete attachments associated with the task.

DELETE /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/attachments/[ATTACHMENTID]/

Scope: ZohoProjects.tasks.DELETE, ZohoPC.files.ALL

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
     "response": "Task Document Deleted Successfully"
}

Get All Task Layouts

View the list of all the task layouts available in your portal.

GET  /restapi/portal/[PORTALID]/tasklayouts

Scope: ZohoProjects.projects.READ

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "layouts": [{
        "layout_name": "CustomizedLayout",
        "layout_id": "932200000000304001",
        "is_default": false
    }, {
        "layout_name": "Standard Layout",
        "layout_id": "932200000000277011",
        "is_default": true
    }]
}
    }]
}

Get Task Layout Details

Fetch the details of a task layout as necessary.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasklayouts

Scope: ZohoProjects.projects.READ

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
    "layout_id": "932200000000304001",
    "section_details": [{
        "section_name": "Task Information",
        "customfield_details": [{
            "column_name": "LOGINNAME",
            "is_mandatory": false,
            "is_default": true,
            "display_name": "Owner",
            "column_type": "userpicklist"
        }, {
            "column_name": "CUSTOM_STATUSID",
            "is_mandatory": false,
            "is_default": true,
            "display_name": "Status",
            "column_type": "picklist"
        }, {
            "column_name": "PRIORITY",
            "is_mandatory": false,
            "is_default": true,
            "display_name": "Priority",
            "column_type": "picklist"
        }, {
            "column_name": "PERCENTCOMPLETE",
            "is_mandatory": false,
            "is_default": true,
            "display_name": "Percentcomplete",
            "column_type": "singleline"
        }],
        "is_default": false
    }, {
        "section_name": "New Section",
        "customfield_details": [{
            "column_name": "UDF_CHAR1",
            "is_mandatory": false,
            "is_default": false,
            "display_name": "My_Field",
            "column_type": "singleline"
        }, {
            "column_name": "UDF_DATE1",
            "is_mandatory": false,
            "is_default": false,
            "display_name": "My_Date",
            "column_type": "date"
        }],
        "is_default": false
    }],
    "status_details": [{
        "is_start": true,
        "color": "#eb5768",
        "name": "Open",
        "id": "932200000000277068",
        "is_default": true,
        "type": "open"
    }, {
        "is_start": false,
        "color": "#8eb15a",
        "name": "Closed",
        "id": "932200000000277071",
        "is_default": true,
        "type": "closed"
    }, {
        "is_start": false,
        "color": "#935b1a",
        "name": "To be Tested",
        "id": "932200000000345019",
        "is_default": false,
        "type": "open"
    }]
}
    }]
}

Get Task Custom Views

Gets all the task custom views.

GET  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/views

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task view.
rangeintRange of the task view.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "views": [
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Tasks",
      "id": "0",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Open",
      "id": "6",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Closed",
      "id": "7",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Overdue & Open",
      "id": "38",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Not Assigned",
      "id": "21",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Unscheduled Tasks",
      "id": "10",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Open",
      "id": "19",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Closed",
      "id": "20",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Overdue & Open",
      "id": "37",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Today Tasks",
      "id": "23",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Tasks I Follow",
      "id": "25",
      "is_default": true
    }
  ]
}

Get My Task Custom Views

Gets all the task custom views that you own.

GET  /restapi/portal/[PORTALID]/mytasks/views

Scope: ZohoProjects.tasks.READ

Request Parameters

indexintIndex number of the task view.
rangeintRange of the task view.

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8
{
  "views": [
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Tasks",
      "id": "0",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Open",
      "id": "6",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Closed",
      "id": "7",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "All Overdue & Open",
      "id": "38",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Not Assigned",
      "id": "21",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Unscheduled Tasks",
      "id": "10",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Open",
      "id": "19",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Closed",
      "id": "20",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "My Overdue & Open",
      "id": "37",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Today Tasks",
      "id": "23",
      "is_default": true
    },
    {
      "edit_permission": false,
      "is_favorite": false,
      "name": "Tasks I Follow",
      "id": "25",
      "is_default": true
    }
  ]
}

 Set Dependency Between Tasks

Set dependency between two tasks.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/

Scope: ZohoProjects.tasks.READ

Request Parameters

taskid* longID of the task
predidslongPredecessor ID of the task
projId* longID of the project
toupdate* stringSet the value to dependencyset
childprojIdlongProject ID of the child task
dependencytypestringFS, SS, SF, or FF
gapvaluedays/hourslag time
gaptypestringformat of lag time in days or hours

* Indicates a mandatory param

Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8

{
  "PROJECTID": "1288763000000029023",
  "RESULT": "SUCCESS",
  "GANTTRESPONSE": {
    "PREDECESSORS": {
      "1288763000000072001": {
        "PROJECTID": 1288763000000029000,
        "DEPENDENCYTYPE": "FS"
      }
    },
    "UPDATEDCHILDREN": {
      "1288763000000072007": {
        "DURINDAYS": 1,
        "STARTDATE": "2019,9,05,00,00",
        "STARTDATE_LONG": "1567666800000",
        "ENDTDATE_LONG": "1567666800000",
        "ENDDATE": "2019,9,05,00,00"
      }
    }
  }
}
]}

 Update Lag between Dependent Tasks

Update lag between dependent tasks.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/

Scope: ZohoProjects.tasks.READ

Request Parameters

taskid* longID of the task
predidslongPredecessor ID of the task
projId* longID of the project
toupdate* stringSet the value to gapupdate
gapvaluedays/hourslag time
gaptypestringformat of lag time in days or hours

Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8

{
  "PROJECTID": "1288763000000029023",
  "RESULT": "SUCCESS",
  "GANTTRESPONSE": {
    "PREDECESSORS": {
      "1288763000000072001": {
        "GAPTYPE": "Days",
        "PROJECTID": 1288763000000029000,
        "GAPTYPE_FORMATTED": "day(s)",
        "DEPENDENCYTYPE": "FS",
        "GAPVALUE": 4
      }
    },
    "PREDCHILDS": {},
    "UPDATEDCHILDREN": {
      "1288763000000072007": {
        "DURINDAYS": 1,
        "STARTDATE": "2019,9,09,00,00",
        "STARTDATE_LONG": "1568012400000",
        "ENDTDATE_LONG": "1568012400000",
        "ENDDATE": "2019,9,09,00,00"
      }
    }
  }
}
]}

 Update Dependency Type

Update dependency type between tasks.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/

Scope: ZohoProjects.tasks.READ

Request Parameters

taskid*longID of the task
predidslongPredecessor ID of the task
projId*longID of the project
toupdate*stringSet the value to dependencytypeupdate
dependencytypestringFS, SS, SF, or FF

* Indicates a mandatory param


Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8


{
  "PROJECTID": "1288763000000029023",
  "RESULT": "SUCCESS",
  "GANTTRESPONSE": {
    "PREDECESSORS": {
      "1288763000000072001": {
        "GAPTYPE": "Days",
        "PROJECTID": 1288763000000029000,
        "GAPTYPE_FORMATTED": "day(s)",
        "DEPENDENCYTYPE": "FF",
        "GAPVALUE": 4
      }
    },
    "PREDCHILDS": {},
    "UPDATEDCHILDREN": {
      "1288763000000072007": {
        "DURINDAYS": 1,
        "STARTDATE": "2019,9,08,00,00",
        "STARTDATE_LONG": "1567926000000",
        "ENDTDATE_LONG": "1567926000000",
        "ENDDATE": "2019,9,08,00,00"
      }
    }
  }
}
]}

 Remove Dependency

Remove dependency between tasks.

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/taskdependency/

Scope: ZohoProjects.tasks.READ

Request Parameters

taskid*longID of the task
predidslongPredecessor ID of the task
projId*longID of the project
toupdate*stringSet the value to removedependency

* Indicates a mandatory param

Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8

{
  "PROJECTID": "1288763000000029023",
  "RESULT": "SUCCESS"
}
]}

 Follow Task

Follow a task in the given project

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/follow

Scope: ZohoProjects.tasks.UPDATE

Request Parameters

followerslongUser ID for multiple followers must be separated by commas.

Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8

{
    "tasks": [
        {
            "end_date": "04-21-2021",
            "is_sprints_task": false,
            "milestone_id": "170876000010385161",
            "link": {
                "timesheet": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000010385143/tasks/170876000010385355/logs/"
                },
                "self": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000010385143/tasks/170876000010385355/"
                }
            },
            "description": "",
            "start_date_long": 1618885800000,
            "is_comment_added": false,
            "end_date_long": 1619001000000,
            "end_date_format": "04-21-2021 04:00:00 PM",
            "duration": "2",
            "last_updated_time_long": 1612507314000,
            "is_forum_associated": false,
            "details": {
                "owners": [
                    {
                        "zpuid": 170876000005155070,
                        "name": "Einhard Klein",
                        "id": "2060761",
                        "email": "dieterk@zillum.com"
                    }
                ]
            },
            "id": 170876000010385340,
            "key": "GV1-T60",
            "start_date": "04-20-2021",
            "created_person": "Charu Mathi S Charu Mathi S",
            "created_time_long": 1611302141327,
            "created_time": "01-22-2021",
            "is_reminder_set": false,
            "is_recurrence_set": false,
            "created_time_format": "01-22-2021 01:25:41 PM",
            "subtasks": false,
            "work": "16:00",
            "custom_fields": [],
            "isparent": false,
            "duration_type": "days",
            "start_date_format": "04-20-2021 08:00:00 AM",
            "work_type": "work_hrs_per_day",
            "task_followers": {
                "FOLUSERS": "639281665,668494696",
                "FOLLOWERSIZE": 2,
                "FOLLOWERS": [
                    {
                        "FPHOTO": "https://contacts.zoho.com/file?fs=thumb&exp=600&ID=639281665",
                        "FOLLOWERID": "639281665",
                        "FNAME": "Lin Lin Brenn"
                    },
                    {
                        "FPHOTO": "https://contacts.zoho.com/file?fs=thumb&exp=600&ID=668494696",
                        "FOLLOWERID": "668494696",
                        "FNAME": "Charu Mathi S Charu Mathi S"
                    }
                ]
            },
            "completed": false,
            "priority": "Low",
            "created_by": "668494696",
            "percent_complete": "20",
            "tags": [
                {
                    "name": "Q2",
                    "id": "170876000010385441",
                    "color_class": "bg-tag8"
                }
            ],
            "last_updated_time": "02-05-2021",
            "name": "Basic division",
            "is_docs_assocoated": false,
            "id_string": "170876000010385355",
            "log_hours": {
                "non_billable_hours": "0.0",
                "billable_hours": "0.0"
            },
            "billingtype": "None",
            "last_updated_time_format": "02-05-2021 12:11:54 PM",
            "tasklist": {
                "name": "Math",
                "id": "170876000010385293"
            },
            "order_sequence": 3,
            "status": {
                "name": "Open",
                "id": "170876000004668068",
                "type": "open",
                "color_code": "#08aeea"
            }
        }
    ]
}

 Unfollow Task

Unfollow a task in the given project

POST /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/unfollow

Scope: ZohoProjects.tasks.UPDATE

Sample Response

Status: 200 Success
Content Type: application/json;charset=utf-8

{
    "tasks": [
        {
            "end_date": "04-21-2021",
            "is_sprints_task": false,
            "milestone_id": "170876000010385161",
            "link": {
                "timesheet": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000010385143/tasks/170876000010385355/logs/"
                },
                "self": {
                    "url": "https://projectsapi.zoho.com/restapi/portal/2063927/projects/170876000010385143/tasks/170876000010385355/"
                }
            },
            "description": "",
            "start_date_long": 1618885800000,
            "is_comment_added": false,
            "end_date_long": 1619001000000,
            "end_date_format": "04-21-2021 04:00:00 PM",
            "duration": "2",
            "last_updated_time_long": 1612507388000,
            "is_forum_associated": false,
            "details": {
                "owners": [
                    {
                        "zpuid": 170876000005155070,
                        "name": "Einhard Klein",
                        "id": "2060761",
                        "email": "dieterk@zillum.com"
                    }
                ]
            },
            "id": 170876000010385340,
            "key": "GV1-T60",
            "start_date": "04-20-2021",
            "created_person": "Charu Mathi S Charu Mathi S",
            "created_time_long": 1611302141327,
            "created_time": "01-22-2021",
            "is_reminder_set": false,
            "is_recurrence_set": false,
            "created_time_format": "01-22-2021 01:25:41 PM",
            "subtasks": false,
            "work": "16:00",
            "custom_fields": [],
            "isparent": false,
            "duration_type": "days",
            "start_date_format": "04-20-2021 08:00:00 AM",
            "work_type": "work_hrs_per_day",
            "task_followers": {
                "FOLUSERS": "639281665,668494696",
                "FOLLOWERSIZE": 2,
                "FOLLOWERS": [
                    {
                        "FPHOTO": "https://contacts.zoho.com/file?fs=thumb&exp=600&ID=639281665",
                        "FOLLOWERID": "639281665",
                        "FNAME": "Lin Lin Brenn"
                    },
                    {
                        "FPHOTO": "https://contacts.zoho.com/file?fs=thumb&exp=600&ID=668494696",
                        "FOLLOWERID": "668494696",
                        "FNAME": "Charu Mathi S Charu Mathi S"
                    }
                ]
            },
            "completed": false,
            "priority": "Low",
            "created_by": "668494696",
            "percent_complete": "20",
            "tags": [
                {
                    "name": "Q2",
                    "id": "170876000010385441",
                    "color_class": "bg-tag8"
                }
            ],
            "last_updated_time": "02-05-2021",
            "name": "Basic division",
            "is_docs_assocoated": false,
            "id_string": "170876000010385355",
            "log_hours": {
                "non_billable_hours": "0.0",
                "billable_hours": "0.0"
            },
            "billingtype": "None",
            "last_updated_time_format": "02-05-2021 12:13:08 PM",
            "tasklist": {
                "name": "Math",
                "id": "170876000010385293"
            },
            "order_sequence": 3,
            "status": {
                "name": "Open",
                "id": "170876000004668068",
                "type": "open",
                "color_code": "#08aeea"
            }
        }
    ]
}

Associate Bugs

Associate related bugs to a task

POST /api/v3/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/bugs

Scope: ZohoProjects.tasks.CREATE

Request Parameters

bug_ids*JSON ArrayID of the bugs

* Indicates a mandatory param

Sample Response

Status :200 success
Content Type: application/json;charset=utf-8
{
"is_task_bug_mapped", true
}

Dissociate Bugs

Dissociate bugs from a task

DELETE /api/v3/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/bug/[BUGID]

Scope: ZohoProjects.tasks.DELETE

Sample Response

Status : 204 success

Move Tasks

Moves a task from one tasklist to another tasklist. The target tasklist can be of the same project or different project.

POST  /restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/[TASKID]/move

Scope: ZohoProjects.tasks.UPDATE

Request Parameters

from_todolist* Long  ID of the tasklist in which the task exists.
to_todolist* LongID of the tasklist to which the task has to be moved.

* Indicates a mandatory param

Sample Response

Status: 200 Success

Content Type: application/json;charset=utf-8

{

    "message": "task moved successfully"

}

Task Status History from Portal

Fetches status history of tasks from the Portal.

GET /api/v3/portal/{{Portal_Id}}/taskstatushistory

Scope: ZohoProjects.tasks.READ

Request Parameters

ParamData TypeDescription
indexintIndex number of the task.
rangeintRange of the tasks.
last_modified_timelongTime in milliseconds.

Sample Response

[
  {
    "name": "CART2",
    "status_history": [
      {
        "updated_on": "2021-12-15T06:11:09.381Z",
        "updated_status": {
          "name": "Waiting",
          "id": "1287511000000171001"
        },
        "updated_by": {
          "name": "Malathie C",
          "id": "668495354",
          "email": "malathie.c@zohocorp.com",
          "zp_id": "1287511000000020034"
        },
        "transition_time": {
          "duration": "5 days 20 hrs 56 mins 37 secs",
          "duration_in_millis": "507397317"
        },
        "previous_status": {
          "name": "Open",
          "id": "1287511000000016068"
        }
      }
    ],
    "project": {
      "id": "1287511000000465161"
    },
    "id": "1287511000000478003",
    "status": {
      "name": "Waiting",
      "id": "1287511000000171001"
    }
  },
  {
    "name": "Task2",
    "status_history": [
      {
        "updated_on": "2021-12-15T06:11:25.675Z",
        "updated_status": {
          "name": "In Progress",
          "id": "1287511000000027065"
        },
        "updated_by": {
          "name": "Malathie C",
          "id": "668495354",
          "email": "malathie.c@zohocorp.com",
          "zp_id": "1287511000000020034"
        },
        "transition_time": {
          "duration": "5 secs",
          "duration_in_millis": "5478"
        },
        "previous_status": {
          "name": "Open",
          "id": "1287511000000016068"
        }
      }
    ],
    "project": {
      "id": "1287511000000465161"
    },
    "id": "1287511000000507023",
    "status": {
      "name": "In Progress",
      "id": "1287511000000027065"
    }
  }
]

Task Status History from Project

Fetches status history of tasks from the Project.

GET /api/v3/portal/{Portal_Id}/projects/{Project_Id}/taskstatushistory

Scope: ZohoProjects.tasks.READ

Request Parameters

ParamData TypeDescription
indexintIndex number of the task.
rangeintRange of the tasks.
last_modified_timelongTime in milliseconds.

Sample Response

[
  {
    "name": "CART2",
    "status_history": [
      {
        "updated_on": "2021-12-15T06:11:09.381Z",
        "updated_status": {
          "name": "Waiting",
          "id": "1287511000000171001"
        },
        "updated_by": {
          "name": "Malathie C",
          "id": "668495354",
          "email": "malathie.c@zohocorp.com",
          "zp_id": "1287511000000020034"
        },
        "transition_time": {
          "duration": "5 days 20 hrs 56 mins 37 secs",
          "duration_in_millis": "507397317"
        },
        "previous_status": {
          "name": "Open",
          "id": "1287511000000016068"
        }
      }
    ],
    "project": {
      "id": "1287511000000465161"
    },
    "id": "1287511000000478003",
    "status": {
      "name": "Waiting",
      "id": "1287511000000171001"
    }
  },
  {
    "name": "Task2",
    "status_history": [
      {
        "updated_on": "2021-12-15T06:11:25.675Z",
        "updated_status": {
          "name": "In Progress",
          "id": "1287511000000027065"
        },
        "updated_by": {
          "name": "Malathie C",
          "id": "668495354",
          "email": "malathie.c@zohocorp.com",
          "zp_id": "1287511000000020034"
        },
        "transition_time": {
          "duration": "5 secs",
          "duration_in_millis": "5478"
        },
        "previous_status": {
          "name": "Open",
          "id": "1287511000000016068"
        }
      }
    ],
    "project": {
      "id": "1287511000000465161"
    },
    "id": "1287511000000507023",
    "status": {
      "name": "In Progress",
      "id": "1287511000000027065"
    }
  }
]