Page tree
Skip to end of metadata
Go to start of metadata

Introduction

You can get Time in Status report data via REST. The parameters of the REST call correspond to on-screen Time in Status report parameters.


REST API for Time in Status Cloud is in public beta phase.

The REST endpoints, their parameters and the usage pattern documented in this page are fully functional but are subject to change until finalized.



Tis Cloud Service URL

The address for Time in Status cloud service is https://tis.obss.io/. All REST requests listed on this page should be directed to this domain.

Only communication via SSL is allowed so make sure you always access via HTTPS.

This address will be referenced as <service_url> in this documentation.



Authorization

All REST requests shown in this document require authorization.

Authorization is established through the use of tisjwt tokens. For details about tisjwt tokens please see TiS Cloud - API Settings.

You can either provide this token as a query parameter or include it in the HTTP request header.

Providing a tisjwt token in request header

The tisjwt token can be provided as part of the request header as...

keyvaluevalue sample
AuthorizationTISJWT <tsjwt>

TISJWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjb20ub2JThisIsaFakeJWTltZS1pbi1zdGF0dXMiLCJzdWIiOiI1NTcwNTg6MGQ5

MDM3N2YtMTNlZS00MzEzLTlmNjYtMDA1NTVhYTI4MGUzIiwiY2xpZW50S2V5IjoiMThlNWViY2MtM2QyZC0zNzg5LWExODAtYzQ5NzgwO

WM1ZTdlIiwiaXNzIjoiY29tLm9ic3MucGx1Z2luLnRpbWUtaW4tc3RhdHVzIiwiZXhwIjo0MTAyNDQ0NzQwLCJpYXQiOjE1ODMzMDgzMzB9.Nl

inm0tNgM9pSk0Dd4FeNZVzLHAPabgfDEcVxdWuJGE

This is the recommended way for authorization.


Providing a tisjwt token as a query parameter

The tisjwt token can be provided in the query URL as a query parameter with the same name as shown below.

This use is not recommended to be used with production tisjwt tokens since it will include your tisjwt token in the URL and thus expose it in various access logs and request histories.

Example

https://tis.obss.io/rest/export/status?tisjwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJjb20ub2JThisIsaFakeJWTltZS1pbi1zdGF0dXMiLCJzdWIiOiI1NTcwNTg6MGQ5MDM3N2YtMTNl

ZS00MzEzLTlmNjYtMDA1NTVhYTI4MGUzIiwiY2xpZW50S2V5IjoiMThlNWViY2MtM2QyZC0zNzg5LWExODAtYzQ5NzgwOWM1ZTdlIiwiaXNzIjoiY29tLm9ic3MucGx1Z2luLnRpbWUtaW4tc3RhdHVzIi

wiZXhwIjo0MTAyNDQ0NzQwLCJpYXQiOjE1ODMzMDgzMzB9.Nlinm0tNgM9pSk0Dd4FeNZVzLHAPabgfDEcVxdWuJGE


Responses

 Expand responses...

