Summary Report API
Get summarized work log data grouped by projects, issues, users, versions, components, Tags and Billing as you would using the app’s Summary Report.
All requests need to be made to this base URL:
https://jttp-cloud.everit.biz/timetracker/api/latest/public
Create Summary Report POST /report/summary
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. |
Body
The POST body for the Summary Report is a JSON: SummaryReportRequest
The available keys of the SummaryReportRequest:
Parameter | Value type | Optional | Description |
---|---|---|---|
startAt | number | false | The index of the first item returned in the page of results. Example: “startAt”: 0 |
startDate | string | false | The start date from which the worklogs can be viewed. The query is run from the beginning of the given day (00:00:00) |
endDate | string | false | The end date until which the worklogs can be viewed. The query is run until the end of the given day (23:59:59). Example: “endDate”: “2023-01-01” |
filterBillable | boolean | true | Filtering worklogs based on this boolean. True returns billable worklogs, false returns non-billable worklogs. If this parameter is not provided both billable and non-billable worklogs are returned. Example: “filterBillable”: true |
projects | string[] | true | IDs of projects whose worklogs will be returned. If this parameter is not provided the worklogs will not be filtered based on projects. Example: “projects”: [“10000“] |
filters | string[] | true | IDs of filters whose worklogs will be returned. If this parameter is not provided the worklogs will not be filtered based on filter ids. Example: “filters”: [“10020“] |
jql | string | true | JQL expression to filter the issues whose worklogs will be returned. If this parameter is not provided the worklogs will not be filtered based on this parameter. Example: “jql”: “project = S1“ |
groups | string[] | true | Names of groups whose worklogs will be returned. If this parameter is not provided the worklogs will not be filtered based on user groups. Example: “groups”: [“administrators“] |
users | string[] | true | AccountIds of users whose worklogs will be returned. If this parameter is not provided the worklogs will not be filtered based on worklog authors. Example: “users”: [“5f18aff107efc400285dfe12“] |
expand | string[] | true | Use expand to include additional information about issues and worklogs in the response. If this parameter is not provided the result will not be expanded. Possible values: ASSIGNEE, AUTHOR, PRIORITY, PROJECT, REPORTER, STATUS, TYPE Example: “expand”: [“PROJECT“, “AUTHOR“] |
maxResults | number | true | The maximum number of items that can be returned per page. Defaults to 50. |
groupBy | string | true | How the result will be grouped. Defaults to: “projectView“. In the response object only the corresponding array will be filled. Possible values: "affectedVersionsView", "componentView", "fixedVersionsView", "issueView", "projectView", "userView", “billableView”, “tagView” Example: “groupBy” : “affectedVersionsView“ |
reportTagFilter |
| true | Report tag filter data. A worklog is returned if it has at least one of the tag specified in the tags array. If this parameter is not provided the result will not be filtered based on tags. Example:
CODE
|
The available parameters of the ReportTagFilter
:
Parameter | Value type | Optional | Description |
---|---|---|---|
includeTaglessWorklogs | boolean | true | Include tagless worklogs or not. If not provided defaults to false. Example: “includeTaglessWorklogs”: true |
tags | number[] | true | Tag ids whose worklogs will be returned. If not provided defaults to empty array. Example: “tags”: [ 1, 5 ] |
Examples
POST URL: TIME_TRACKER_BASE_URL/timetracker/api/latest/public/report/summary
Example post body:
{
"endDate":"2023-01-01",
"startAt":0,
"maxResults" : 2,
"startDate":"2021-01-01",
"groups": ["administrators"],
"users": ["5f18aff107efc400285dfe87"],
"projects": ["proj"],
"filterBillable": false,
"filters": ["10019", "10020"],
"jql": "project = proj or project = s1",
"expand": [ "PROJECT"],
"groupBy": "projectView",
"reportTagFilter": {
"includeTaglessWorklogs": true,
"tags": [ 1, 5]
}
}
Example response:
{
"affectedVersionsView": [],
"baseData": {
"issueSynchronizationProblem": false,
"maxResults": 2,
"startAt": 0,
"total": 1,
"totalWorkTimeInSeconds": 2613960,
"unknownUserWorklogExists": false,
"jql": "(project = proj or project = s1) AND (worklogAuthor IN (\"5f18aff107efc400285dfe87\") AND (project IN (proj)) AND (filter IN (10019,10020)) AND (worklogDate >= 2021-01-01) AND (worklogDate <= 2023-01-01)"
},
"billableView": [],
"componentView": [],
"fixedVersionsView": [],
"issueView": [],
"projectView": [
{
"originalEstimate": 499200,
"remainingEstimate": 312000,
"totalExpected": 2925960,
"totalLogged": 2613960,
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 2613960,
"project": {
"id": "10000",
"key": "PROJ",
"name": "project1"
}
}
],
"userView": [],
"tagView": []
}
Response
200
Successful operation:
{
"affectedVersionsView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"originalEstimate": 0,
"remainingEstimate": 0,
"totalExpected": 0,
"totalLogged": 0,
"description": "string",
"project": {
"id": "string",
"key": "string",
"name": "string"
},
"released": true,
"releaseDate": "string",
"version": "string"
}
],
"baseData": {
"issueSynchronizationProblem": true,
"maxResults": 0,
"startAt": 0,
"total": 0,
"totalWorkTimeInSeconds": 0,
"unknownUserWorklogExists": true
},
"componentView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"originalEstimate": 0,
"remainingEstimate": 0,
"totalExpected": 0,
"totalLogged": 0,
"component": "string",
"description": "string",
"project": {
"id": "string",
"key": "string",
"name": "string"
}
}
],
"fixedVersionsView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"originalEstimate": 0,
"remainingEstimate": 0,
"totalExpected": 0,
"totalLogged": 0,
"description": "string",
"project": {
"id": "string",
"key": "string",
"name": "string"
},
"released": true,
"releaseDate": "string",
"version": "string"
}
],
"issueView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"originalEstimate": 0,
"remainingEstimate": 0,
"totalExpected": 0,
"totalLogged": 0,
"assignee": {
"avatar": {
"size16x16": "string",
"size24x24": "string",
"size32x32": "string",
"size48x48": "string"
},
"id": "string",
"name": "string"
},
"key": "string",
"priority": {
"iconUrl": "string",
"name": "string"
},
"status": {
"color": "string",
"description": "string",
"name": "string"
},
"summary": "string",
"type": {
"description": "string",
"iconUrl": "string",
"id": 0,
"name": "string"
}
}
],
"projectView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"originalEstimate": 0,
"remainingEstimate": 0,
"totalExpected": 0,
"totalLogged": 0,
"project": {
"id": "string",
"key": "string",
"name": "string"
}
}
],
"userView": [
{
"billableLoggedSeconds": 0,
"nonBillableLoggedSeconds": 0,
"totalLogged": 0,
"user": {
"avatar": {
"size16x16": "string",
"size24x24": "string",
"size32x32": "string",
"size48x48": "string"
},
"id": "string",
"name": "string"
}
}
],
"billableView": [
{
"billing": "string",
"totalLoggedSeconds": 0
}
],
"tagView": [
{
"billableLoggedSeconds": 97200,
"nonBillableLoggedSeconds": 11700,
"totalLoggedSeconds": 108900,
"worklogTagId": 1
}
],
}
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.
567
The worklog synchronization is not complete.