Skip to main content
Skip table of contents

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 deprecated

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
(format: "yyyy-MM-dd")

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)
Example: “startDate”: “2021-01-01”

endDate

string
(format: "yyyy-MM-dd")

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.
Example: “maxResults” : 1000

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

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
    "reportTagFilter": {
        "includeTaglessWorklogs": true,
        "tags": [1, 5]
    }

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:

CODE
{
    "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:

CODE
{
    "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:

CODE
{
  "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:

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"
        ]
      ]
    }
  ]
}

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.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.