The V3 API format for Project, Task, and Worklog has been revised.
To consume the latest format of the API, update the value for Accept key under Headers as shown below:
.png?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kemY4dnF2MjRlcWhnLmNsb3VkZnJvbnQubmV0L3VzZXJmaWxlcy84NjYvMTQyNjIvY2tmaW5kZXIvaW1hZ2VzL3F1L2hlYWRlcjElMjAoMSkucG5nIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxNzY0NDc0ODIyfX19XX0_&Signature=MaXJARJX2EV4bf8KnnThPQLmCie-g2Sb6Q~KS5ngydfBgAyMxJVd5z8H4f1R9l2TLTLXjFJcK2b3Kb20odDu0k2JW85QRdCbrKKgnvui6bi6eqz8tqlH~fuJHYH71Ml45cFn0zD7nIKFN-itXCUJG~EFH4xtSr3y3y125uiKqXciyro0KSN3h9yNXV7Ut4EBVy1~lc5IX5F4-MiSvJK32Ui5VhEIo~LmBk3jcHFB57QY400MV0e-GAbr1NhATrXl6d~O~KMKhZvOXkwV6I3akMu~k3mVhEtK7qpV7YXTjv337ygwGh2604VTfZEJXsl1PGOBJVSSvU5no5p5ovvoLA__&Key-Pair-Id=K2TK3EG287XSFC)
For an easier transition, we have the below document which captures the differences between V3 API Old and V3 API New format.
Differences are listed entity wise
Under Projects the major differences are in the following areas:
Field Names
|
OLD |
NEW |
Difference |
|
project_code |
code |
The redundant word "project" is removed.
|
|
project_type |
type |
|
|
requested_by |
requester |
Names updated for correctness |
|
projected_on |
projected_end_time |
|
|
- |
attachments |
The new version supports attachments to entities. |
|
OLD |
NEW |
Difference |
|
template |
template |
In the NEW format, if the template is provided, then it is not mandatory to provide Title and Status. |
|
title |
title |
In the NEW format, the Title is not needed if the template is provided. |
|
status |
status |
In the NEW format, Status is not mandatory. The default Status 'Open' will be applied if no value is given. |
|
OLD |
NEW |
Difference |
|
description |
description |
In the NEW format, by default, it will be listed in the response. |
|
project_type |
type |
|
|
- |
template |
|
|
- |
attachments |
Under Milestone the major differences are in the following areas:
Field Name
|
OLD |
NEW |
Difference |
|
projected_on |
projected_end_time |
Name updated for correctness |
|
- |
attachments |
The new version supports attachments to entities |
|
OLD |
NEW |
Difference |
|
status |
status |
In the NEW format, Status is not mandatory. The default Status 'Open' will be applied if no value is given. |
|
project/projects |
project (read-only) |
In the NEW format, the parent JSON is not allowed to be provided in the input data, but it is mandatory to add in the URL. |
|
OLD |
NEW |
Difference |
|
Default fields in the response:
1. owner 2. project 3. id 4. title 5. status
|
By default, all the fields will be listed. |
In the OLD format, the rest of the fields need to be provided in the fields_required to be viewed in the response. |
The primary difference in the URL is shown below
|
OLD |
NEW |
Difference |
|
/api/v3/milestones/{id} |
/api/v3/projects/{id}/milestones/{id} |
In the NEW format, the direct milestone URL will not work. The project ID needs to be included as well. |
|
Operation |
NEW API URL |
Input |
|
assign |
/api/v3/projects/{id}/milestones/{id}/assign |
"owner": { "id": 4 } |
Under the entity Member, the differences are in the following areas
|
OLD |
NEW |
Difference |
|
project_role |
role |
Name changed |
|
projects |
project |
Parent entity name changed to singular |
|
active_status |
is_active |
Name changed |
|
OLD |
NEW |
Difference |
|
projects (editable) |
project (read-only) |
In the NEW format, the parent JSON is not allowed in input data, but it is mandatory to be provided in the URL. |
|
OLD |
NEW |
Difference |
|
api/v3/projects/{id}/project_members/ |
/api/v3/projects/{id}/members |
Entity name changed "members" |
|
api/v3/project_members |
- |
In the NEW format, the direct project member URL is not supported. |
|
/api/v3/project_members/{member_id} |
- |
In the NEW format, the individual project member get operation is not supported. |
The major difference in the Tasks entity is in the below-mentioned areas.
|
OLD |
NEW |
Difference |
|
estimated_effort_hours |
estimated_effort: { hours: 0, minutes: 0, days: 0 } |
The format is changed as in the NEW format the input is required as a JSON object. |
|
estimated_effort_minutes |
||
|
estimated_effort_days |
||
|
created_date |
created_time |
Name updated for correctness. |
|
task_type |
type |
Name updated for correctness. |
|
OLD |
NEW |
Difference |
|
comment |
- |
In the NEW format, the provision to add a comment along with the task is not supported. |
|
OLD |
NEW |
Difference |
|
- |
template |
In the NEW format, the option to add tasks from the template is included. |
|
- |
index (read-only) |
In the NEW format, the index field (Order) is included to display the order of the task which is under request/change/problem and milestone. |
|
- |
due_by_time(read-only) |
In the NEW format, this field will have the same value as that of the scheduled_end_time. |
|
- |
attachments |
In the NEW format, the option to add attachments along with the task. All attachments will be displayed in the response. |
|
OLD |
NEW |
Difference |
|
group |
group |
In the NEW format, these fields will be displayed for tasks under request/problem/change modules. |
|
marked_group |
marked_group |
|
OLD Input / Output |
NEW Input/Output |
Difference |
|
"estimated_effort_hours": 2, "estimated_effort_days": 2, "estimated_effort_minutes": 2 |
"estimated_effort": { "hours": "2", "minutes": "2", "days": "2" } |
estimated_effort
|
|
"estimated_effort_hours": "2 Hrs", "estimated_effort_minutes": "2 Mins", "estimated_effort_days": "2 Days " |
"estimated_effort": { "display_value": "2 Days 2 Hrs 2 Mins", "hours": "2", "minutes": "2", "days": "2" } |
|
|
- |
"template": { "id": "11" } |
template
Newly added field. Requires input as a JSON Object. |
|
|
"template": { "id": "11", "name": "test" } |
|
|
- |
- |
index
New read-only field, -1 for project and general. Positive increments for the rest of the modules. |
|
|
"index": "-1" --------------------------- "index": "3" |
|
|
- |
"attachments": [ { "id": 53 } ] |
attachments
In the NEW format, attachments can be added along with the task addition and all the attachments will be displayed in the response. |
|
|
"attachments": [ { "content_type": "image/png", "size": { "display_value": "170.88KB", "value": 174990 }, "module": "task", "name": "filename.png", "content_url": "/api/v3/requests/101/tasks/5564/attachments/53/download", "id": "53" } ] |
|
|
OLD |
NEW |
Difference |
|
request (editable) |
request(read-only)
|
In the NEW format, the parent JSON is not allowed to be provided in the input data, but it is mandatory to be included in the URL.
|
|
problem (editable) |
problem(read-only) |
|
|
change(editable) |
change (read-only) |
|
|
project (editable) |
project (read-only) |
|
OLD |
NEW |
Difference |
|
/api/v3/tasks |
/api/v3/tasks |
In the NEW format, the direct task URL is to access only the general task (To access other module tasks, the parent module and its ID need to be mentioned in the URL) |
|
Operation |
NEW API URL |
Input |
|
assign (operation: put) |
/api/v3/requests/{id}/tasks/{id}/assign |
{ "task": { "owner": { "id": 6 }, "group": { "id": 1 } } } |
|
mark and (operation: put) |
/api/v3/requests/{id}/tasks/{id}/mark |
{ "task": { "marked_owner": { "id": 6 }, "marked_group": { "id": 1 } } } |
|
trigger (operation: put) |
/api/v3/requests/{id}/tasks/{id}/trigger |
- |
|
close (operation: put) |
/api/v3/requests/{id}/tasks/{id}/close |
- |
|
/api/v3/requests/{id}/tasks/organize?ids={id},{id} |
- |
Differences are in the following areas
|
OLD |
NEW |
Difference |
|
technician |
owner |
Name changed for correctness |
|
inc_nonOperationalHours |
include_nonoperational_hours |
Name changed for correctness |
|
total_time_spent |
time_spent: { hours: 00, minutes: 00 } |
Name changed for correctness. Input is required as a JSON object. |
|
add_time_linked_requests |
add_time_for_linked_requests |
Name changed for correctness |
|
worklog_type |
type |
Name changed for correctness |
|
tech_charge |
owner_cost |
Name changed for correctness as not only technicians but also requesters can have worklog entries in case of project tasks. |
|
other_charge |
other_cost |
Name changed |
|
total_charge |
total_cost |
|
OLD |
NEW |
Difference |
|
request (editable) |
request(read-only)
|
In the NEW format, the parent JSON is not allowed to be included in the input data, but it is mandatory to be provided in the URL. |
|
problem (editable) |
problem(read-only) |
|
|
change(editable) |
change (read-only) |
|
|
task (editable) |
task (read-only) |
|
NEW |
Difference |
|
udf_fields |
In the NEW format, udf_fields are supported. |
|
OLD |
NEW |
Difference |
|
/api/v3/worklog |
- |
In the NEW format, the direct worklog URL is not supported. |
|
/api/v3/worklog_timetaken |
/api/v3/{parent}/{id}/worklogs/get_time_spent |
In the NEW format, the direct URL is not supported. |
Major Difference:
The OLD format will continue to work without any issues, as the OLD and NEW APIs are using different URLs for Worklog API.
To access the worklog which has the parent entity, the respective parent module's name and its ID need to be provided (in case if it has the grand/g-grandparent, the IDs need to be provided for them too in the URL).
The following bulk operations are added for Project, Milestone, Member, Task, and Worklog entities
|
Operation |
URL |
Input |
|
bulk add |
/api/v3/<module_name> |
{ "<module_name>": [ { "title": "bulk add1" }, { "title": "bulk add2" } ] } |
|
bulk edit |
/api/v3/<module_name>?ids={id},{id} |
{ "<module_name>": [ { "title": "bulk edit2" }, { "title": "bulk edit2" } ] } |
|
bulk delete |
/api/v3/<module_name>?ids={id},{id} |
- |
If it's a child module like task/worklog, then the parent module and its ID need to be mentioned in the URL. (/api/v3/<parent_name>/<parent_id>/<module_name>)
|
OLD |
NEW |
Difference |
"udf_fields": {
"udf_pick_301": "option1"
}
|
{
"udf_fields": {
"udf_pick_301": {
"id": 1,
"name": "option1"
}
}
}
|
UDF picklist has been changed from string to ID based. In the NEW format, the picklist value needs to be provided as a JSON Object. |