Skip to content

Project Task Worklog

Helps you track and capture the work done by a team member. 

Attributes

id (long)
Unique id of the Worklog

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

owner (user)
Owner of the worklog

owner (user)
The technician who works on the worklog

Example

{
  "owner": {
    "name": "test-owner",
    "id": "234567890123456"
  }
}

description (html)
Description about the worklog.

description (html)
HTML is a text area where html elements can be used.

Example

<b>The content to be displayed</b>

start_time (datetime)
Date and time to start the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

start_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

end_time (datetime)
Date and time to end the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

end_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

recorded_time (datetime)
Date and time of creation of Worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

recorded_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

exchange_rate (double)

Exchange rate of the currency used

exchange_rate (double)
These are numbers that can include contains decimals.

Example

23.08

include_nonoperational_hours (boolean)

Indicates whether to include non-operational hours or not.

include_nonoperational_hours (boolean)
Boolean value which can have two possible values. The values are true and false.

mark_first_response (boolean)

Indicates whether to set responded date of a Request/ticket while adding worklog for that request/ticket

mark_first_response (boolean)
Boolean value which can have two possible values. The values are true and false.

currency (currency)

Indicates the currency in which that particular worklog added .

currency (currency)
Indicates the currency in which that particular worklog added .

Example

{
  "currency": {
    "symbol": "$",
    "code": "USD",
    "exchange_rate": "1",
    "is_frequent": true,
    "name": "US Dollar",
    "id": "2000000004427"
  }
}

worklog_type (worklog_type)

Worklog type allows you to record the different modes of technician’s work

worklog_type (worklog_type)

created_by (user)read only

The user who created the worklog

created_by (user)
The User who created the worklog

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

total_charge (cost)read only

The total charges related to the worklog

total_charge (cost)

Example

{
  "total_charge": {
    "display_value": "50",
    "currency_symbol": "$",
    "value": 30,
    "secondary_currency": {
      "display_value": 100,
      "currency_symbol": "Rs.",
      "value": 100
    }
  }
}

time_spent (timediff)

The time spent in terms of hours, minutes and seconds.

time_spent (timediff)
Contains the Time spent in hours, minutes and seconds

Example

{
  "time_spent": {
    "hours": "1895",
    "minutes": 20
  }
}

other_charge (cost)

Extra charges other than the Technician related to the worklog.

other_charge (cost)

Example

{
  "other_charge": {
    "display_value": "30",
    "currency_symbol": "$",
    "value": "30",
    "secondary_currency": {
      "display_value": "60",
      "currency_symbol": "Rs.",
      "value": "60"
    }
  }
}

tech_charge (cost)

The technician charges related to the worklog

tech_charge (cost)

Example

{
  "tech_charge": {
    "display_value": "20",
    "currency_symbol": "$",
    "value": "20",
    "secondary_currency": {
      "display_value": "40",
      "currency_symbol": "Rs.",
      "value": "40"
    }
  }
}

Add Project Task Worklog

This operation helps you Add worklog for project task.

Mandatory Fields :- owner

Url

<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs

Attributes

id (long)
Unique id of the Worklog

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

owner (user)
Owner of the worklog

owner (user)
The technician who works on the worklog

Example

{
  "owner": {
    "name": "test-owner",
    "id": "234567890123456"
  }
}

description (html)
Description about the worklog.

description (html)
HTML is a text area where html elements can be used.

Example

<b>The content to be displayed</b>

start_time (datetime)
Date and time to start the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

start_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

end_time (datetime)
Date and time to end the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

end_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

recorded_time (datetime)
Date and time of creation of Worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

recorded_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

exchange_rate (double)

Exchange rate of the currency used

exchange_rate (double)
These are numbers that can include contains decimals.

Example

23.08

include_nonoperational_hours (boolean)

Indicates whether to include non-operational hours or not.

include_nonoperational_hours (boolean)
Boolean value which can have two possible values. The values are true and false.

mark_first_response (boolean)

Indicates whether to set responded date of a Request/ticket while adding worklog for that request/ticket

mark_first_response (boolean)
Boolean value which can have two possible values. The values are true and false.

currency (currency)

Indicates the currency in which that particular worklog added .

currency (currency)
Indicates the currency in which that particular worklog added .

Example

{
  "currency": {
    "symbol": "$",
    "code": "USD",
    "exchange_rate": "1",
    "is_frequent": true,
    "name": "US Dollar",
    "id": "2000000004427"
  }
}

