Worklog API
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: REST API |
x-everit-jwt | false | JWT token (deprecated, use the new x-everit-api-key instead) |
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" |
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"
}
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
],
"workStartTime": "12:00"
}
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: REST API |
x-everit-jwt | false | JWT token (deprecated, use the new x-everit-api-key instead) |
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. |
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"
},
"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:
- CODE
{ "error": null, "worklog": { "description": "test description", "durationInSeconds": 10800, "isBillable": true, "issueId": 10329, "workDate": "2023-04-19", "worklogId": 181, "worklogTagIds": [ 1, 5 ], "workStartTime": "08:15" } }
If there was an error during the patch the error object will be filled:
- CODE
{ "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: REST API |
x-everit-jwt | false | JWT token (deprecated, use the new x-everit-api-key instead) |
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
],
"workStartTime": "12:00"
}
400
Invalid parameters:
An object that holds all field and non-field related errors:
CODE{ // 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:
- CODE
{ "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: REST API |
x-everit-jwt | false | JWT token (deprecated, use the new x-everit-api-key instead) |
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:
- CODE
{ "error": null }
If there was an error during the deletion the error object will be filled:
- CODE
{ "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.