Worklog API
- 1 Create worklog POST /worklog
- 1.1 Header parameters
- 1.2 Body
- 1.3 Examples
- 2 Update worklog PATCH /worklog
- 2.1 Header parameters
- 2.2 Body
- 2.3 Examples
- 3 Get worklog GET /worklog
- 3.1 Header parameters
- 3.2 Query Parameters
- 3.3 Examples
- 4 Delete worklog DELETE /worklog
- 4.1 Header parameters
- 4.2 Query Parameters
- 4.3 Examples
Create, Update, View or Delete worklogs with the same restrictions and rules as you would within the app.
All requests need to be made to this base URL:
https://jttp-cloud.everit.biz/timetracker/api/latest/public
Create worklog POST /worklog
Header parameters
Header Parameter | Optional | Description |
|---|---|---|
x-everit-api-key | false | Generated Everit authentication token, see: https://everit.atlassian.net/wiki/spaces/TCDS/pages/3531442081 |
x-requested-by | false | CSRF protection parameter. Can be empty or any dummy text. |
x-timezone | true | The time zone of the user, for eg.: Europe/Budapest. If not specified defaults to UTC. |
x-everit-on-behalf-account | true | The account id of the on behalf user. |
Body
The POST body is a JSON object: NewWorklog
The available parameters of the NewWorklog:
Parameter | Value type | Optional | Description |
|---|---|---|---|
description | string | true | The description of a worklog. Example: “description”: “my description“ |
durationInSeconds | number | true | The duration of a worklog in seconds. |
isBillable | boolean | true | True if the worklog is billable. Example: “isBillable”: true |
issueId | number | true | The worklog was made on this issue. Example: “issueId”: 10000 |
workDate | string | false | The day (ISO-8601 date in 'yyyy-MM-dd' format) when the work was made. Example: “workDate”: “2023-04-24“ |
worklogTagIds | number[] | true | The IDs of the worklog tags assigned to this worklog. Example: “worklogTagIds”: [1, 5] |
workStartTime | string | true | The time (ISO-8601 time in 'HH:mm' format) when the work was started. Example: “workStartTime”: "11:00" |
attributes | array of | true | A list of attributes associated with this worklog entry. |
teamId | number | false | The ID of the team associated with this worklog, or null if the author is not a member of any team. |
Referenced schema - WorklogMetadataWorklogAttribute
Parameter | Value type | Optional | Description |
|---|---|---|---|
id | number (Long) | false | The ID of the attribute. |
name | string | true | The display name of the attribute. |
value | string / number / boolean | true | The value of the attribute. If the attribute is type of |
Examples
POST URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog
Example post body:
{
"description": "my description",
"durationInSeconds": 3600,
"isBillable": true,
"worklogTagIds": [1, 5],
"issueId": 10182,
"workDate": "2023-04-24",
"workStartTime": "12:00",
"attributes": [
{
"id": 51,
"name": "Billable Hours",
"value": 1
},
{
"id": 52,
"name": "Task type",
"value": 55
},
{
"id": 53,
"name": "Comment",
"value": "Additional comment"
},
{
"id": 54,
"name": "Overtime",
"value": true
}
],
"teamId": 2
}Example response:
200 Successful operation:
{
"description": "my description",
"durationInSeconds": 3600,
"isBillable": true,
"issueId": 10182,
"jiraWorklogId": 230818,
"workDate": "2023-04-24",
"worklogId": 155,
"worklogTagIds": [
1,
5
],
"worklogTags": [
{
"id": 1,
"name": "development"
},
{
"id": 5,
"name": "testing"
}
],
"workStartTime": "12:00",
"attributes": [
{
"id": 51,
"name": "Billable Hours",
"value": 1
},
{
"id": 52,
"name": "Task type",
"value": 55
},
{
"id": 53,
"name": "Comment",
"value": "Additional comment"
},
{
"id": 54,
"name": "Overtime",
"value": true
}
],
"team": {
"id": 2,
"name": "Brand & Marketing Team"
},
}400 Invalid parameters:
An object that holds all field and non-field related errors:
{
// Errors that are not tied to any specific field.
"additionalErrors": [
{
"errorType": "JiraError" | "PeriodicLimit" | "PeriodicLoggablePeriod" | "PeriodicMaxHoursPerDay" | "TooManyDataForTimesheet" | "TooManyWorklogsToExport" | "NoActiveLicense" | "ManualUpgradeNeeded"
"extra": // A field holding additional information related to the error
}
],
// Error response data for fields.
"fieldErrors": [
{
"errorType": "Exceed" | "Invalid" | "InvalidByJira" | "InvalidFormat" | "LoggablePeriod" | "MaxHoursPerDay" | "Required" | "TooManyPeriodicIssues",
// An array of string arrays containing the problematic field names.
"paths": [
[
"string"
]
]
}
]
}401 Unauthorized
479 The user does not have one of the necessary Timetracker permissions that can be set in the Global Settings.
Update worklog PATCH /worklog
Header parameters
Header Parameter | Optional | Description |
|---|---|---|
x-everit-api-key | false | Generated Everit authentication token, see: https://everit.atlassian.net/wiki/spaces/TCDS/pages/3531442081 |
x-requested-by | false | CSRF protection paramter. |
x-timezone | true | The time zone of the user, for eg.: Europe/Budapest. If not specified defaults to UTC. |
x-everit-on-behalf-account | true | The account id of the on behalf user. |
Body
The PATCH body is a JSON object: PatchWorklog
The available parameters of the PatchWorklog:
Parameter | Value type | Optional | Description |
|---|---|---|---|
worklogId | number | false | The internal ID of the worklog to patch. |
jiraWorklogId | number | true | The ID of the worklog as stored in Jira. |
partialWorklog |
| false | The patch to apply on the worklog. Only the fields with defined values will be updated. |
You either use “worklogId” or “jiraWorklogId”. If both are specified, “worklogId” is stronger.
The available parameters of the PartialWorklog:
Parameter | Value type | Optional | Description |
|---|---|---|---|
description | string | true | The description of a worklog. |
durationInSeconds | number | true | The duration of a worklog in seconds. |
isBillable | boolean | true | True if the worklog is billable. |
issueId | number | true | The worklog was made on this issue. |
workDate | string | true | The day (ISO-8601 date in 'yyyy-MM-dd' format) when the work was made. |
worklogTagIds | number[] | true | The IDs of the worklog tags assigned to this worklog. |
workStartTime | string | true | The time (ISO-8601 time in 'HH:mm' format) when the work was started. |
attributes | array of | true | A list of attributes associated with this worklog entry. |
teamId | number | true | The ID of the team associated with this worklog, or null if the author is not a member of any team. |
Referenced schema - WorklogMetadataWorklogAttribute
Parameter | Value type | Optional | Description |
|---|---|---|---|
id | number (Long) | false | The ID of the attribute. |
name | string | true | The display name of the attribute. |
value | string / number / boolean | true | The value of the attribute. If the attribute is type of |
Examples
PATCH URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog
Example patch body:
{
"partialWorklog": {
"description": "test description",
"durationInSeconds": 3600,
"isBillable": true,
"issueId": 10329,
"workDate": "2023-04-19",
"worklogTagIds": [1, 5],
"workStartTime": "08:15",
"attributes": [
{
"id": 51,
"name": "Billable Hours",
"value": null
},
{
"id": 52,
"name": "Task type",
"value": 59
},
{
"id": 53,
"name": "Comment",
"value": "Discussion with the dev team"
},
{
"id": 54,
"name": "Overtime",
"value": true
}
],
"teamId": 2
},
"worklogId": 181,
"jiraWorklogId": 230818
}Example response:
200 The patch operation is accepted and processed. The result of the worklog patch can be found in the response body:
If there was no error during the patch the error object will be null and the patched worklog is returned:
{ "error": null, "worklog": { "description": "test description", "durationInSeconds": 10800, "isBillable": true, "issueId": 10329, "workDate": "2023-04-19", "worklogId": 181, "worklogTagIds": [ 1, 5 ], "worklogTags": [ { "id": 1, "name": "development" }, { "id": 5, "name": "testing" } ], "workStartTime": "08:15", "attributes": [ { "id": 51, "name": "Billable Hours", "value": null }, { "id": 52, "name": "Task type", "value": 59 }, { "id": 53, "name": "Comment", "value": "Discussion with the dev team" }, { "id": 54, "name": "Overtime", "value": true } ], "team": { "id": 2, "name": "Brand & Marketing Team" }, } }
If there was an error during the patch the error object will be filled:
{ "error": { "message": null, "result": "WORKLOG_NOT_FOUND", "worklogId": 181 }, "worklog": null }
400 Invalid parameters:
An object that holds all field and non-field related errors:
{
// Errors that are not tied to any specific field.
"additionalErrors": [
{
"errorType": "JiraError" | "PeriodicLimit" | "PeriodicLoggablePeriod" | "PeriodicMaxHoursPerDay" | "TooManyDataForTimesheet" | "TooManyWorklogsToExport" | "NoActiveLicense" | "ManualUpgradeNeeded"
"extra": // A field holding additional information related to the error
}
],
// Error response data for fields.
"fieldErrors": [
{
"errorType": "Exceed" | "Invalid" | "InvalidByJira" | "InvalidFormat" | "LoggablePeriod" | "MaxHoursPerDay" | "Required" | "TooManyPeriodicIssues",
// An array of string arrays containing the problematic field names.
"paths": [
[
"string"
]
]
}
]
}401 Unauthorized
479 The user does not have one of the necessary Timetracker permissions that can be set in the Global Settings.
Get worklog GET /worklog
Header parameters
Header Parameter | Optional | Description |
|---|---|---|
x-everit-api-key | false | Generated Everit authentication token, see: https://everit.atlassian.net/wiki/spaces/TCDS/pages/3531442081 |
x-timezone | true | The time zone of the user, for eg.: Europe/Budapest. If not specified defaults to UTC. |
Query Parameters
The available query parameters for the request:
Query Parameter | Value type | Optional | Description |
|---|---|---|---|
worklogId | number | false | The internal app ID of the worklog. Example: /public/worklog?worklogId=107 |
jiraWorklogId | number | true | The ID of the worklog as stored in Jira. Example: /public/worklog?jiraWorklogId=230818 |
You either use “worklogId” or “jiraWorklogId”. If both are specified, “worklogId” is stronger.
Examples
GET URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog?worklogId=155
GET URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog?jiraWorklogId=230818
Example response:
200 Successful operation:
{
"description": "my description",
"durationInSeconds": 3600,
"isBillable": true,
"issueId": 10182,
"jiraWorklogId": 230818,
"workDate": "2023-04-24",
"worklogId": 155,
"worklogTagIds": [
1,
5
],
"worklogTags": [
{
"id": 1,
"name": "development"
},
{
"id": 5,
"name": "testing"
}
],
"workStartTime": "12:00",
"attributes": [
{
"id": 51,
"name": "Billable Hours",
"value": null
},
{
"id": 52,
"name": "Task type",
"value": 59
},
{
"id": 53,
"name": "Comment",
"value": "Discussion with the dev team"
},
{
"id": 54,
"name": "Overtime",
"value": true
}
],
"team": {
"id": 2,
"name": "Brand & Marketing Team"
},
}400Invalid parameters:
An object that holds all field and non-field related errors:
{ // Errors that are not tied to any specific field. "additionalErrors": [ { "errorType": "JiraError" | "PeriodicLimit" | "PeriodicLoggablePeriod" | "PeriodicMaxHoursPerDay" | "TooManyDataForTimesheet" | "TooManyWorklogsToExport" | "NoActiveLicense" | "ManualUpgradeNeeded" "extra": // A field holding additional information related to the error } ], // Error response data for fields. "fieldErrors": [ { "errorType": "Exceed" | "Invalid" | "InvalidByJira" | "InvalidFormat" | "LoggablePeriod" | "MaxHoursPerDay" | "Required" | "TooManyPeriodicIssues", // An array of string arrays containing the problematic field names. "paths": [ [ "string" ] ] } ] }
WorklogError:
{ "error": { "message": null, "result": "WORKLOG_NOT_FOUND", "worklogId": 123 } }
401 Unauthorized
479 The user does not have one of the necessary Timetracker permissions that can be set in the Global Settings.
Delete worklog DELETE /worklog
Header parameters
Header Parameter | Optional | Description |
|---|---|---|
x-everit-api-key | false | Generated Everit authentication token, see: https://everit.atlassian.net/wiki/spaces/TCDS/pages/3531442081 |
x-requested-by | false | CSRF protection paramter. |
x-timezone | true | The time zone of the user, for eg.: Europe/Budapest. If not specified defaults to UTC. |
Query Parameters
The available query parameters for the request:
Query Parameter | Value type | Optional | Description |
|---|---|---|---|
worklogId | number | false | The ID of the worklog. Example: /public/worklog?worklogId=107 |
jiraWorklogId | number | true | The ID of the worklog as stored in Jira. Example: /public/worklog?jiraWorklogId=230818 |
You either use “worklogId” or “jiraWorklogId”. If both are specified, “worklogId” is stronger.
Examples
DELETE URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog?worklogId=123
DELETE URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/worklog?jiraWorklogId=230818
Example response:
200 The delete operation is accepted and processed. The result of the worklog delete can be found in the response body:
If there was no error during the deletion the error object will be null:
{ "error": null }
If there was an error during the deletion the error object will be filled:
{ "error": { "message": null, "result": "WORKLOG_NOT_FOUND", "worklogId": 123 } }
400 Invalid parameters:
An object that holds all field and non-field related errors:
{
// Errors that are not tied to any specific field.
"additionalErrors": [
{
"errorType": "JiraError" | "PeriodicLimit" | "PeriodicLoggablePeriod" | "PeriodicMaxHoursPerDay" | "TooManyDataForTimesheet" | "TooManyWorklogsToExport" | "NoActiveLicense" | "ManualUpgradeNeeded"
"extra": // A field holding additional information related to the error
}
],
// Error response data for fields.
"fieldErrors": [
{
"errorType": "Exceed" | "Invalid" | "InvalidByJira" | "InvalidFormat" | "LoggablePeriod" | "MaxHoursPerDay" | "Required" | "TooManyPeriodicIssues",
// An array of string arrays containing the problematic field names.
"paths": [
[
"string"
]
]
}
]
}401 Unauthorized
479 The user does not have one of the necessary Timetracker permissions that can be set in the Global Settings.