worklog_type (worklog_type)

Worklog type allows you to record the different modes of technician’s work

worklog_type (worklog_type)

created_by (user)read only

The user who created the worklog

created_by (user)
The User who created the worklog

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

total_charge (cost)read only

The total charges related to the worklog

total_charge (cost)

Example

{
  "total_charge": {
    "display_value": "50",
    "currency_symbol": "$",
    "value": 30,
    "secondary_currency": {
      "display_value": 100,
      "currency_symbol": "Rs.",
      "value": 100
    }
  }
}

time_spent (timediff)

The time spent in terms of hours, minutes and seconds.

time_spent (timediff)
Contains the Time spent in hours, minutes and seconds

Example

{
  "time_spent": {
    "hours": "1895",
    "minutes": 20
  }
}

other_charge (cost)

Extra charges other than the Technician related to the worklog.

other_charge (cost)

Example

{
  "other_charge": {
    "display_value": "30",
    "currency_symbol": "$",
    "value": "30",
    "secondary_currency": {
      "display_value": "60",
      "currency_symbol": "Rs.",
      "value": "60"
    }
  }
}

tech_charge (cost)

The technician charges related to the worklog

tech_charge (cost)

Example

{
  "tech_charge": {
    "display_value": "20",
    "currency_symbol": "$",
    "value": "20",
    "secondary_currency": {
      "display_value": "40",
      "currency_symbol": "Rs.",
      "value": "40"
    }
  }
}

$ curl <service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs\
      -X POST\
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"\
      -d input_data='   {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}'
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
input_data =    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
};
params = {"input_data": input_data};
response = invokeurl
[
    url: url
    type: POST
    parameters: params
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$input_data = @'
    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}
'@
$data = @{ 'input_data' = $input_data}
$response = Invoke-RestMethod -Uri $url -Method post -Body $data -Headers $headers
$response
#Python version - 3.10
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
input_data = '''    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}'''
data = urlencode({"input_data":input_data}).encode()
httprequest = Request(url, headers=headers,data=data, method="POST")
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
    "response_status": {
        "status_code": 2000,
        "status": "success"
    },
    "worklog": {
        "owner": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10.0",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "include_nonoperational_hours": true,
        "exchange_rate": "1",
        "end_time": {
            "display_value": "Apr 24, 2025 09:15 AM",
            "value": "1745466355256"
        },
        "description": "Added worklog",
        "other_charge": {
            "display_value": "12.00",
            "currency_symbol": "$",
            "value": 12,
            "secondary_currency": {
                "display_value": "12.00",
                "currency_symbol": "$",
                "value": 12
            }
        },
        "total_charge": {
            "display_value": "132.00",
            "currency_symbol": "$",
            "value": 132,
            "secondary_currency": {
                "display_value": "132.00",
                "currency_symbol": "$",
                "value": 132
            }
        },
        "created_by": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "recorded_time": {
            "display_value": "Apr 24, 2025 09:16 AM",
            "value": "1745466374289"
        },
        "time_spent": {
            "hours": "12",
            "minutes": "0",
            "value": "43200000"
        },
        "tech_charge": {
            "display_value": "120.00",
            "currency_symbol": "$",
            "value": 120,
            "secondary_currency": {
                "display_value": "120.00",
                "currency_symbol": "$",
                "value": 120
            }
        },
        "start_time": {
            "display_value": "Apr 23, 2025 09:15 PM",
            "value": "1745423155256"
        },
        "worklog_type": null,
        "currency": {
            "symbol": "$",
            "code": "USD",
            "deleted": false,
            "exchange_rate": "1",
            "name": "US Dollar",
            "id": "2000000004427"
        },
        "id": "200000005987"
    }
}

Edit Project Task Worklog

This operation helps you Update worklog for project task.

Url

<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}

Attributes

id (long)
Unique id of the Worklog

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

owner (user)
Owner of the worklog

owner (user)
The technician who works on the worklog

Example

{
  "owner": {
    "name": "test-owner",
    "id": "234567890123456"
  }
}

description (html)
Description about the worklog.

description (html)
HTML is a text area where html elements can be used.

Example

<b>The content to be displayed</b>

start_time (datetime)
Date and time to start the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

start_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

end_time (datetime)
Date and time to end the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

end_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

recorded_time (datetime)
Date and time of creation of Worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

recorded_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

exchange_rate (double)

Exchange rate of the currency used

exchange_rate (double)
These are numbers that can include contains decimals.

Example