All endpoints will return the following responses on tisjwt related errors.

    No TisJwt

    HTTP 401

    When you do not provide a tisjwt parameter with the request or the parameter is empty.

    tisjwt is required for authentication.

    Invalid TisJwt

    HTTP 401

    When the tisjwt parameter contains an invalid token. A token is invalid when it is malformed, not active or has expired.

    tisjwt is invalid. Please make sure that you have supplied a valid tisjwt token that is active and has not expired.

    Invalid License

    HTTP 401

    When the Time in Status license on your Jira Cloud instance is not valid.

    {
        "status": 401,
        "message": "Unauthorized access",
        "messages": [
            "License is not valid."
        ],
        "pluginVersion": "1.18.0.1",
        "time": "2020-03-19 05:36:42"
    }

    Invalid User

    HTTP 401

    When the user associated with the tisjwt token is inactive on your instance.

    {
        "status": 401,
        "message": "Unauthorized access",
        "messages": [
            "User is not an active Jira user."
        ],
        "pluginVersion": "1.18.0.1",
        "time": "2020-03-19 05:36:42"
    }



    Getting Issue Data

    Single issue

    GET /rest/issue

    Returns a single issue report as text (CSV or JSON)

    Request

    The request takes all parameters you select on the screen for a report as query parameters.

    Do not let the long text scare you. Not all parameters are always required. See the params table below.

    Basic:

    <service_url>/rest/issue?issueKey=<issueKey>&columnsBy=<columnsBy>&calendar=<calendar>

    With all parameters:

    <service_url>/rest/issue?issueKey=<issueKey>&columnsBy=<columnsBy>&fields=<fields>&statuses=<statuses>&groups=<groups>&includeDeletedStatuses=<includeDeletedStatuses>&trimHistoryStartDate=<trimHistoryStartDate>&trimHistoryEndDate=<trimHistoryEndDate>&calendar=<calendar>&dayLength=<dayLength>&viewFormat=<viewFormat>&outputType=<outputType>

    Parameters

     Expand parameters...

    Parameter

    Description

    Required

    Value Samples

    issueKeyKey of the issue that report will be generated for.YesABC-1
    outputType

    The output format of the report. Possible options are:

    • CSV = Returns a CSV (comma separated value) that contains the report data as text.
    • JSON = Returns a JSON (JavaScript Object Notation) that contains report data 

    If not provided, "json" will be used.


    • csv
    • json
    columnsBy

    Defines the column structure of the report. Possible options are:

    • statusDuration = Report will show durations spent on each status as column values
    • durationBetweenStatuses = Report will show the durations spent between two statuses as column values.
    • assigneeDuration = Report will show durations spent on each assignee as column values
    • statusDurationByAssignee = Report will show durations spent on each status on each assignee as column values
    • assigneeDurationByStatus = Report will show durations spent on each assignee on each status as column values
    • groupDuration= Report will show consolidated durations spent on members of each group as column values
    • anyfieldDuration = Report will show how much time each issue field held each value
    • statusCount = Report will show counts for each status
    • transitionCount = Report will show counts for each transitions between statuses
    • firstTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the FIRST time as column values
    • firstTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the FIRST time as column values 
    • lastTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the LAST time as column values
    • lastTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the LAST time as column values
    Yes
    • statusDuration
    • durationBetweenStatuses
    • assigneeDuration
    • statusDurationByAssignee
    • assigneeDurationByStatus
    • groupDuration
    • anyfieldDuration
    • statusCount
    • transitionCount
    • firstTransitionFromStatusDate
    • firstTransitionToStatusDate
    • lastTransitionFromStatusDate
    • lastTransitionToStatusDate
    fields

    The IDs of fields (separated by commas) on JIRA Issues that will be added to report output as columns.

    Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports


    assignee,customfield_10020,customfield_10007,description,duedate, fixVersions
    historyFields

    The IDs of fields (separated by commas) on JIRA Issues that will be used for Any Field Duration report.

    For details about Any Field Report Type please see: TiS Cloud - Report Types

    Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports

    only when columnsBy = anyfieldDurationassignee,customfield_10020,customfield_10007,description,duedate, fixVersions
    statuses

    A JSON array listing statuses for which the durations will be included in the report.

    If not provided or left empty, the report will include all statuses in selected issues' histories.

    For assignee based reports, durations of unselected statuses will be excluded from durations of assignee columns.

    Supports two formats: Basic and Advanced


    Basic:

    Basic format is a comma separated list of status ID's to be included in the report.


    Advanced:

    Advanced format is a JSON text that contains status definitions.

    Advanced format must be employed if you want to use the Consolidated Columns feature.

    Type type attribute of each column defines whether the column is a Standard (std) or Consolidated (cons) column. For standard columns, id is the id of the status. For consolidated columns, the statuses array contains the IDs of statuses to be included in the column. For more information on status selection and column consolidation, please see TiS Cloud - Status.


    Other parameters may be included in the URL as a query parameter but statuses parameter is expected to be sent in request body encoded as "application/x-www-form-urlencoded"


    Basic

    1,3,4,5,10001,10234


    Advanced

    [
       {
          "id":"6",
          "type":"std"
       },
       {
          "id":"2",
          "type":"std"
       },
       {
          "name":"cons. status 1",
          "type":"cons",
          "statuses":[
             "10008",
             "3",
             "10007"
          ]
       }
    ]
    groups

    The names of user groups (separated by commas) that will be included in Group Time report.

    If not provided or empty, the report will included all durations in a column named "Not a member of selected groups"


    • jira-administrators
    • jira-users, jira-administrators
    dbsMetrics

    The list of metrics that will be showed as columns in Duration Between Statuses reports. The parameter must be provided as JSON text.

    The maximum number of metrics allowed is 10.

    Each metric will report the duration between two statuses and consists of the following parameters:


    name: (required)

    Name of the metric. Can only include alphanumeric characters and space.


    from:

    The starting status that the duration will be calculated from. Its format should be a JSON object contains id and order (first/last) of the status.

    Not defining this parameter means that the starting point will be "issue creation".


    to: (required)

    The target status that the duration will be calculated until. Its format should be a JSON object contains id and order (first/last) of the status.


    excluded:

    List of status ids that will be excluded from the calculations. Time spent on these statuses will not be added to total time.


    See TiS Cloud - Report Types

    only when columnsBy = durationBetweenStatuses
    [
       {
          "name":"Resolution time",
          "to":{
             "id":"5",
             "order":"first"
          }
       },
       {
          "name":"Development time",
          "from":{
             "id":"1",
             "order":"first"
          },
          "to":{
             "id":"6",
             "order":"last"
          },
          "excluded":[
             "10008",
             "10003"
          ]
       }
    ]
    includeDeletedStatuses

    Sets whether included statuses in issues' histories will be included in the report or not:

    Possible options are:

    • true
    • false

    If not provided, "true" is assumed.


    • true
    • false
    trimHistoryStartDate

    The start date of history trim for issues.

    When provided, only activities in each issue's history after the given date will be processed for the report.

    Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

    If time parameter is not provided, default time "00:00" will be used

    See TiS Cloud - Date Range


    2017-07-01 00:00
    trimHistoryEndDate

    The end date of history trim for issues.

    When provided, only activities in each issue's history before the given date will be processed for the report.

    Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

    If time parameter is not provided, default time "00:00" will be used

    See TiS Cloud - Date Range


    2017-08-31 23:59

    calendar

    The calendar that report durations will be calculated based on. Possible options are:

    • normalHour = The durations will be based on a 7/24 calendar. (default)
    • 0 = The default business calendar
    • n = ID of a custom calendar

    Tip: You can get the IDs of calendars using the Calendars endpoint, explained at the end of this page

    Required for Duration reports
    • normalHours
    • 0
    • 1
    • 2
    dayLength
    • 24HourDays = Each day will be 24 hours.
    • businessDays = Can be used for calendars other than 7/24. The durations will be based on the business calendar defined in admin settings. Length of each day will also be based on business hours defined in admin settings.
    Required for Duration reports
    • 24HourDays
    • businessDays
    viewFormat

    The format of duration data in the report. Possible options are:

    • humanReadable = The values will be shown like "44 d 5 h 2 m 35 s"
    • ddhhmmss = The values will be shown like "44:05:02:35"
    • hhmmss = The values will be shown like "1061:02:35"
    • days = The values will be shown in days, as a single decimal value like "44.61"
    • hours = The values will be shown in hours, as a single decimal value like "1061.04"
    • minutes = The values will be shown in minutes, as a single decimal value like "63662.59"
    • seconds = The values will be shown in seconds, like "3819755"

    If not provided, "minutes" will be used.


    • humanReadable
    • ddhhmmss
    • hhmmss
    • days
    • hours
    • minutes
    • seconds
    dateFormat

    The string format to use for displaying values of fields of type Date

    If empty or missing, the date format defined in TiS Cloud - Format Settings page is used. If Format Settings date format is also empty, the default date format set for Jira is used.

    You can refer to the Java Documentation for more information about Date Format Strings.


    • yyyy-MM-dd
    • dd/MM/yy
    • dd/MMM/yyyy
    dateTimeFormat

    The string format to use for displaying values of fields of type DateTime

    If empty or missing, the datetime format defined in TiS Cloud - Format Settings page is used. If Format Settings datetime format is also empty, the default datetime format set for Jira is used.

    You can refer to the Java Documentation for more information about Date Format Strings.


    • yyyy-MM-dd hh:mm a
    • dd/MM/yy HH:mm
    • dd/MMM/yyyy HH:mm:ss

    Examples

     Expand examples...
    https://tis.obss.io/rest/issue?issueKey=XYZ-34&columnsBy=statusDuration&calendar=normalHours
    
    https://tis.obss.io/rest/issue?issueKey=ABC-3&columnsBy=statusDuration&fields=assignee&statuses=3,10000,10001&includeDeletedStatuses=true&calendar=normalHours&dayLength=24HourDays&viewFormat=minutes&outputType=csv
    
    https://tis.obss.io/rest/issue?issueKey=TEST-85&columnsBy=statusDuration&calendar=0&dayLength=24HourDays&viewFormat=minutes&outputType=json
    
    https://tis.obss.io/rest/issue?issueKey=TTP-123&columnsBy=statusDuration&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv
    
    https://tis.obss.io/rest/issue?issueKey=TIS-1&columnsBy=statusDuration&calendar=1&dayLength=businessDays&viewFormat=humanReadable
    
    https://tis.obss.io/rest/issue?issueKey=QWERTY-45&columnsBy=statusDuration&trimHistoryStartDate=2017-09-01 00:00&trimHistoryEndDate=2017-10-31 00:00&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv



    Responses

     Expand responses...

      Success

      HTTP 200

      Returns a single issue report as text (CSV or JSON)


        JSON...
      {
          "dateTimeFormat": "dd/MMM/yy h:mm a",
          "dateFormat": "dd/MMM/yy",
          "timeZone": "Europe/Istanbul",
          "locale": "en-US",
          "viewFormat": "humanReadable",
          "isComposite": false,
          "columnsBy": "Status Duration",
          "calendar": {
              "id": null,
              "name": "normalHours",
              "monday": true,
              "tuesday": true,
              "wednesday": true,
              "thursday": true,
              "friday": true,
              "saturday": true,
              "sunday": true,
              "timeZone": "UTC",
              "holidaysWithoutDesc": [],
              "startTime": "00:00",
              "endTime": "00:00",
              "holidays": {}
          },
      	"dayLength": "24HourDays",
          "query": " issuekey  = 'ABC-1'",
          "reportDate": "03/Dec/20 1:39 PM",
          "version": "1.29.0.1",
          "isAggregationType": false,
          "isOverall": false,
          "isAverage": false,
          "isSum": false,
          "isMedian":false,
          "isStddev":false,
          "table": {
              "header": {
                  "headerColumns": [
                      {
                          "id": "issuekey",
                          "value": "Key"
                      },
                      {
                          "id": "summary",
                          "value": "Summary"
                      }
                  ],
                  "groupByColumns": [],
                  "fieldColumns": [],
                  "valueColumns": [
                      {
                          "id": "10000",
                          "value": "To Do(10000)",
                     		"isConsolidated": false
                      },
                      {
                          "id": "10002",
                          "value": "Done(10002)",
      					"isConsolidated": false
                      },
                      {
                          "id": "3",
                          "value": "In Progress(3)",
      					"isConsolidated": false
                      }
                  ]
              },
              "body": {
                  "rows": [
                      {
                          "headerColumns": [
                              {
                                  "id": "issuekey",
                                  "value": "ABC-1"
                              },
                              {
                                  "id": "summary",
                                  "value": "Example 1"
                              }
                          ],
                          "groupByColumns": [],
                          "fieldColumns": [],
                          "valueColumns": [
                              {
                                  "id": "10000",
                                  "value": "0d 2h 36m 29s",
                                  "raw": "9389589"
                              },
                              {
                                  "id": "10002",
                                  "value": "0d 0h 34m 0s",
                                  "raw": "2040000"
                              },
                              {
                                  "id": "3",
                                  "value": "1431d 18h 38m 15s",
                                  "raw": "123705495310"
                              }
                          ],
                          "currentState": [
                              {
                                  "id": "3",
                                  "value": "237d 2h 41m 48s",
      							"raw": "20486508218"
                              }
                          ]
                      }
                  ]
              }
          }
      }
        CSV...
      "Key","Summary","To Do","Done","In Progress"
      "ABC-1","Example 1","0d 2h 36m 29s","0d 0h 34m 0s","1431d 18h 38m 15s"


      Invalid Parameter

      HTTP 400

      When one or more of the required parameters are missing or one or more of the supplied parameter values are invalid.

      messages array contains the error messages for invalid parameters.

      {
          "status": 400,
          "message": "Invalid report parameters",
          "messages": [
              "ERROR: Invalid issuekey value: 'abc'",
              "ERROR: Invalid outputType value: 'xls'. Possible values are 'csv' and 'json'"
          ],
          "pluginVersion": "1.18.0.1",
          "time": "2020-05-22 06:31:15"
      }



      Issue list

      GET /rest/list

      POST /rest/list


      Returns a list report as text (CSV or JSON)

      GET and POST methods provide the exact same functionality but POST method allows a much larger request size.

      If your query parameters are too long to be used with a GET method (because you have a very long JQL or have too many statuses/fields selected) use POST method to access this endpoint.

      Request

      The request takes all parameters you select on the screen for a report as query parameters.

      Do not let the long text scare you. Not all parameters are always required and some are required based on filterType. See the params table below.

      Basic:

      <service_url>/rest/list?filterType=<filterType>&(user=<user> | projectKey=<projectKey> | jqlFilterID=<jqlFilterID> | customjql=<customjql> | sprintID=<sprintID> )&columnsBy=<columnsBy>&calendar=<calendar>

      With all parameters:

      <service_url>/rest/list?filterType=<filterType>&(user=<user> | projectKey=<projectKey> | jqlFilterID=<jqlFilterID> | customjql=<customjql> | sprintID=<sprintID> )&columnsBy=<columnsBy>&fields=<fields>&statuses=<statuses>&groups=<groups>&includeDeletedStatuses=<includeDeletedStatuses>&startDate=<startDate>&endDate=<endDate>&dateRangeField=<dateRangeField>&trimHistoryStartDate=<trimHistoryStartDate>&trimHistoryEndDate=<trimHistoryEndDate>&calendar=<calendar>&dayLength=<dayLength>&viewFormat=<viewFormat>&outputType=<outputType>&groupByFields=<groupByFields>&pageSize=<pageSize>&startIssueIndex=<startIssueIndex>

      Parameters

       Expand parameters...

      Parameter

      Description

      Required

      Value Samples

      outputType

      The output format of the report. Possible options are:

      • CSV = Returns a CSV (comma separated value) that contains the report data as text.
      • JSON = Returns a JSON (JavaScript Object Notation) that contains report data 

      If not provided, "json" will be used.


      • csv
      • json
      filterType

      Defines how the issues to be included in the report will be selected. Possible options are:

      • user = Report will filter out the issues assigned to the selected user
      • project = Report will filter out issues in the selected Jira project
      • jqlfilter = Report will filter out issues based on an existing JQL filter
        • The value advanced is deprecated but is still valid and will be processed as jqlfilter.
      • customjql = Report will filter out issues based on a given JQL query 
      • sprint = Report will filter out issues based on an existing sprint 
      Yes
      • user
      • project
      • jqlfilter
      • customjql
      • sprint
      user

      If filterType is user, system expects a user name in the form user=<some_user_name>

      Only when filterType = user
      • user=admin
      projectkey

      If filterType is project, system expects a project key in the form projectKey=<project_key>

      Only when filterType = project
      • projectKey=ABC
      jqlfilterID

      If filterType is jqlfilter, system expects a JQL filter ID in the form jqlFilterID=<jqlFilterID>

      Only when filterType = jqlfilter
      • jqlFilterID=10145
      customjql

      If filterType is customjql, system expects a JQL Query in the form customjql=<customJQL>

      Only when filterType = customjql
      • customjql=project=ABC
      sprintID

      If filterType is sprint, system expects a Sprint ID in the form sprintID=<sprintID>

      Only when filterType = sprint
      • sprintID=2
      columnsBy

      Defines the column structure of the report. Possible options are:

      • statusDuration = Report will show durations spent on each status as column values
      • durationBetweenStatuses = Report will show the durations spent between two statuses as column values.
      • assigneeDuration= Report will show durations spent on each assignee as column values
      • statusDurationByAssignee = Report will show durations spent on each status on each assignee as column values
      • assigneeDurationByStatus = Report will show durations spent on each assignee on each status as column values
      • groupDuration= Report will show consolidated durations spent on members of each group as column values
      • anyfieldDuration = Report will show how much time each issue field held each value
      • statusCount = Report will show counts for each status
      • transitionCount = Report will show counts for each transitions between statuses
      • firstTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the FIRST time as column values
      • firstTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the FIRST time as column values 
      • lastTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the LAST time as column values
      • lastTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the LAST time as column values
      Yes
      • statusDuration
      • durationBetweenStatuses
      • assigneeDuration
      • statusDurationByAssignee
      • assigneeDurationByStatus
      • groupDuration
      • anyfieldDuration
      • statusCount
      • transitionCount
      • firstTransitionFromStatusDate
      • firstTransitionToStatusDate
      • lastTransitionFromStatusDate
      • lastTransitionToStatusDate
      pageSize

      The maximum number of issues in a page. (1-100)

      The default is 100 and values greater than 100 or less than 0 will be processed as 100.


      50
      startIssueIndex

      The issue index to start at.

      The default value is 0.


      10
      fields

      The IDs of fields (separated by commas) on JIRA Issue that will be added to report output as columns.

      Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports


      assignee,customfield_10020,customfield_10007,description,duedate, fixVersions
      historyFields

      The IDs of fields (separated by commas) on JIRA Issues that will be used for Any Field Duration report.

      For details about Any Field Report Type please see: TiS Cloud - Report Types

      Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports

      only when columnsBy = anyfieldDurationassignee,customfield_10020,customfield_10007,fixVersions
      statuses

      A JSON array listing statuses for which the durations will be included in the report.

      If not provided or left empty, the report will include all statuses in selected issues' histories.

      For assignee based reports, durations of unselected statuses will be excluded from durations of assignee columns.

      Supports two formats: Basic and Advanced


      Basic:

      Basic format is a comma separated list of status ID's to be included in the report.


      Advanced:

      Advanced format is a JSON text that contains status definitions.

      Advanced format must be employed if you want to use the Consolidated Columns feature.

      Type type attribute of each column defines whether the column is a Standard (std) or Consolidated (cons) column. For standard columns, id is the id of the status. For consolidated columns, the statuses array contains the IDs of statuses to be included in the column. For more information on status selection and column consolidation, please see TiS Cloud - Status.


      Other parameters may be included in the URL as a query parameter but statuses parameter is expected to be sent in request body encoded as "application/x-www-form-urlencoded"


      Basic

      1,3,4,5,10001,10234


      Advanced

      [
         {
            "id":"6",
            "type":"std"
         },
         {
            "id":"2",
            "type":"std"
         },
         {
            "name":"cons. status 1",
            "type":"cons",
            "statuses":[
               "10008",
               "3",
               "10007"
            ]
         }
      ]
      groups

      The names of user groups (separated by commas) that will be included in Group Time report.

      If not provided or empty, the report will included all durations in a column named "Not a member of selected groups"


      • jira-administrators
      • jira-users, jira-administrators
      dbsMetrics

      The list of metrics that will be showed as columns in Duration Between Statuses reports. The parameter must be provided as JSON text.

      The maximum number of metrics allowed is 10.

      Each metric will report the duration between two statuses and consists of the following parameters:


      name: (required)

      Name of the metric. Can only include alphanumeric characters and space.


      from:

      The starting status that the duration will be calculated from. Its format should be a JSON object contains id and order (first/last) of the status.

      Not defining this parameter means that the starting point will be "issue creation".


      to: (required)

      The target status that the duration will be calculated until. Its format should be a JSON object contains id and order (first/last) of the status.


      excluded:

      List of status ids that will be excluded from the calculations. Time spent on these statuses will not be added to total time.


      See TiS Cloud - Report Types

      only when columnsBy = durationBetweenStatuses
      [
         {
            "name":"Resolution time",
            "to":{
               "id":"5",
               "order":"first"
            }
         },
         {
            "name":"Development time",
            "from":{
               "id":"1",
               "order":"first"
            },
            "to":{
               "id":"6",
               "order":"last"
            },
            "excluded":[
               "10008",
               "10003"
            ]
         }
      ]
      includeDeletedStatuses

      Sets whether included statuses in issues' histories will be included in the report or not:

      Possible options are:

      • true
      • false

      If not provided, "true" is assumed.


      • true
      • false
      startDate

      The start date of report filter.

      When provided, only issues created/resolved/updated (based on dateRangeField value) after the given date will be included in the report.

      Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

      If time parameter is not provided, default time "00:00" will be used

      See TiS Cloud - Date Range


      2017-07-01 00:00
      endDate

      The end date of report filter.

      When provided, only issues created/resolved/updated (based on dateRangeField value) before the given date will be included in the report.

      Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

      If time parameter is not provided, default time "00:00" will be used

      See TiS Cloud - Date Range


      2017-08-31 23:59
      dateRangeField

      The system date field of the Jira issue that startDate and endDate parameters will be based on. Possible options are:

      • created = The startDate and endDate parameters will be used to filter issues based on issue create date.
      • updated = The startDate and endDate parameters will be used to filter issues based on issue last update date.
      • resolved = The startDate and endDate parameters will be used to filter issues based on issue resolution date.
      Only when either startDate or endDate is provided
      • created
      • updated
      • resolved
      trimHistoryStartDate

      The start date of history trim for issues.

      When provided, only activities in each issue's history after the given date will be processed for the report.

      Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

      If time parameter is not provided, default time "00:00" will be used

      See TiS Cloud - Date Range


      2017-07-01 00:00
      trimHistoryEndDate

      The end date of history trim for issues.

      When provided, only activities in each issue's history before the given date will be processed for the report.

      Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

      If time parameter is not provided, default time "00:00" will be used

      See TiS Cloud - Date Range


      2017-08-31 23:59

      calendar

      The calendar that report durations will be calculated based on. Possible options are:

      • normalHour = The durations will be based on a 7/24 calendar. (default)
      • 0 = The default business calendar
      • n = ID of a custom calendar

      Tip: You can get the IDs of calendars using the Calendars endpoint, explained at the end of this page

      Required for Duration reports
      • normalHours
      • 0
      • 1
      • 2
      dayLength
      • 24HourDays = Each day will be 24 hours.
      • businessDays = Can be used for calendars other than 7/24. The durations will be based on the business calendar defined in admin settings. Length of each day will also be based on business hours defined in admin settings.
      Required for Duration reports
      • 24HourDays
      • businessDays
      viewFormat

      The format of duration data in the report. Possible options are:

      • humanReadable = The values will be shown like "44 d 5 h 2 m 35 s"
      • ddhhmmss = The values will be shown like "44:05:02:35"
      • hhmmss = The values will be shown like "1061:02:35"
      • days = The values will be shown in days, as a single decimal value like "44.61"
      • hours = The values will be shown in hours, as a single decimal value like "1061.04"
      • minutes = The values will be shown in minutes, as a single decimal value like "63662.59"
      • seconds = The values will be shown in seconds, like "3819755"
      • milliseconds = The values will be shown in milliseconds like "5235266"

      If not provided, "minutes" will be used.


      • humanReadable
      • ddhhmmss
      • hhmmss
      • days
      • hours
      • minutes
      • seconds
      • milliseconds
      dateFormat

      The string format to use for displaying values of fields of type Date

      If empty or missing, the date format defined in TiS Cloud - Format Settings page is used. If Format Settings date format is also empty, the default date format set for Jira is used.

      You can refer to the Java Documentation for more information about Date Format Strings.


      • yyyy-MM-dd
      • dd/MM/yy
      • dd/MMM/yyyy
      dateTimeFormat

      The string format to use for displaying values of fields of type DateTime

      If empty or missing, the datetime format defined in TiS Cloud - Format Settings page is used. If Format Settings datetime format is also empty, the default datetime format set for Jira is used.

      You can refer to the Java Documentation for more information about Date Format Strings.


      • yyyy-MM-dd hh:mm a
      • dd/MM/yy HH:mm
      • dd/MMM/yyyy HH:mm:ss


      Examples

       Expand examples...
      https://tis.obss.io/rest/list?filterType=user&user=admin&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=normalHours&viewFormat=minutes&pageSize=20
      
      https://tis.obss.io/rest/list?filterType=user&user=admin&columnsBy=statusDuration&fields=assignee&statuses=3,10000,10001&includeDeletedStatuses=true&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=normalHours&dayLength=24HourDays&viewFormat=minutes&outputType=csv&groupByFields=assignee,date:year:resolutiondate,date:week:resolutiondate&startIssueIndex=75
      
      https://tis.obss.io/rest/list?filterType=project&projectKey=PMP&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00 &dateRangeField=created&calendar=0&dayLength=24HourDays&viewFormat=minutes&outputType=json&groupByFields=assignee,date:year:resolutiondate,date:week:resolutiondate&pageSize=90&startIssueIndex=5
      
      https://tis.obss.io/rest/list?filterType=jqlfilter&jqlFilterID=10004&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv
      
      https://tis.obss.io/rest/list?filterType=customjql&customjql=project=ABC&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes
      
      https://tis.obss.io/rest/list?filterType=sprint&sprintID=2&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=json&pageSize=5


      Responses

       Expand responses...

        Success

        HTTP 200

        Returns a list report as text (CSV or JSON)


          JSON...
        {
           "startIssueIndex":0,
           "endIssueIndex":2,
           "pageSize":100,
           "total":2,
           "dateTimeFormat":"dd/MMM/yy h:mm a",
           "dateFormat":"dd/MMM/yy",
           "timeZone":"Europe/Istanbul",
           "locale":"en-US",
           "viewFormat":"minutes",
           "isComposite":false,
           "columnsBy":"Status Duration",
           "calendar":{
              "id":null,
              "name":"normalHours",
              "monday":true,
              "tuesday":true,
              "wednesday":true,
              "thursday":true,
              "friday":true,
              "saturday":true,
              "sunday":true,
              "timeZone":"UTC",
              "holidaysWithoutDesc":[],
              "startTime":"00:00",
              "endTime":"00:00",
              "holidays":{}
           },
           "dayLength": "24HourDays",
           "query":" project  = 'ABC'",
           "trimHistoryStartDate":null,
           "trimHistoryEndDate":null,
           "reportDate":"03/Dec/20 1:56 PM",
           "version":"1.29.0.1",
           "includedStatuses":[
              {
                 "id":"10000",
                 "name":"To Do",
                 "statusCategory":{
                    "id":"2",
                    "name":"To Do",
                    "key":"new",
                    "colorName":"blue-gray"
                 },
                 "deleted":false
              },
              {
                 "id":"10002",
                 "name":"Done",
                 "statusCategory":{
                    "id":"3",
                    "name":"Done",
                    "key":"done",
                    "colorName":"green"
                 },
                 "deleted":false
              },
              {
                 "id":"3",
                 "name":"In Progress",
                 "statusCategory":{
                    "id":"4",
                    "name":"In Progress",
                    "key":"indeterminate",
                    "colorName":"yellow"
                 },
                 "deleted":false
              }
           ],
           "excludedStatuses":[],
           "deletedStatuses":[],
           "isAggregationType":false,
           "isOverall":false,
           "isAverage":false,
           "isSum":false,
           "isMedian":false,
           "isStddev":false,
           "table":{
              "header":{
                 "headerColumns":[
                    {
                       "id":"issuekey",
                       "value":"Key"
                    },
                    {
                       "id":"summary",
                       "value":"Summary"
                    }
                 ],
                 "groupByColumns":[
                    
                 ],
                 "fieldColumns":[
                    
                 ],
                 "valueColumns":[
                    {
                       "id":"10000",
                       "value":"To Do",
                       "isConsolidated":false
                    },
                    {
                       "id":"10002",
                       "value":"Done",
                       "isConsolidated":false
                    },
                    {
                       "id":"3",
                       "value":"In Progress",
                       "isConsolidated":false
                    }
                 ]
              },
              "body":{
                 "rows":[
                    {
                       "headerColumns":[
                          {
                             "id":"issuekey",
                             "value":"ABC-1"
                          },
                          {
                             "id":"summary",
                             "value":"Example 1"
                          }
                       ],
                       "groupByColumns":[
                          
                       ],
                       "fieldColumns":[
                          
                       ],
                       "valueColumns":[
                          {
                             "id":"10000",
                             "value":"375967.9103666667",
                             "raw":"22558074622"
                          },
                          {
                             "id":"10002",
                             "value":"-"
                          },
                          {
                             "id":"3",
                             "value":"-"
                          }
                       ],
                       "currentState":[
                          {
                             "id":"10000",
                             "value":"375967.9103666667",
                             "raw":"22558074622"
                          }
                       ]
                    },
                    {
                       "headerColumns":[
                          {
                             "id":"issuekey",
                             "value":"ABC-2"
                          },
                          {
                             "id":"summary",
                             "value":"Example 2"
                          }
                       ],
                       "groupByColumns":[
                          
                       ],
                       "fieldColumns":[
                          
                       ],
                       "valueColumns":[
                          {
                             "id":"10000",
                             "value":"177492.9968833333",
                             "raw":"10649579813"
                          },
                          {
                             "id":"10002",
                             "value":"266267.9513666667",
                             "raw":"15976077082"
                          },
                          {
                             "id":"3",
                             "value":"0.1736166667",
                             "raw":"10417"
                          }
                       ],
                       "currentState":[
                          {
                             "id":"10002",
                             "value":"266267.8819",
                             "raw":"15976072914"
                          }
                       ]
                    }
                 ]
              }
           }
        }
          CSV...
        "Key","Summary","To Do","Done","In Progress"
        "ABC-1","Example 1","375974.8215666667","-","-"
        "ABC-2","Example 2","177492.9968833333","266274.8629333333","0.1736166667"

        Invalid Parameter

        HTTP 400

        When one or more of the required parameters are missing or one or more of the supplied parameter values are invalid.

        messages array contains the error messages for invalid parameters.

        {
            "status": 400,
            "message": "Invalid report parameters",
            "messages": [
                "ERROR: columnsBy parameter is required. Possible values are assigneeduration, statusduration, groupduration, transitioncount, statuscount, firsttransitionfromstatusdate, firsttransitiontostatusdate, lasttransitionfromstatusdate, lasttransitiontostatusdate, assigneedurationbystatus, statusdurationbyassignee",
                "ERROR: Invalid outputType value: 'xls'. Possible values are 'csv' and 'json'",
                "ERROR: calendar parameter is required. Possible values are normalHours or ID of a custom defined calendar"
            ],
            "pluginVersion": "1.18.0.1",
            "time": "2020-05-22 07:04:20"
        }



        File Export

        You can get Time in Status report data, in one piece, as a file export.

        File Exports work asynchronously. That means (as a minimum) you will call a REST endpoint to start the export, call another REST endpoint to track its progress and (when completed) call yet another REST endpoint to download the file.

        (File Exports can take a long time, depending on the number of issues. Doing all the processing with a single REST call has a great chance of failing due to timeouts on the client side. That is why file exports are currently available only through multiple REST calls.)

        Start an export

        POST /rest/export

        Starts the processing of an export file.

        Request

        The request takes all parameters you select on the screen for a report as query parameters.

        Do not let the long text scare you. Not all parameters are always required and some are required based on filterType. See the params table below.

        Basic:

        <service_url>/rest/export?filterType=<filterType>&(user=<user> | projectKey=<projectKey> | jqlFilterID=<jqlFilterID> | customjql=<customjql> | sprintID=<sprintID> )&columnsBy=<columnsBy>&calendar=<calendar>&outputType=<outputType>

        With all parameters:

        <service_url>/rest/export?filterType=<filterType>&(user=<user> | projectKey=<projectKey> | jqlFilterID=<jqlFilterID> | customjql=<customjql> | sprintID=<sprintID> )&columnsBy=<columnsBy>&fields=<fields>&statuses=<statuses>&groups=<groups>&includeDeletedStatuses=<includeDeletedStatuses>&startDate=<startDate>&endDate=<endDate>&dateRangeField=<dateRangeField>&trimHistoryStartDate=<trimHistoryStartDate>&trimHistoryEndDate=<trimHistoryEndDate>&calendar=<calendar>&dayLength=<dayLength>&viewFormat=<viewFormat>&outputType=<outputType>&groupByFields=<groupByFields>


        Parameters

         Expand Parameters...

        Parameter

        Description

        Required

        Value Samples

        outputType

        The output file format of the report. Possible options are:

        • XLS = Returns an Excel file in XLS format that contains the list, averages, sums, median and standard deviation.
        • XLSX = Returns an Excel file in XLSX format that contains the list, averages, sums, median and standard deviation.
        • CSV = Returns a CSV (comma separated value) file that contains the report data.
        • CSVAVERAGE = Returns a CSV (comma separated value) file that contains only calculated averages.
        • CSVSUM = Returns a CSV (comma separated value) file that contains only sums of values.
        • CSVMEDIAN = Returns a CSV (comma separated value) file that contains only calculated median.
        • CSVSTDDEV = Returns a CSV (comma separated value) file that contains only calculated standard deviation.
        Yes
        • xls
        • xlsx
        • csv
        • csvaverage
        • csvsum
        • csvmedian
        • csvstddev
        filterType

        Defines how the issues to be included in the report will be selected. Possible options are:

        • user = Report will filter out the issues assigned to the selected user
        • project = Report will filter out issues in the selected Jira project
        • jqlfilter = Report will filter out issues based on an existing JQL filter
          • The value advanced is deprecated but is still valid and will be processed as jqlfilter.
        • customjql = Report will filter out issues based on a given JQL query 
        • sprint = Report will filter out issues based on an existing sprint 
        Yes
        • user
        • project
        • jqlfilter
        • customjql
        • sprint
        user

        If filterType is user, system expects a user name in the form user=<some_user_name>

        Only when filterType = user
        • user=admin
        projectkey

        If filterType is project, system expects a project key in the form projectKey=<project_key>

        Only when filterType = project
        • projectKey=ABC
        jqlfilterID

        If filterType is jqlfilter, system expects a JQL filter ID in the form jqlFilterID=<jqlFilterID>

        Only when filterType = jqlfilter
        • jqlFilterID=10145
        customjql

        If filterType is customjql, system expects a JQL Query in the form customjql=<customJQL>

        Only when filterType = customjql
        • customjql=project=ABC
        sprintID

        If filterType is sprint, system expects a Sprint ID in the form sprintID=<sprintID>

        Only when filterType = sprint
        • sprintID=2
        columnsBy

        Defines the column structure of the report. Possible options are:

        • statusDuration = Report will show durations spent on each status as column values
        • durationBetweenStatuses = Report will show the durations spent between two statuses as column values.
        • assigneeDuration= Report will show durations spent on each assignee as column values
        • statusDurationByAssignee = Report will show durations spent on each status on each assignee as column values
        • assigneeDurationByStatus = Report will show durations spent on each assignee on each status as column values
        • groupDuration= Report will show consolidated durations spent on members of each group as column values
        • anyfieldDuration = Report will show how much time each issue field held each value
        • statusCount = Report will show counts for each status
        • transitionCount = Report will show counts for each transitions between statuses
        • firstTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the FIRST time as column values
        • firstTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the FIRST time as column values 
        • lastTransitionToStatusDate = Report will show the date the issue transitioned TO each status for the LAST time as column values
        • lastTransitionFromStatusDate = Report will show the date the issue transitioned FROM each status for the LAST time as column values
        Yes
        • statusDuration
        • durationBetweenStatuses
        • assigneeDuration
        • statusDurationByAssignee
        • assigneeDurationByStatus
        • groupDuration
        • anyFieldDuration
        • statusCount
        • transitionCount
        • firstTransitionFromStatusDate
        • firstTransitionToStatusDate
        • lastTransitionFromStatusDate
        • lastTransitionToStatusDate
        fields

        The IDs of fields (separated by commas) on JIRA Issue that will be added to report output as columns.

        Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports


        assignee,customfield_10020,customfield_10007,description,duedate, fixVersions
        historyFields

        The IDs of fields (separated by commas) on JIRA Issues that will be used for Any Field Duration report.

        For details about Any Field Report Type please see: TiS Cloud - Report Types

        Both system and custom fields are supported. For more information see TiS Cloud - Field Names for REST Reports

        only when columnsBy = anyfieldDurationassignee,customfield_10020,customfield_10007,fixVersions
        groupByFields

        The IDs of fields (separated by commas) on JIRA Issue that will be used to group issues for average data.

        Both system and custom fields are supported. Some fields are intentionally excluded.

        Date fields are included in a speacial format that allows data parts to be used. For further information see TiS Cloud - Field Names for REST Reports


        assignee,customfield_10140,date:year:resolutiondate,date:week:resolutiondate
        statuses

        A JSON array listing statuses for which the durations will be included in the report.

        If not provided or left empty, the report will include all statuses in selected issues' histories.

        For assignee based reports, durations of unselected statuses will be excluded from durations of assignee columns.

        Supports two formats: Basic and Advanced


        Basic:

        Basic format is a comma separated list of status ID's to be included in the report.


        Advanced:

        Advanced format is a JSON text that contains status definitions.

        Advanced format must be employed if you want to use the Consolidated Columns feature.

        Type type attribute of each column defines whether the column is a Standard (std) or Consolidated (cons) column. For standard columns, id is the id of the status. For consolidated columns, the statuses array contains the IDs of statuses to be included in the column. For more information on status selection and column consolidation, please see TiS Cloud - Status.


        Other parameters may be included in the URL as a query parameter but statuses parameter is expected to be sent in request body encoded as "application/x-www-form-urlencoded"


        Basic

        1,3,4,5,10001,10234


        Advanced

        [
           {
              "id":"6",
              "type":"std"
           },
           {
              "id":"2",
              "type":"std"
           },
           {
              "name":"cons. status 1",
              "type":"cons",
              "statuses":[
                 "10008",
                 "3",
                 "10007"
              ]
           }
        ]
        groups

        The names of user groups (separated by commas) that will be included in Group Time report.

        If not provided or empty, the report will included all durations in a column named "Not a member of selected groups"


        • jira-administrators
        • jira-users, jira-administrators
        dbsMetrics

        The list of metrics that will be showed as columns in Duration Between Statuses reports. The parameter must be provided as JSON text.

        The maximum number of metrics allowed is 10.

        Each metric will report the duration between two statuses and consists of the following parameters:


        name: (required)

        Name of the metric. Can only include alphanumeric characters and space.


        from:

        The starting status that the duration will be calculated from. Its format should be a JSON object contains id and order (first/last) of the status.

        Not defining this parameter means that the starting point will be "issue creation".


        to: (required)

        The target status that the duration will be calculated until. Its format should be a JSON object contains id and order (first/last) of the status.


        excluded:

        List of status ids that will be excluded from the calculations. Time spent on these statuses will not be added to total time.


        See TiS Cloud - Report Types

        only when columnsBy = durationBetweenStatuses
        [
           {
              "name":"Resolution time",
              "to":{
                 "id":"5",
                 "order":"first"
              }
           },
           {
              "name":"Development time",
              "from":{
                 "id":"1",
                 "order":"first"
              },
              "to":{
                 "id":"6",
                 "order":"last"
              },
              "excluded":[
                 "10008",
                 "10003"
              ]
           }
        ]
        includeDeletedStatuses

        Sets whether included statuses in issues' histories will be included in the report or not:

        Possible options are:

        • true
        • false

        If not provided, "true" is assumed.


        • true
        • false
        startDate

        The start date of report filter.

        When provided, only issues created/resolved/updated (based on dateRangeField value) after the given date will be included in the report.

        Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

        If time parameter is not provided, default time "00:00" will be used

        See TiS Cloud - Date Range


        2017-07-01 00:00
        endDate

        The end date of report filter.

        When provided, only issues created/resolved/updated (based on dateRangeField value) before the given date will be included in the report.

        Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

        If time parameter is not provided, default time "00:00" will be used

        See TiS Cloud - Date Range


        2017-08-31 23:59
        dateRangeField

        The system date field of the Jira issue that startDate and endDate parameters will be based on. Possible options are:

        • created = The startDate and endDate parameters will be used to filter issues based on issue create date.
        • updated = The startDate and endDate parameters will be used to filter issues based on issue last update date.
        • resolved = The startDate and endDate parameters will be used to filter issues based on issue resolution date.
        Only when either startDate or endDate is provided
        • created
        • updated
        • resolved
        trimHistoryStartDate

        The start date of history trim for issues.

        When provided, only activities in each issue's history after the given date will be processed for the report.

        Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

        If time parameter is not provided, default time "00:00" will be used

        See TiS Cloud - Date Range


        2017-07-01 00:00
        trimHistoryEndDate

        The end date of history trim for issues.

        When provided, only activities in each issue's history before the given date will be processed for the report.

        Must be provided in "yyyy-MM-dd" or "yyyy-MM-dd hh:mm" format.

        If time parameter is not provided, default time "00:00" will be used

        See TiS Cloud - Date Range


        2017-08-31 23:59

        calendar

        The calendar that report durations will be calculated based on. Possible options are:

        • normalHour = The durations will be based on a 7/24 calendar. (default)
        • 0 = The default business calendar
        • n = ID of a custom calendar

        Tip: You can get the IDs of calendars using the Calendars endpoint, explained at the end of this page

        Required for Duration reports
        • normalHours
        • 0
        • 1
        • 2
        dayLength
        • 24HourDays = Each day will be 24 hours.
        • businessDays = Can be used for calendars other than 7/24. The durations will be based on the business calendar defined in admin settings. Length of each day will also be based on business hours defined in admin settings.
        Required for Duration reports
        • 24HourDays
        • businessDays
        viewFormat

        The format of duration data in the report. Possible options are:

        • humanReadable = The values will be shown like "44 d 5 h 2 m 35 s"
        • ddhhmmss = The values will be shown like "44:05:02:35"
        • hhmmss = The values will be shown like "1061:02:35"
        • days = The values will be shown in days, as a single decimal value like "44.61"
        • hours = The values will be shown in hours, as a single decimal value like "1061.04"
        • minutes = The values will be shown in minutes, as a single decimal value like "63662.59"
        • seconds = The values will be shown in seconds, like "3819755"

        If not provided, "minutes" will be used.


        • humanReadable
        • ddhhmmss
        • hhmmss
        • days
        • hours
        • minutes
        • seconds
        dateFormat

        The string format to use for displaying values of fields of type Date

        If empty or missing, the date format defined in TiS Cloud - Format Settings page is used. If Format Settings date format is also empty, the default date format set for Jira is used.

        You can refer to the Java Documentation for more information about Date Format Strings.


        • yyyy-MM-dd
        • dd/MM/yy
        • dd/MMM/yyyy
        dateTimeFormat

        The string format to use for displaying values of fields of type DateTime

        If empty or missing, the datetime format defined in TiS Cloud - Format Settings page is used. If Format Settings datetime format is also empty, the default datetime format set for Jira is used.

        You can refer to the Java Documentation for more information about Date Format Strings.


        • yyyy-MM-dd hh:mm a
        • dd/MM/yy HH:mm
        • dd/MMM/yyyy HH:mm:ss
        sortBy

        The report column that will be sorted.

        Currently, only Status Duration and Assignee Duration reports support sort and the value of this parameter should be id of a standard status, name of a consolidated status or id of an assignee.

        See TiS Cloud - Sort

        Only when sortBy is provided
        • 10000
        • my cons. status 1
        • 5da17d34md123e99d4213c73
        sortDir

        The direction in which sort will be applied.

        See TiS Cloud - Sort

        Only when sortDir is provided
        • desc
        • asc
        filters

        The list of report value filters. The parameter must be provided as JSON text.

        Currently, only Status Duration reports support filtering.

        The maximum number of filters allowed is 10.

        column should be either id of a standard status or name of a consolidated status.

        Possible operator options:

        • greaterThan
        • greaterThanEquals
        • equals
        • lessThanEquals
        • lessThan

        Possible unit options:

        • day
        • hour
        • minute
        • second

        See TiS Cloud - Filter


        [
           {
              "column":"10000",
              "operator":"greaterThanEquals",
              "value":"10",
              "unit":"day"
           },
           {
              "column":"cons. status 1",
              "operator":"lessThan",
              "value":"5.5",
              "unit":"hour"
           }
        ]

        Examples

         Expand examples...
        https://tis.obss.io/rest/export?filterType=user&user=admin&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=normalHours&viewFormat=minutes&outputType=xls
        
        https://tis.obss.io/rest/export?filterType=user&user=admin&columnsBy=statusDuration&fields=assignee&statuses=3,10000,10001&includeDeletedStatuses=true&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=normalHours&dayLength=24HourDays&viewFormat=minutes&outputType=xls&groupByFields=assignee,date:year:resolutiondate,date:week:resolutiondate
        
        https://tis.obss.io/rest/export?filterType=project&projectKey=PMP&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00 &dateRangeField=created&calendar=0&dayLength=24HourDays&viewFormat=minutes&outputType=xlsx&groupByFields=assignee,date:year:resolutiondate,date:week:resolutiondate
        
        https://tis.obss.io/rest/export?filterType=jqlfilter&jqlFilterID=10004&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv
        
        https://tis.obss.io/rest/export?filterType=customjql&customjql=project=ABC&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv
        
        https://tis.obss.io/rest/export?filterType=sprint&sprintID=2&columnsBy=statusDuration&startDate=2017-09-01 00:00&endDate=2017-10-31 00:00&dateRangeField=created&calendar=1&dayLength=businessDays&viewFormat=minutes&outputType=csv&sortBy=10123&sortDir=asc

        Responses

         Expand responses...

          Success

          HTTP 200

          When the parameters are validated and the export process has successfully started on the system.

          {
              "exportId": "d57e59ca-568a-43a0-8baa-2b86a404d1fc",
              "statusLink": "https://tis.obss.io/rest/export/d57e59ca-568a-43a0-8baa-2b86a404d1fc"
          }

          Invalid Parameter

          HTTP 400

          When one or more of the required parameters are missing or one or more of the supplied parameter values are invalid.

          messages array contains the error messages for invalid parameters.

          {
              "status": 400,
              "message": "Invalid report parameters",
              "messages": [
                  "ERROR: filterType parameter is required. Possible Values are user, project, jqlfilter, customjql and sprint",
                  "ERROR: Invalid outputType value: 'pdf'. Output type should be one of these parameters 'xls, xlsx, csv or csvClassic, csvAverage' when request is sent to get a file"
              ],
              "pluginVersion": "1.18.0.1",
              "time": "2020-03-19 05:08:11"
          }

          Export Limit Exceeded

          HTTP 429

          When you start too many simultaneous file exports and exceed the concurrent export limit per user.

          You should either wait for some fo the file exports to complete or cancel some of the running file exports.

          {
              "status": 429,
              "message": "You've reached your concurrent export limit. Wait for running file exports to complete or cancel some of the running file exports.",
              "messages": null,
              "pluginVersion": "1.18.0.1",
              "time": "2020-03-19 05:54:29"
          }

          Get status of all exports

          GET /rest/export

          A detailed list of file exports in the system.

          Supports paging

          Request

          <service_url>/rest/export


          Parameters

           Expand parameters...

          Parameter

          Description

          Required
          pageNumber

          The page index to start at, when paging is employed.

          Works with zero-based index so pageNumber for the first page is 0.

          The default value is 0.

          No
          pageSize

          The maximum number of items in a page.

          The default is 100 and values greater than 100 will be processed as 100

          No


          Examples

           Expand examples...
          https://tis.obss.io/rest/export
          
          https://tis.obss.io/rest/export?pageNumber=10&pageSize=5


          Responses

           Expand responses...

            Success

            HTTP 200

            Returns a JSON that contains all file exports of your instance, running or completed.


            {
                "pageNumber": 0,
                "pageSize": 100,
                "total": 3,
                "isLast": true,
                "exports": [
                    {
                        "exportId": "3f70d7bb-e05d-4658-9d2f-a9f9fac27396",
                        "status": "Successful",
                        "created": 1584536558826,
                        "completed": 2,
                        "total": 2,
                        "message": null,
                        "downloadLink": "https://tis.obss.io/rest/export/3f70d7bb-e05d-4658-9d2f-a9f9fac27396/download"
                    },
                    {
                        "exportId": "461d1869-866b-488e-baee-bda342aecc67",
                        "status": "Aborted",
                        "created": 1584540713594,
                        "completed": 22,
                        "total": 237,
                        "message": "Report processing was cancelled by the user"
                    },
                    {
                        "exportId": "532dad94-6776-4f02-9002-534c31563e9d",
                        "status": "Aborted",
                        "created": 1584607355618,
                        "completed": 1,
                        "total": 237,
                        "message": "Report processing was cancelled by the user"
                    }
                ]
            }

            Invalid Paging Parameters

            HTTP 400

            When at least one of the providedg pagin parameters contain an invalid value.

            {
                "status": 400,
                "message": "Invalid paging parameters.",
                "messages": [
                    "For input string: \"two\""
                ],
                "pluginVersion": "1.18.0.1",
                "time": "2020-03-19 11:55:26"
            }



            Get status of a single export

            GET /rest/export/<export_id>

            Details of a single file export in the system.

            Request

            <service_url>/rest/export/<export_id>


            Parameters

             Expand Parameters...

            Parameter

            Description

            Required

            Value Samples

            export_idThe id of the file export that you want to query the information forYes

            d57e59ca-568a-43a0-8baa-2b86a404d1fc


            Example

             Expand Examples...
            https://tis.obss.io/rest/export/d57e59ca-568a-43a0-8baa-2b86a404d1fc

            Responses

             Expand responses...

              Success

              HTTP 200

              Returns a JSON that contains detailed information of a file export.

              {
                  "exportId": "19f95f82-63ce-4d48-87d9-458c388d197b",
                  "status": "Successful",
                  "created": 1584595340656,
                  "completed": 2,
                  "total": 2,
                  "message": null,
                  "downloadLink": "https://tis.obss.io/rest/export/19f95f82-63ce-4d48-87d9-458c388d197b/download"
              }

              Export Not Found

              HTTP 404

              When an export with the given export_id is not found. The export_id might be invalid or the export might belong to another user

              {
                  "status": 404,
                  "message": "The export could not be found or you do not have permission to view it.",
                  "messages": null,
                  "pluginVersion": "1.18.0.1",
                  "time": "2020-03-19 05:24:48",
                  "exportId": "19f95f82-63ce-4d48-87d9-458c388d197a"
              }



              Download export file 

              GET /rest/export/<export_id>/download

              Downloads the file for a completed file export operation.

              Request

              <service_url>/rest/export/<export_id>/download


              Parameters

               Expand parameters...

              Parameter

              Description

              Required

              Value Samples

              export_idThe id of the file export that you want to query the information forYes341abae0-e277-4302-a6f9-cd7b5643ddef


              Examples

               Expand examples...
              https://tis.obss.io/rest/export/341abae0-e277-4302-a6f9-cd7b5643ddef/download


              Responses

               Expand responses...

                Success

                HTTP 200

                Returns a file that contains the generated export data.

                Export Not Found

                HTTP 404

                When an export with the given export_id is not found. The export_id might be invalid or the export might belong to another user.

                {
                    "status": 404,
                    "message": "The export could not be found or you do not have permission to view it.",
                    "messages": null,
                    "pluginVersion": "1.18.0.1",
                    "time": "2020-03-19 05:24:48",
                    "exportId": "19f95f82-63ce-4d48-87d9-458c388d197a"
                }



                Export Not Completed

                HTTP 404

                When the export is in a state other than Successful. The export might still be in progress, might be aborted or might have failed.

                {
                    "status": 404,
                    "message": "The export is not completed. It failed or is still being processed.",
                    "messages": null,
                    "pluginVersion": "1.18.0.1",
                    "time": "2020-03-19 05:28:52",
                    "exportId": "83246d2b-c833-4c01-b2a4-5077091f60c1"
                }



                Abort an export

                DELETE /rest/export/<export_id>

                Abort a running file export.

                Request

                <service_url>/rest/export/<export_id>


                Parameters

                 Expand parameters...

                Parameter

                Description

                Required

                Value Samples

                export_idThe id of the file export that you want to query the information forYes341abae0-e277-4302-a6f9-cd7b5643ddef


                Examples

                 Expand examples...
                https://tis.obss.io/rest/export/341abae0-e277-4302-a6f9-cd7b5643ddef


                Responses

                 Expand responses...

                  Success

                  HTTP 200

                  Returns a JSON that contains information about the aborted export.


                  {
                      "exportId": "c70f9366-f0e7-48f2-8a3b-264bc3fb3903",
                      "status": "Aborted",
                      "created": 1584595881543,
                      "completed": 1,
                      "total": 237,
                      "message": null
                  }

                  Export Not Found

                  HTTP 404

                  When an export with the given export_id is not found. The export_id might be invalid or the export might belong to another user.

                  {
                      "status": 404,
                      "message": "The export could not be found or you do not have permission to view it.",
                      "messages": null,
                      "pluginVersion": "1.18.0.1",
                      "time": "2020-03-19 05:24:48",
                      "exportId": "19f95f82-63ce-4d48-87d9-458c388d197a"
                  }

                  Export Already Completed

                  HTTP 404

                  The file export was not aborted because the export was completed before the abort command was received by the process.

                  {
                      "status": 404,
                      "message": "The export is completed.",
                      "messages": null,
                      "pluginVersion": "1.18.0.1",
                      "time": "2020-03-19 05:31:58",
                      "exportId": "c70f9366-f0e7-48f2-8a3b-264bc3fb3903"
                  }



                  Calendars

                  Get calendar information

                  GET /calendarSettings/calendar

                  A list of calendars defined in the system with their IDs can be requsted through the following REST endpoint.

                  Request

                  <service_url>/calendarSettings/calendar


                  Parameters

                  This request requires no parameters.


                  Examples

                   Expand examples...
                  https://tis.obss.io/calendarSettings/calendar


                  Responses

                   Expand responses...

                    Success

                    HTTP 200

                    Returns a JSON that contains all calendars defined in your instance, including the predefined 7/24 (normalHours) Calendar and Default Calendar Settings.

                    [
                        {
                            "id": null,
                            "name": "normalHours",
                            "monday": true,
                            "tuesday": true,
                            "wednesday": true,
                            "thursday": true,
                            "friday": true,
                            "saturday": true,
                            "sunday": true,
                            "timeZone": "(UTC+00:00) UTC",
                            "startTime": "00:00",
                            "endTime": "00:00",
                            "holidays": {}
                        },
                        {
                            "id": 46,
                            "name": "Default Calendar Settings",
                            "monday": true,
                            "tuesday": true,
                            "wednesday": true,
                            "thursday": true,
                            "friday": true,
                            "saturday": false,
                            "sunday": false,
                            "timeZone": "(UTC+00:00) UTC",
                            "startTime": "08:00",
                            "endTime": "17:00",
                            "holidays": {}
                        },
                        {
                            "id": 50,
                            "name": "Team A calendar",
                            "monday": true,
                            "tuesday": true,
                            "wednesday": true,
                            "thursday": true,
                            "friday": true,
                            "saturday": false,
                            "sunday": false,
                            "timeZone": "(UTC+03:00) Europe/Istanbul",
                            "startTime": "00:02",
                            "endTime": "17:00",
                            "holidays": {
                                "01/12/2019": ""
                            }
                        }
                    ]

                    Spreadsheet Automation Samples

                    You can also pull data from Time in Status REST API directly into your spreadsheet to automate reporting. For details, see: TiS Cloud - Sample Spreadsheet Integration Files



                    • No labels