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: 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
    ],
    "worklogTags": [
      {
        "id": 1,
        "name": "development"
      },
      {
        "id": 5,
        "name": "testing"
      }
    ],
    "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:
{ "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" } }
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: 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
    ],
    "worklogTags": [
      {
        "id": 1,
        "name": "development"
      },
      {
        "id": 5,
        "name": "testing"
      }
    ],
    "workStartTime": "12:00"
}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: 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:
{ "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.