23.08

include_nonoperational_hours (boolean)

Indicates whether to include non-operational hours or not.

include_nonoperational_hours (boolean)
Boolean value which can have two possible values. The values are true and false.

mark_first_response (boolean)

Indicates whether to set responded date of a Request/ticket while adding worklog for that request/ticket

mark_first_response (boolean)
Boolean value which can have two possible values. The values are true and false.

currency (currency)

Indicates the currency in which that particular worklog added .

currency (currency)
Indicates the currency in which that particular worklog added .

Example

{
  "currency": {
    "symbol": "$",
    "code": "USD",
    "exchange_rate": "1",
    "is_frequent": true,
    "name": "US Dollar",
    "id": "2000000004427"
  }
}

worklog_type (worklog_type)

Worklog type allows you to record the different modes of technician’s work

worklog_type (worklog_type)

created_by (user)read only

The user who created the worklog

created_by (user)
The User who created the worklog

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

total_charge (cost)read only

The total charges related to the worklog

total_charge (cost)

Example

{
  "total_charge": {
    "display_value": "50",
    "currency_symbol": "$",
    "value": 30,
    "secondary_currency": {
      "display_value": 100,
      "currency_symbol": "Rs.",
      "value": 100
    }
  }
}

time_spent (timediff)

The time spent in terms of hours, minutes and seconds.

time_spent (timediff)
Contains the Time spent in hours, minutes and seconds

Example

{
  "time_spent": {
    "hours": "1895",
    "minutes": 20
  }
}

other_charge (cost)

Extra charges other than the Technician related to the worklog.

other_charge (cost)

Example

{
  "other_charge": {
    "display_value": "30",
    "currency_symbol": "$",
    "value": "30",
    "secondary_currency": {
      "display_value": "60",
      "currency_symbol": "Rs.",
      "value": "60"
    }
  }
}

tech_charge (cost)

The technician charges related to the worklog

tech_charge (cost)

Example

{
  "tech_charge": {
    "display_value": "20",
    "currency_symbol": "$",
    "value": "20",
    "secondary_currency": {
      "display_value": "40",
      "currency_symbol": "Rs.",
      "value": "40"
    }
  }
}

$ curl <service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}\
      -X PUT\ 
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"\
      -d input_data='   {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}'
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
input_data =    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
};
params = {"input_data": input_data};
response = invokeurl
[
    url: url
    type: PUT
    parameters: params
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
$headers = @{"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
$input_data = @'
    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}
'@
$data = @{ 'input_data' = $input_data}
$response = Invoke-RestMethod -Uri $url -Method put -Body $data -Headers $headers
$response
#Python version - 3.10
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
input_data = '''    {
  "worklog": {
    "end_time": {
      "value": 1745466355256
    },
    "other_charge": {
      "secondary_currency": {
        "value": "12"
      },
      "value": "12"
    },
    "tech_charge": {
      "secondary_currency": {
        "value": "120"
      },
      "value": "120"
    },
    "include_nonoperational_hours": true,
    "owner": {
      "id": "2000000040351"
    },
    "currency": {
      "id": "2000000004427"
    },
    "start_time": {
      "value": 1745423155256
    },
    "time_spent": {
      "hours": "12",
      "minutes": "0"
    },
    "exchange_rate": 1,
    "mark_first_response": false
  }
}'''
data = urlencode({"input_data":input_data}).encode()
httprequest = Request(url, headers=headers,data=data, method="PUT")
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
    "response_status": {
        "status_code": 2000,
        "status": "success"
    },
    "worklog": {
        "owner": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10.0",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "include_nonoperational_hours": true,
        "exchange_rate": "1",
        "end_time": {
            "display_value": "Apr 24, 2025 09:15 AM",
            "value": "1745466355256"
        },
        "description": "Added worklog",
        "other_charge": {
            "display_value": "12.00",
            "currency_symbol": "$",
            "value": 12,
            "secondary_currency": {
                "display_value": "12.00",
                "currency_symbol": "$",
                "value": 12
            }
        },
        "total_charge": {
            "display_value": "132.00",
            "currency_symbol": "$",
            "value": 132,
            "secondary_currency": {
                "display_value": "132.00",
                "currency_symbol": "$",
                "value": 132
            }
        },
        "created_by": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "recorded_time": {
            "display_value": "Apr 24, 2025 09:16 AM",
            "value": "1745466374289"
        },
        "time_spent": {
            "hours": "12",
            "minutes": "0",
            "value": "43200000"
        },
        "tech_charge": {
            "display_value": "120.00",
            "currency_symbol": "$",
            "value": 120,
            "secondary_currency": {
                "display_value": "120.00",
                "currency_symbol": "$",
                "value": 120
            }
        },
        "start_time": {
            "display_value": "Apr 23, 2025 09:15 PM",
            "value": "1745423155256"
        },
        "worklog_type": null,
        "currency": {
            "symbol": "$",
            "code": "USD",
            "deleted": false,
            "exchange_rate": "1",
            "name": "US Dollar",
            "id": "2000000004427"
        },
        "id": "200000005987"
    }
}

Get Project Task Worklog

This operation helps you Get worklog for project task.

Url

<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}

Attributes

id (long)
Unique id of the Worklog

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

owner (user)
Owner of the worklog

owner (user)
The technician who works on the worklog

Example

{
  "owner": {
    "name": "test-owner",
    "id": "234567890123456"
  }
}

description (html)
Description about the worklog.

description (html)
HTML is a text area where html elements can be used.

Example

<b>The content to be displayed</b>

start_time (datetime)
Date and time to start the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

start_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

end_time (datetime)
Date and time to end the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

end_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

recorded_time (datetime)
Date and time of creation of Worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

recorded_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

exchange_rate (double)

Exchange rate of the currency used

exchange_rate (double)
These are numbers that can include contains decimals.

Example

23.08

include_nonoperational_hours (boolean)

Indicates whether to include non-operational hours or not.

include_nonoperational_hours (boolean)
Boolean value which can have two possible values. The values are true and false.

mark_first_response (boolean)

Indicates whether to set responded date of a Request/ticket while adding worklog for that request/ticket

mark_first_response (boolean)
Boolean value which can have two possible values. The values are true and false.

currency (currency)

Indicates the currency in which that particular worklog added .

currency (currency)
Indicates the currency in which that particular worklog added .

Example

{
  "currency": {
    "symbol": "$",
    "code": "USD",
    "exchange_rate": "1",
    "is_frequent": true,
    "name": "US Dollar",
    "id": "2000000004427"
  }
}

worklog_type (worklog_type)

Worklog type allows you to record the different modes of technician’s work

worklog_type (worklog_type)

created_by (user)read only

The user who created the worklog

created_by (user)
The User who created the worklog

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

total_charge (cost)read only

The total charges related to the worklog

total_charge (cost)

Example

{
  "total_charge": {
    "display_value": "50",
    "currency_symbol": "$",
    "value": 30,
    "secondary_currency": {
      "display_value": 100,
      "currency_symbol": "Rs.",
      "value": 100
    }
  }
}

time_spent (timediff)

The time spent in terms of hours, minutes and seconds.

time_spent (timediff)
Contains the Time spent in hours, minutes and seconds

Example

{
  "time_spent": {
    "hours": "1895",
    "minutes": 20
  }
}

other_charge (cost)

Extra charges other than the Technician related to the worklog.

other_charge (cost)

Example

{
  "other_charge": {
    "display_value": "30",
    "currency_symbol": "$",
    "value": "30",
    "secondary_currency": {
      "display_value": "60",
      "currency_symbol": "Rs.",
      "value": "60"
    }
  }
}

tech_charge (cost)

The technician charges related to the worklog

tech_charge (cost)

Example

{
  "tech_charge": {
    "display_value": "20",
    "currency_symbol": "$",
    "value": "20",
    "secondary_currency": {
      "display_value": "40",
      "currency_symbol": "Rs.",
      "value": "40"
    }
  }
}

$ curl -G <service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}\
      -X GET\
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};          
response = invokeurl
[
    url: url
    type: GET
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}  
$response = Invoke-RestMethod -Uri $url -Method get -Headers $headers 
$response
#Python version - 3.8
#This script requires requests module installed in python.
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
httprequest = Request(url, headers=headers)
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
    "response_status": {
        "status_code": 2000,
        "status": "success"
    },
    "worklog": {
        "owner": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10.0",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "include_nonoperational_hours": true,
        "exchange_rate": "1",
        "end_time": {
            "display_value": "Apr 24, 2025 09:15 AM",
            "value": "1745466355256"
        },
        "description": "Added worklog",
        "other_charge": {
            "display_value": "12.00",
            "currency_symbol": "$",
            "value": 12,
            "secondary_currency": {
                "display_value": "12.00",
                "currency_symbol": "$",
                "value": 12
            }
        },
        "total_charge": {
            "display_value": "132.00",
            "currency_symbol": "$",
            "value": 132,
            "secondary_currency": {
                "display_value": "132.00",
                "currency_symbol": "$",
                "value": 132
            }
        },
        "created_by": {
            "email_id": "test@zoho.com",
            "is_technician": true,
            "sms_mail": null,
            "mobile": "1234567890",
            "last_name": null,
            "user_scope": "internal_user",
            "sms_mail_id": null,
            "cost_per_hour": "10",
            "site": {
                "deleted": false,
                "name": "Base Site",
                "id": "2000000040132",
                "is_default": true
            },
            "phone": "22",
            "employee_id": null,
            "name": "Maverick",
            "id": "2000000040351",
            "is_vip_user": false,
            "department": null,
            "first_name": "Maverick",
            "job_title": null
        },
        "recorded_time": {
            "display_value": "Apr 24, 2025 09:16 AM",
            "value": "1745466374289"
        },
        "time_spent": {
            "hours": "12",
            "minutes": "0",
            "value": "43200000"
        },
        "tech_charge": {
            "display_value": "120.00",
            "currency_symbol": "$",
            "value": 120,
            "secondary_currency": {
                "display_value": "120.00",
                "currency_symbol": "$",
                "value": 120
            }
        },
        "start_time": {
            "display_value": "Apr 23, 2025 09:15 PM",
            "value": "1745423155256"
        },
        "worklog_type": null,
        "currency": {
            "symbol": "$",
            "code": "USD",
            "deleted": false,
            "exchange_rate": "1",
            "name": "US Dollar",
            "id": "2000000004427"
        },
        "id": "200000005987"
    }
}

Get List Project Task Worklog

This operation helps you Get all worklogs for project task.

Url

<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs

Attributes

id (long)
Unique id of the Worklog

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

owner (user)
Owner of the worklog

owner (user)
The technician who works on the worklog

Example

{
  "owner": {
    "name": "test-owner",
    "id": "234567890123456"
  }
}

description (html)
Description about the worklog.

description (html)
HTML is a text area where html elements can be used.

Example

<b>The content to be displayed</b>

start_time (datetime)
Date and time to start the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

start_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

end_time (datetime)
Date and time to end the worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

end_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

recorded_time (datetime)
Date and time of creation of Worklog. JSON Object has the “value” in milliseconds and “display_value” in the standard date format.

recorded_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

exchange_rate (double)

Exchange rate of the currency used

exchange_rate (double)
These are numbers that can include contains decimals.

Example

23.08

include_nonoperational_hours (boolean)

Indicates whether to include non-operational hours or not.

include_nonoperational_hours (boolean)
Boolean value which can have two possible values. The values are true and false.

mark_first_response (boolean)

Indicates whether to set responded date of a Request/ticket while adding worklog for that request/ticket

mark_first_response (boolean)
Boolean value which can have two possible values. The values are true and false.

currency (currency)

Indicates the currency in which that particular worklog added .

currency (currency)
Indicates the currency in which that particular worklog added .

Example

{
  "currency": {
    "symbol": "$",
    "code": "USD",
    "exchange_rate": "1",
    "is_frequent": true,
    "name": "US Dollar",
    "id": "2000000004427"
  }
}

worklog_type (worklog_type)

Worklog type allows you to record the different modes of technician’s work

worklog_type (worklog_type)

created_by (user)read only

The user who created the worklog

created_by (user)
The User who created the worklog

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

total_charge (cost)read only

The total charges related to the worklog

total_charge (cost)

Example

{
  "total_charge": {
    "display_value": "50",
    "currency_symbol": "$",
    "value": 30,
    "secondary_currency": {
      "display_value": 100,
      "currency_symbol": "Rs.",
      "value": 100
    }
  }
}

time_spent (timediff)

The time spent in terms of hours, minutes and seconds.

time_spent (timediff)
Contains the Time spent in hours, minutes and seconds

Example

{
  "time_spent": {
    "hours": "1895",
    "minutes": 20
  }
}

other_charge (cost)

Extra charges other than the Technician related to the worklog.

other_charge (cost)

Example

{
  "other_charge": {
    "display_value": "30",
    "currency_symbol": "$",
    "value": "30",
    "secondary_currency": {
      "display_value": "60",
      "currency_symbol": "Rs.",
      "value": "60"
    }
  }
}

tech_charge (cost)

The technician charges related to the worklog

tech_charge (cost)

Example

{
  "tech_charge": {
    "display_value": "20",
    "currency_symbol": "$",
    "value": "20",
    "secondary_currency": {
      "display_value": "40",
      "currency_symbol": "Rs.",
      "value": "40"
    }
  }
}

$ curl -G <service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs\
      -X GET\ 
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"\
      --data-urlencode input_data='{}'
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
input_data = {};
params = {"input_data":input_data};           
response = invokeurl
[
    url: url
    type: GET
    parameters:params
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$input_data = @'{}'@
$data = @{ 'input_data' = $input_data}    
$response = Invoke-RestMethod -Uri $url -Method get -Body $data -Headers $headers 
$response
#Python version - 3.8
#This script requires requests module installed in python.
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
input_data = '''{}'''       
url += "?" + urlencode({"input_data":input_data})
httprequest = Request(url, headers=headers)
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
    "response_status": [
        {
            "status_code": 2000,
            "status": "success"
        }
    ],
    "list_info": {
        "has_more_rows": false,
        "row_count": 1
    },
    "worklogs": [
        {
            "owner": {
                "email_id": "test@zoho.com",
                "is_technician": true,
                "sms_mail": null,
                "mobile": "1234567890",
                "last_name": null,
                "user_scope": "internal_user",
                "sms_mail_id": null,
                "cost_per_hour": "10.0",
                "site": {
                    "deleted": false,
                    "name": "Base Site",
                    "id": "2000000040132",
                    "is_default": true
                },
                "phone": "22",
                "employee_id": null,
                "name": "Maverick",
                "id": "2000000040351",
                "is_vip_user": false,
                "department": null,
                "first_name": "Maverick",
                "job_title": null
            },
            "include_nonoperational_hours": true,
            "exchange_rate": "1",
            "end_time": {
                "display_value": "Apr 24, 2025 09:15 AM",
                "value": "1745466355256"
            },
            "description": "Added worklog",
            "other_charge": {
                "display_value": "12.00",
                "currency_symbol": "$",
                "value": 12,
                "secondary_currency": {
                    "display_value": "12.00",
                    "currency_symbol": "$",
                    "value": 12
                }
            },
            "total_charge": {
                "display_value": "132.00",
                "currency_symbol": "$",
                "value": 132,
                "secondary_currency": {
                    "display_value": "132.00",
                    "currency_symbol": "$",
                    "value": 132
                }
            },
            "created_by": {
                "email_id": "test@zoho.com",
                "is_technician": true,
                "sms_mail": null,
                "mobile": "1234567890",
                "last_name": null,
                "user_scope": "internal_user",
                "sms_mail_id": null,
                "cost_per_hour": "10",
                "site": {
                    "deleted": false,
                    "name": "Base Site",
                    "id": "2000000040132",
                    "is_default": true
                },
                "phone": "22",
                "employee_id": null,
                "name": "Maverick",
                "id": "2000000040351",
                "is_vip_user": false,
                "department": null,
                "first_name": "Maverick",
                "job_title": null
            },
            "recorded_time": {
                "display_value": "Apr 24, 2025 09:16 AM",
                "value": "1745466374289"
            },
            "time_spent": {
                "hours": "12",
                "minutes": "0",
                "value": "43200000"
            },
            "tech_charge": {
                "display_value": "120.00",
                "currency_symbol": "$",
                "value": 120,
                "secondary_currency": {
                    "display_value": "120.00",
                    "currency_symbol": "$",
                    "value": 120
                }
            },
            "start_time": {
                "display_value": "Apr 23, 2025 09:15 PM",
                "value": "1745423155256"
            },
            "worklog_type": null,
            "currency": {
                "symbol": "$",
                "code": "USD",
                "deleted": false,
                "exchange_rate": "1",
                "name": "US Dollar",
                "id": "2000000004427"
            },
            "id": "200000005987"
        }
    ]
}

Delete Project Task Worklog

This operation helps you Delete worklog for project task.

Url

<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}

$ curl <service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}\
      -X DELETE\ 
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
response = invokeurl
[
    url: url
    type: DELETE
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$response = Invoke-RestMethod -Uri $url -Method delete -Headers $headers
$response
#Python version - 3.10
from urllib.error import HTTPError
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/projects/{project_id}/tasks/{task_id}/worklogs/{worklog_id}"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
httprequest = Request(url, headers=headers,method="DELETE")
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
  "response_status": {
    "status_code": 2000,
    "status": "success"
  }
}