REST API documentation version 3

https://api.tempo.io/core/{version}

About the Tempo REST API

Version 3 of the Tempo REST API is available as of February 1st, 2019.

As of March 29th, 2019, version 2 has been decomissioned. Everyone using the API is encouraged to switch to version 3.

For more information, see this announcement.

The REST API is designed around a flexible and scalable architecture that will extend in lockstep with Tempo’s development.

We encourage you to join our developer community on Slack at www.tempo.io/developers, where you can get support from our internal experts and share best practices with other developers building with Tempo.

If you have feedback or requests, you can also reach us through the Tempo Help Center.

Changes from version 2

Privacy improvements

All APIs that previously used a username to identify users now use accountId instead. Field names in JSON documents have changed accordingly, for example leadUsername has been replaced with leadAccountId.

Account contact

When creating an account, separate fields are used to identify the contact depending on whether the contact is a registered Jira user.

The contactAccountId field is used to identify the contact if the contact is a registered Jira user. The externalContactName field is used if the contact is not a registered Jira user.

In account responses, a new type field marks the contact as a Jira user (USER) or not (EXTERNAL).

Team permission update

The API for updating team permissions has been removed.

Using the REST API as an individual user

You can use the REST API to interact with the data your permissions give you access to. To do so, you will need to generate a Tempo OAuth 2.0 token.

Go to Tempo>Settings and select API integration.

Refer to Using REST API Integrations for more information.

Once you have a token, you need to use it inside the Authorization HTTP header. Ex:

curl -v -H "Authorization: Bearer ${token}" "https://api.tempo.io/core/3/worklogs?..."

Using the REST API as an application developer

If you are building apps with Tempo, and have the required Tempo administrator permissions, you can quickly obtain the OAuth 2.0 credentials you need to retrieve an access token.

Obtain your credentials

Go to Tempo>Settings, scroll down to Developer Tools and select OAuth 2.0 authentication.

Enter a Redirect URI and specify the Client type and Authorization grant type. In most cases you will choose Authorization code as the Authorization grant type.

Once you click Add, your Client ID and Client secret are generated and you can retrieve your access token.

Refer to Using OAuth 2.0 authentication for more information about generating your credentials.

How to retrieve an access token for a user

Authorization grant type used is authorization_code

Step 1

Obtain an authorization code against your JIRA Cloud instance :

GET: https://{jira-cloud-instance-name}.atlassian.net/plugins/servlet/ac/io.tempo.jira/oauth-authorize/?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&access_type=tenant_user

Where ${CLIENT_ID} and ${REDIRECT_URI} match the one you generated in Tempo > Settings > OAuth 2.0 Applications

You will be asked to authorize or deny access to your Tempo data. Granting access redirects you to the configured redirect URI with a new query string parameter named code (this is the authorization code). Note that this authorization code expires quickly.

Step 2

Obtain an access token from Tempo by providing the authorization code to:

POST: https://api.tempo.io/oauth/token/?grant_type=authorization_code&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&redirect_uri=${REDIRECT_URI}&code=${CODE}

The response includes the access token itself, related information, and a refresh token.

{
   "access_token":"${ACCESS_TOKEN}",
   "expires_in":5184000,
   "token_type":"Bearer",
   "scope":"read write",
   "refresh_token":"${REFRESH_TOKEN}"
}

Step 3

Provide this access token to any API requests using the Authorization header :

curl -H "Authorization: Bearer ${ACCESS_TOKEN}" "https://api.tempo.io/core/3/worklogs?from=2018-01-28&to=2018-02-03"

How to retrieve a new access token from the refresh token

The access token will eventually expire. You need to renew it using the previously received refresh token.

POST: https://api.tempo.io/oauth/token/?grant_type=refresh_token&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&redirect_uri=${REDIRECT_URI}&refresh_token=${REFRESH_TOKEN}

The response will contain a new access token and a new refresh token.

How to revoke a token

You can revoke an existing access token at any time:

POST: https://api.tempo.io/oauth/revoke_token/?token_type_hint=access_token&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&token=${ACCESS_TOKEN}

You can also revoke an existing refresh token :

POST: https://api.tempo.io/oauth/revoke_token/?token_type_hint=refresh_token&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&token=${REFRESH_TOKEN}

API conventions

Identifying users

The Tempo REST API uses the Atlassian accountId to identify users. The accountId is an opaque identifier that uniquely identifies the user.

The accountId of the current user can found using the Jira Myself API.

Information about a user, given the accountId, can be retrieved using the Jira User API.

Dates

The API uses strings to represent dates. Dates are formatted as ISO 8601 calendar dates (YYYY-MM-DD). For example, March 29th, 2019 is formatted as 2019-03-29.

Delete requests

On success, delete requests return a response with status code 204 (No content). No payload body is included in the response.

  • version: required (3)

Accounts

/accounts post get
post

Creates a new account.

Separate fields are used to identify the contact depending on whether the contact is a registered Jira user or not. The contactAccountId field is used to identify the contact if the contact is a registered Jira user. The externalContactName field is used if the contact is not a registered Jira user.

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • leadAccountId: required (string)
  • contactAccountId: (string)

    accountId of the contact, if the contact is a registered Jira user

  • externalContactName: (string)

    Name of the contact, if the contact is not a registered Jira user

  • categoryKey: (string)
  • customerKey: (string)
  • monthlyBudget: (number)
  • global: (boolean - default: false)

Examples:

Jira user as contact:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "leadAccountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
  "contactAccountId": "1111aaaa2222bbbb3333cccc",
  "categoryKey": "dev1",
  "customerKey": "cloudbay1",
  "monthlyBudget": 600,
  "global": false
}

External contact:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "leadAccountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
  "externalContactName": "John Brown"
}

HTTP status code 200

Account has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • global: required (boolean - default: false)
  • monthlyBudget: (integer)
  • lead: required (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • accountId: (string)
    • displayName: required (string)
    • type: required (one of USER, EXTERNAL)

      Indicates if the user is a registered Jira user (USER) or not (EXTERNAL)

  • category: (category)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 7,
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown",
    "type": "USER"
  },
  "category": {
    "self": "https://api.tempo.io/core/3/account-categories/development",
    "key": "development",
    "id": 14,
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/core/3/customers/cloudbay",
    "key": "cloudbay",
    "id": 234,
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
  }
}

HTTP status code 400

Account cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Account with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve existing accounts

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • status: (string)

    Retrieve accounts for the given status [OPEN, CLOSED, ARCHIVED]

HTTP status code 200

List accounts

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Account)

    Items: Account

    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • status: required (one of OPEN, CLOSED, ARCHIVED)
    • global: required (boolean - default: false)
    • monthlyBudget: (integer)
    • lead: required (lead)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • contact: (contact)
      • self: (string)
      • accountId: (string)
      • displayName: required (string)
      • type: required (one of USER, EXTERNAL)

        Indicates if the user is a registered Jira user (USER) or not (EXTERNAL)

    • category: (category)
      • self: required (string)
      • key: required (string)
      • id: required (integer)
      • name: required (string)
      • type: required (type)
        • name: required (string)
    • customer: (customer)
      • self: required (string)
      • key: required (string)
      • id: required (integer)
      • name: required (string)
    • links: required (links)
      • self: required (string)

Examples:

Retrieve all existing accounts:

{
  "self": "https://api.tempo.io/core/3/accounts",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "id": 7,
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown",
        "type": "USER"
      },
      "category": {
        "self": "https://api.tempo.io/core/3/account-categories/300",
        "key": "300",
        "id": 14,
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/core/3/customers/100201",
        "key": "100201",
        "id": 234,
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "id": 8,
      "name": "Cloudbay: Capex",
      "status": "CLOSED",
      "global": false,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX/links"
      }
    }
  ]
}

Retrieve accounts for "OPEN" status:

{
  "self": "https://api.tempo.io/core/3/accounts?status=OPEN",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "id": 7,
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown",
        "type": "USER"
      },
      "category": {
        "self": "https://api.tempo.io/core/3/account-categories/300",
        "key": "300",
        "id": 14,
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/core/3/customers/100201",
        "key": "100201",
        "id": 234,
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "id": 8,
      "name": "Cloudbay: Capex",
      "status": "OPEN",
      "global": false,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown",
        "type": "USER"
      },
      "category": {
        "self": "https://api.tempo.io/core/3/account-categories/300",
        "key": "300",
        "id": 14,
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/core/3/customers/100201",
        "key": "100201",
        "id": 234,
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX/links"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/accounts/{key} get put delete
get

Retrieve an existing account for the given key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 200

Account data of the given key

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • global: required (boolean - default: false)
  • monthlyBudget: (integer)
  • lead: required (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • accountId: (string)
    • displayName: required (string)
    • type: required (one of USER, EXTERNAL)

      Indicates if the user is a registered Jira user (USER) or not (EXTERNAL)

  • category: (category)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 7,
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown",
    "type": "USER"
  },
  "category": {
    "self": "https://api.tempo.io/core/3/account-categories/development",
    "key": "development",
    "id": 14,
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/core/3/customers/cloudbay",
    "key": "cloudbay",
    "id": 234,
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Account cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Account not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing account

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • leadAccountId: required (string)
  • contactAccountId: (string)

    accountId of the contact, if the contact is a registered Jira user

  • externalContactName: (string)

    Name of the contact, if the contact is not a registered Jira user

  • categoryKey: (string)
  • customerKey: (string)
  • monthlyBudget: (number)
  • global: (boolean - default: false)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "leadAccountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
  "contactAccountId": "1111aaaa2222bbbb3333cccc",
  "categoryKey": "dev1",
  "customerKey": "cloudbay1",
  "monthlyBudget": 600,
  "global": false
}

HTTP status code 200

Account has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • global: required (boolean - default: false)
  • monthlyBudget: (integer)
  • lead: required (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • accountId: (string)
    • displayName: required (string)
    • type: required (one of USER, EXTERNAL)

      Indicates if the user is a registered Jira user (USER) or not (EXTERNAL)

  • category: (category)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 7,
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown",
    "type": "USER"
  },
  "category": {
    "self": "https://api.tempo.io/core/3/account-categories/development",
    "key": "development",
    "id": 14,
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/core/3/customers/cloudbay",
    "key": "cloudbay",
    "id": 234,
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
  }
}

HTTP status code 400

Account cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Account with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Account cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Account not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing account

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 204

Account has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Account cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Account not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Account - Categories

post

Creates a new category

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)
  • typeName: (one of BILLABLE, CAPITALIZED, INTERNAL, OPERATIONAL)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "typeName": "BILLABLE"
}

HTTP status code 200

Category has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 14,
  "name": "Cloudbay: Development",
  "type": {
    "name": "BILLABLE"
  }
}

HTTP status code 400

Category cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Category with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all existing categories

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • id: required (integer)

    Retrieve only category with this id

HTTP status code 200

List of all categories

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Category)

    Items: Category

    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • type: required (type)
      • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/account-categories",
  "metadata": {
    "count": 1
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/account-categories/300",
      "key": "300",
      "id": 14,
      "name": "Development",
      "type": {
        "name": "BILLABLE"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve an existing category for the given key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 200

Category data of the given key

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 14,
  "name": "Cloudbay: Development",
  "type": {
    "name": "BILLABLE"
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Category cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid category key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing category

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)
  • typeName: (one of BILLABLE, CAPITALIZED, INTERNAL, OPERATIONAL)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "typeName": "BILLABLE"
}

HTTP status code 200

Category has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 14,
  "name": "Cloudbay: Development",
  "type": {
    "name": "BILLABLE"
  }
}

HTTP status code 400

Category cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Category with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Category cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid category key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing category

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 204

Category has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Category cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid category key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Account - Category - Types

get

Retrieve all existing types

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

List of all types

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of CategoryType)

    Items: CategoryType

    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/account-category-types",
  "metadata": {
    "count": 4
  },
  "results": [
    {
      "name": "BILLABLE"
    },
    {
      "name": "CAPITALIZED"
    },
    {
      "name": "INTERNAL"
    },
    {
      "name": "OPERATIONAL"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Customers

/customers post get
post

Creates a new customer

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development"
}

HTTP status code 200

Customer has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 234,
  "name": "GreenCloud"
}

HTTP status code 400

Customer cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Customer with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all existing customers

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • id: required (integer)

    Retrieve only customer with this id

HTTP status code 200

List of all customers

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Customer)

    Items: Customer

    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/customers",
  "metadata": {
    "count": 1
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/customers/GreenCloud",
      "key": "GreenCloud",
      "id": 234,
      "name": "GreenCloud"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/customers/{key} get put delete
get

Retrieve an existing customer for the given key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 200

Customer data of the given key

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 234,
  "name": "GreenCloud"
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Customer cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid customer key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing Customer

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • name: required (string)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development"
}

HTTP status code 200

Customer has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • id: required (integer)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "id": 234,
  "name": "GreenCloud"
}

HTTP status code 400

Customer cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Customer with this key already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Customer cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid customer key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing customer

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 204

Customer has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Customer cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid customer key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all accounts for a given customer

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 200

A list of accounts

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Account)

    Items: Account

    • self: required (string)
    • key: required (string)
    • id: required (integer)
    • name: required (string)
    • status: required (one of OPEN, CLOSED, ARCHIVED)
    • global: required (boolean - default: false)
    • monthlyBudget: (integer)
    • lead: required (lead)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • contact: (contact)
      • self: (string)
      • accountId: (string)
      • displayName: required (string)
      • type: required (one of USER, EXTERNAL)

        Indicates if the user is a registered Jira user (USER) or not (EXTERNAL)

    • category: (category)
      • self: required (string)
      • key: required (string)
      • id: required (integer)
      • name: required (string)
      • type: required (type)
        • name: required (string)
    • customer: (customer)
      • self: required (string)
      • key: required (string)
      • id: required (integer)
      • name: required (string)
    • links: required (links)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/customers/CLOUDBAY/accounts",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "id": 7,
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown",
        "type": "USER"
      },
      "category": {
        "self": "https://api.tempo.io/core/3/account-categories/300",
        "key": "300",
        "id": 14,
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/core/3/customers/CLOUDBAY",
        "key": "CLOUDBAY",
        "id": 234,
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_DEVELOPMENT/links"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "id": 8,
      "name": "Cloudbay: Capex",
      "status": "ARCHIVED",
      "global": true,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "customer": {
        "self": "https://api.tempo.io/core/3/customers/CLOUDBAY",
        "key": "CLOUDBAY",
        "id": 234,
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/accounts/CLOUDBAY_CAPEX/links"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Customer cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Invalid customer key"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Plans

/plans post
post

Creates a new plan

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • startDate: required (date-only)
  • endDate: required (date-only)
  • description: (string)
  • plannedPerDaySeconds: required (number)
  • includeNonWorkingDays: (boolean)
  • rule: (one of NEVER, WEEKLY, BI_WEEKLY, MONTHLY)
  • recurrenceEndDate: (date-only)
  • accountId: required (string)
  • issueKey: (string)
  • projectKey: (string)

Example:

{
  "startDate": "2017-02-27",
  "endDate": "2017-02-27",
  "description": "Planning to do some work every month on issue ISS-15",
  "plannedPerDaySeconds": 3600,
  "includeNonWorkingDays": false,
  "rule": "MONTHLY",
  "recurrenceEndDate": "2019-12-31",
  "accountId": "1111aaaa2222bbbb3333cccc",
  "issueKey": "ISS-15"
}

HTTP status code 200

Plan has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • startDate: required (date-only)
  • endDate: required (date-only)
  • description: (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • assignee: required (assignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (planItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (recurrence)
    • rule: required (one of NEVER, WEEKLY, BIWEEKLY, MONTHLY)
    • recurrenceEndDate: required (date-only)
  • dates: required (dates)
    • metadata: required (metadata)
      • count: required (integer)
      • all: required (string)
    • values: required (array of PlanPeriod)

      Items: PlanPeriod

      • from: required (date-only)
      • to: required (date-only)
      • timePlannedSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/plans/123",
  "id": 123,
  "startDate": "2017-12-15",
  "endDate": "2017-12-15",
  "description": "This is a plan",
  "createdAt": "2017-02-23T15:07:00Z",
  "updatedAt": "2017-02-23T15:07:00Z",
  "assignee": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "type": "USER"
  },
  "planItem": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/project/1000110",
    "type": "PROJECT"
  },
  "recurrence": {
    "rule": "NEVER",
    "recurrenceEndDate": "2017-12-15"
  },
  "dates": {
    "metadata": {
      "count": 1,
      "all": "https://api.tempo.io/core/3/plans/123?from=2017-12-15&to=2017-12-15"
    },
    "values": [
      {
        "from": "2017-12-15",
        "to": "2017-12-15",
        "timePlannedSeconds": 28800
      }
    ]
  }
}

HTTP status code 400

Plan cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Issue not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/plans/{id} get put delete
get

Retrieve an existing plan for the given id. Add from and to query params to expand recurrences.

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

HTTP status code 200

Plan of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • startDate: required (date-only)
  • endDate: required (date-only)
  • description: (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • assignee: required (assignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (planItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (recurrence)
    • rule: required (one of NEVER, WEEKLY, BIWEEKLY, MONTHLY)
    • recurrenceEndDate: required (date-only)
  • dates: required (dates)
    • metadata: required (metadata)
      • count: required (integer)
      • all: required (string)
    • values: required (array of PlanPeriod)

      Items: PlanPeriod

      • from: required (date-only)
      • to: required (date-only)
      • timePlannedSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/plans/123",
  "id": 123,
  "startDate": "2017-12-15",
  "endDate": "2017-12-15",
  "description": "This is a plan",
  "createdAt": "2017-02-23T15:07:00Z",
  "updatedAt": "2017-02-23T15:07:00Z",
  "assignee": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "type": "USER"
  },
  "planItem": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/project/1000110",
    "type": "PROJECT"
  },
  "recurrence": {
    "rule": "NEVER",
    "recurrenceEndDate": "2017-12-15"
  },
  "dates": {
    "metadata": {
      "count": 1,
      "all": "https://api.tempo.io/core/3/plans/123?from=2017-12-15&to=2017-12-15"
    },
    "values": [
      {
        "from": "2017-12-15",
        "to": "2017-12-15",
        "timePlannedSeconds": 28800
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Plan cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Allocation not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing plan for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Body

Media type: application/json

Type: object

Properties
  • startDate: required (date-only)
  • endDate: required (date-only)
  • description: (string)
  • plannedPerDaySeconds: required (number)
  • includeNonWorkingDays: (boolean)
  • rule: (one of NEVER, WEEKLY, BI_WEEKLY, MONTHLY)
  • recurrenceEndDate: (date-only)
  • accountId: required (string)
  • issueKey: (string)
  • projectKey: (string)

Example:

{
  "startDate": "2017-02-27",
  "endDate": "2017-02-27",
  "description": "Planning to do some work every month on issue ISS-15",
  "plannedPerDaySeconds": 3600,
  "includeNonWorkingDays": false,
  "rule": "MONTHLY",
  "recurrenceEndDate": "2019-12-31",
  "accountId": "1111aaaa2222bbbb3333cccc",
  "issueKey": "ISS-15"
}

HTTP status code 200

Plan has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • startDate: required (date-only)
  • endDate: required (date-only)
  • description: (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • assignee: required (assignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (planItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (recurrence)
    • rule: required (one of NEVER, WEEKLY, BIWEEKLY, MONTHLY)
    • recurrenceEndDate: required (date-only)
  • dates: required (dates)
    • metadata: required (metadata)
      • count: required (integer)
      • all: required (string)
    • values: required (array of PlanPeriod)

      Items: PlanPeriod

      • from: required (date-only)
      • to: required (date-only)
      • timePlannedSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/plans/123",
  "id": 123,
  "startDate": "2017-12-15",
  "endDate": "2017-12-15",
  "description": "This is a plan",
  "createdAt": "2017-02-23T15:07:00Z",
  "updatedAt": "2017-02-23T15:07:00Z",
  "assignee": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "type": "USER"
  },
  "planItem": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/project/1000110",
    "type": "PROJECT"
  },
  "recurrence": {
    "rule": "NEVER",
    "recurrenceEndDate": "2017-12-15"
  },
  "dates": {
    "metadata": {
      "count": 1,
      "all": "https://api.tempo.io/core/3/plans/123?from=2017-12-15&to=2017-12-15"
    },
    "values": [
      {
        "from": "2017-12-15",
        "to": "2017-12-15",
        "timePlannedSeconds": 28800
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Plan cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Allocation not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing plan

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 204

Plan has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Plan cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Allocation not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve plans for user

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: required (date-only)

    Retrieve results starting with this date

  • to: required (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

HTTP status code 200

List of plans

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Plan)

    Items: Plan

    • self: required (string)
    • id: required (integer)
    • startDate: required (date-only)
    • endDate: required (date-only)
    • description: (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • assignee: required (assignee)
      • self: required (string)
      • type: required (one of USER, TEAM)
    • planItem: required (planItem)
      • self: required (string)
      • type: required (one of ISSUE, PROJECT)
    • recurrence: required (recurrence)
      • rule: required (one of NEVER, WEEKLY, BIWEEKLY, MONTHLY)
      • recurrenceEndDate: required (date-only)
    • dates: required (dates)
      • metadata: required (metadata)
        • count: required (integer)
        • all: required (string)
      • values: required (array of PlanPeriod)

        Items: PlanPeriod

        • from: required (date-only)
        • to: required (date-only)
        • timePlannedSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/plans/user/1111aaaa2222bbbb3333cccc?from=2017-11-01&to=2017-12-31",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/plans/223",
      "id": 223,
      "startDate": "2017-07-13",
      "endDate": "2017-11-13",
      "description": "This is an issue plan",
      "createdAt": "2017-02-23T15:07:00Z",
      "updatedAt": "2017-02-23T15:07:00Z",
      "assignee": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "type": "USER"
      },
      "planItem": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/issue/ISS-555",
        "type": "ISSUE"
      },
      "recurrence": {
        "rule": "MONTHLY",
        "recurrenceEndDate": "2018-12-31"
      },
      "dates": {
        "metadata": {
          "count": 2,
          "all": "https://api.tempo.io/core/3/plans/123?from=2017-07-13&to=2018-12-31"
        },
        "values": [
          {
            "from": "2017-11-13",
            "to": "2017-11-13",
            "timePlannedSeconds": 3600
          },
          {
            "from": "2017-12-13",
            "to": "2017-12-13",
            "timePlannedSeconds": 3600
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/core/3/plans/289",
      "id": 289,
      "startDate": "2017-07-13",
      "endDate": "2017-11-13",
      "description": "This is a project plan",
      "createdAt": "2017-02-23T15:07:00Z",
      "updatedAt": "2017-02-23T15:07:00Z",
      "assignee": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "type": "USER"
      },
      "planItem": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/project/1000100",
        "type": "PROJECT"
      },
      "recurrence": {
        "rule": "WEEKLY",
        "recurrenceEndDate": "2018-04-01"
      },
      "dates": {
        "metadata": {
          "count": 7,
          "all": "https://api.tempo.io/core/3/plans/123?from=2017-07-13&to=2018-04-01"
        },
        "values": [
          {
            "from": "2017-11-15",
            "to": "2017-11-15",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-11-22",
            "to": "2017-11-22",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-11-29",
            "to": "2017-11-29",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-12-06",
            "to": "2017-12-06",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-12-13",
            "to": "2017-12-13",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-12-20",
            "to": "2017-12-20",
            "timePlannedSeconds": 14400
          },
          {
            "from": "2017-12-27",
            "to": "2017-12-27",
            "timePlannedSeconds": 14400
          }
        ]
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Programs

/programs get post
get

Retrieve all programs

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

List of all programs

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Program)

    Items: Program

    • self: required (string)
    • id: required (integer)
    • name: required (string)
    • manager: (manager)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • teams: required (teams)
      • self: required (string)
      • values: required (array of TeamRef)

        Items: TeamRef

        • self: required (string)
        • id: required (integer)
        • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/programs",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/programs/1",
      "id": 1,
      "name": "P1",
      "manager": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "teams": {
        "self": "https://api.tempo.io/core/3/programs/1/teams",
        "values": [
          {
            "self": "https://api.tempo.io/core/3/teams/101",
            "id": 101,
            "name": "Developer"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/core/3/programs/2",
      "id": 2,
      "name": "P2",
      "manager": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "teams": {
        "self": "https://api.tempo.io/core/3/programs/2/teams",
        "values": [
          {
            "self": "https://api.tempo.io/core/3/teams/103",
            "id": 103,
            "name": "QA"
          }
        ]
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Creates a new program

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • name: required (string)
  • managerAccountId: (string)
  • teamIds: (array of )

Example:

{
  "name": "P1",
  "managerAccountId": "1111aaaa2222bbbb3333cccc",
  "teamIds": [
    101
  ]
}

HTTP status code 200

Program has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • manager: (manager)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • teams: required (teams)
    • self: required (string)
    • values: required (array of TeamRef)

      Items: TeamRef

      • self: required (string)
      • id: required (integer)
      • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/core/3/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/core/3/teams/101",
        "id": 101,
        "name": "Developer"
      }
    ]
  }
}

HTTP status code 400

Program cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Program name is required"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/programs/{id} get put delete
get

Retrieve an existing program for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Program data of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • manager: (manager)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • teams: required (teams)
    • self: required (string)
    • values: required (array of TeamRef)

      Items: TeamRef

      • self: required (string)
      • id: required (integer)
      • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/core/3/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/core/3/teams/101",
        "id": 101,
        "name": "Developer"
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Program cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Program not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing program for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Body

Media type: application/json

Type: object

Properties
  • name: required (string)
  • managerAccountId: (string)
  • teamIds: (array of )

Example:

{
  "name": "P1",
  "managerAccountId": "1111aaaa2222bbbb3333cccc",
  "teamIds": [
    101
  ]
}

HTTP status code 200

Program has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • manager: (manager)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • teams: required (teams)
    • self: required (string)
    • values: required (array of TeamRef)

      Items: TeamRef

      • self: required (string)
      • id: required (integer)
      • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/core/3/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/core/3/teams/101",
        "id": 101,
        "name": "Developer"
      }
    ]
  }
}

HTTP status code 400

Program cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Program name is required"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Program cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Program not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing program

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 204

Program has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Program cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Program not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve teams associated to this program

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

List of teams associated to the program

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of TeamRef)

    Items: TeamRef

    • self: required (string)
    • id: required (integer)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/programs/3/teams",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/teams/12",
      "id": 12,
      "name": "Design"
    },
    {
      "self": "https://api.tempo.io/core/3/teams/43",
      "id": 43,
      "name": "Analyst"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Roles

/roles get post
get

Retrieve all roles

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

List of all roles

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Team Role)

    Items: Team Role

    • self: required (string)
    • id: required (integer)
    • name: required (string)
    • default: required (boolean)

Example:

{
  "self": "https://api.tempo.io/core/3/roles",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/roles/1",
      "id": 1,
      "name": "Developer",
      "default": true
    },
    {
      "self": "https://api.tempo.io/core/3/roles/2",
      "id": 2,
      "name": "Manager",
      "default": false
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Creates a new role

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • name: required (string)

Example:

{
  "name": "Developer"
}

HTTP status code 200

Role has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • default: required (boolean)

Example:

{
  "self": "https://api.tempo.io/core/3/roles/2",
  "id": 2,
  "name": "Manager",
  "default": false
}

HTTP status code 400

Role cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Role name cannot be blank"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/roles/{id} get put delete
get

Retrieve an existing role for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Role data of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • default: required (boolean)

Example:

{
  "self": "https://api.tempo.io/core/3/roles/2",
  "id": 2,
  "name": "Manager",
  "default": false
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Role cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Role not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing role for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Body

Media type: application/json

Type: object

Properties
  • name: required (string)

Example:

{
  "name": "Developer"
}

HTTP status code 200

Role has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • default: required (boolean)

Example:

{
  "self": "https://api.tempo.io/core/3/roles/2",
  "id": 2,
  "name": "Manager",
  "default": false
}

HTTP status code 400

Role cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Role name cannot be blank"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Role cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Role not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing role

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 204

Role has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Role cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Role not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Teams

/teams post get
post

Creates a new team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • name: required (string)
  • summary: (string)
  • leadAccountId: (string)
  • programId: (integer)

Example:

{
  "name": "Team-A",
  "summary": "This is the A team",
  "leadAccountId": "1111aaaa2222bbbb3333cccc",
  "programId": 42
}

HTTP status code 200

Team has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • summary: (string)
  • lead: (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • program: (program)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)
  • members: required (members)
    • self: required (string)
  • permissions: required (permissions)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1",
  "id": 1,
  "name": "Team-A",
  "summary": "This is the A team",
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/core/3/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/core/3/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/core/3/teams/1/permissions"
  }
}

HTTP status code 400

Team cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team with that name ('Team-A') already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all teams

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

List of all teams the user is allowed to browse

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Team)

    Items: Team

    • self: required (string)
    • id: required (integer)
    • name: required (string)
    • summary: (string)
    • lead: (lead)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • program: (program)
      • self: required (string)
      • id: required (integer)
      • name: required (string)
    • links: required (links)
      • self: required (string)
    • members: required (members)
      • self: required (string)
    • permissions: required (permissions)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/teams/1",
      "id": 1,
      "name": "Team-A",
      "summary": "This is the A team",
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "program": {
        "self": "https://api.tempo.io/core/3/programs/42",
        "id": 42,
        "name": "Devs"
      },
      "links": {
        "self": "https://api.tempo.io/core/3/teams/1/links"
      },
      "members": {
        "self": "https://api.tempo.io/core/3/teams/1/members"
      },
      "permissions": {
        "self": "https://api.tempo.io/core/3/teams/1/permissions"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/teams/2",
      "id": 2,
      "name": "Team-B",
      "links": {
        "self": "https://api.tempo.io/core/3/teams/2/links"
      },
      "members": {
        "self": "https://api.tempo.io/core/3/teams/2/members"
      },
      "permissions": {
        "self": "https://api.tempo.io/core/3/teams/2/permissions"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/teams/{id} get put delete
get

Retrieve an existing team for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Team of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • summary: (string)
  • lead: (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • program: (program)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)
  • members: required (members)
    • self: required (string)
  • permissions: required (permissions)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1",
  "id": 1,
  "name": "Team-A",
  "summary": "This is the A team",
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/core/3/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/core/3/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/core/3/teams/1/permissions"
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing team for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Body

Media type: application/json

Type: object

Properties
  • name: required (string)
  • summary: (string)
  • leadAccountId: (string)
  • programId: (integer)

Example:

{
  "name": "Team-A",
  "summary": "This is the A team",
  "leadAccountId": "1111aaaa2222bbbb3333cccc",
  "programId": 42
}

HTTP status code 200

Team has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • name: required (string)
  • summary: (string)
  • lead: (lead)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • program: (program)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • links: required (links)
    • self: required (string)
  • members: required (members)
    • self: required (string)
  • permissions: required (permissions)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1",
  "id": 1,
  "name": "Team-A",
  "summary": "This is the A team",
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/core/3/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/core/3/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/core/3/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/core/3/teams/1/permissions"
  }
}

HTTP status code 400

Team cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team with that name ('Team-A') already exists"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 204

Team has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all the members for this team with their active membership

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Team's members

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Team Member Active Membership)

    Items: Team Member Active Membership

    • self: required (string)
    • team: required (team)
      • self: required (string)
    • member: required (member)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • memberships: required (memberships)
      • self: required (self)
        • self: required (string)
      • active: (active)
        • self: required (string)
        • id: required (integer)
        • commitmentPercent: required (integer)
        • from: (date-only)
        • to: (date-only)
        • role: required (role)
          • id: required (integer)
          • self: required (string)
          • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1/members",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/teams/1/members/1111aaaa2222bbbb3333cccc",
      "team": {
        "self": "https://api.tempo.io/core/3/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "memberships": {
        "self": "https://api.tempo.io/core/3/teams/1/members/1111aaaa2222bbbb3333cccc/memberships",
        "active": {
          "self": "https://api.tempo.io/core/3/team-memberships/3",
          "id": 3,
          "commitmentPercent": 100,
          "from": null,
          "to": null,
          "role": {
            "self": "https://api.tempo.io/core/3/roles/1",
            "id": 1,
            "name": "Tester"
          }
        }
      }
    },
    {
      "self": "https://api.tempo.io/core/3/teams/1/members/123456:01234567-89ab-cdef-0123-456789abcdef",
      "team": {
        "self": "https://api.tempo.io/core/3/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "memberships": {
        "self": "https://api.tempo.io/core/3/teams/1/members/123456:01234567-89ab-cdef-0123-456789abcdef/memberships"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve the member's active membership for this team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)
  • accountId: required (string)

HTTP status code 200

Member's active membership for this team

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • team: required (team)
    • self: required (string)
  • member: required (member)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • memberships: required (memberships)
    • self: required (self)
      • self: required (string)
    • active: (active)
      • self: required (string)
      • id: required (integer)
      • commitmentPercent: required (integer)
      • from: (date-only)
      • to: (date-only)
      • role: required (role)
        • id: required (integer)
        • self: required (string)
        • name: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1/members/1111aaaa2222bbbb3333cccc",
  "team": {
    "self": "https://api.tempo.io/core/3/teams/1"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "memberships": {
    "self": "https://api.tempo.io/core/3/teams/1/members/1111aaaa2222bbbb3333cccc/memberships",
    "active": {
      "self": "https://api.tempo.io/core/3/team-memberships/1",
      "id": 1,
      "commitmentPercent": 100,
      "from": null,
      "to": null,
      "role": {
        "self": "https://api.tempo.io/core/3/roles/1",
        "id": 1,
        "name": "Tester"
      }
    }
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system or user is not a member of this team

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve member's memberships for this team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)
  • accountId: required (string)

HTTP status code 200

Member's memberships for this team

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Team Member Membership)

    Items: Team Member Membership

    • self: required (string)
    • id: required (integer)
    • commitmentPercent: required (integer)
    • from: (date-only)
    • to: (date-only)
    • role: required (role)
      • id: required (integer)
      • self: required (string)
      • name: required (string)
    • team: (team)
      • self: required (string)
    • member: (member)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/teams/1/members/1111aaaa2222bbbb3333cccc/memberships",
  "metadata": {
    "count": 3
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/team-memberships/1",
      "id": 1,
      "commitmentPercent": 100,
      "from": "2016-01-01",
      "to": "2016-12-31",
      "role": {
        "self": "https://api.tempo.io/core/3/roles/1",
        "id": 1,
        "name": "Tester"
      },
      "team": {
        "self": "https://api.tempo.io/core/3/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/team-memberships/2",
      "id": 2,
      "commitmentPercent": 50,
      "from": "2017-06-01",
      "to": "2017-12-31",
      "role": {
        "self": "https://api.tempo.io/core/3/roles/2",
        "id": 2,
        "name": "Developer"
      },
      "team": {
        "self": "https://api.tempo.io/core/3/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/team-memberships/3",
      "id": 3,
      "commitmentPercent": 100,
      "from": "2018-01-01",
      "to": "2018-12-31",
      "role": {
        "self": "https://api.tempo.io/core/3/roles/1",
        "id": 1,
        "name": "Tester"
      },
      "team": {
        "self": "https://api.tempo.io/core/3/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc"
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system or user is not a member of this team

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all the permissions for this team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Team's permissions

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of TeamPermission)

    Items: TeamPermission

    • self: required (string)
    • key: required (string)
    • users: required (users)
      • self: required (string)
      • values: required (array of User)

        Items: User

        • self: required (string)
        • accountId: required (string)
        • displayName: required (string)

Example:

14:

{
  "self": "https://api.tempo.io/core/3/teams/14/permissions",
  "metadata": {
    "count": 3
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.teams.browse.team",
      "key": "tempo.teams.browse.team",
      "users": {
        "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.teams.browse.team/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
            "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
            "displayName": "Erica Jefferson"
          },
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
            "accountId": "1111aaaa2222bbbb3333cccc",
            "displayName": "John Brown"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.timesheets.approve.timesheet",
      "key": "tempo.timesheets.approve.timesheet",
      "users": {
        "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.timesheets.approve.timesheet/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
            "accountId": "1111aaaa2222bbbb3333cccc",
            "displayName": "John Brown"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.planner.plan.permission",
      "key": "tempo.planner.plan.permission",
      "users": {
        "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.planner.plan.permission/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
            "accountId": "1111aaaa2222bbbb3333cccc",
            "displayName": "John Brown"
          }
        ]
      }
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve a specific permission belonging to the team

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)
  • key: required (string)

HTTP status code 200

Team's permission

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • users: required (users)
    • self: required (string)
    • values: required (array of User)

      Items: User

      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)

Example:

tempo.teams.browse.team:

{
  "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.teams.browse.team",
  "key": "tempo.teams.browse.team",
  "users": {
    "self": "https://api.tempo.io/core/3/teams/14/permissions/tempo.teams.browse.team/users",
    "values": [
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Team or permission cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Permission tempo.teams.browse.team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/team-links/{id} get delete

Team - Memberships

post

Creates a new membership

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • teamId: required (integer)
  • accountId: required (string)
  • roleId: (integer - default: Default team role)
  • commitmentPercent: (integer - default: 100)
  • from: (date-only)
  • to: (date-only)

Example:

{
  "teamId": 1,
  "accountId": "1111aaaa2222bbbb3333cccc",
  "roleId": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31"
}

HTTP status code 200

Membership has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • commitmentPercent: required (integer)
  • from: (date-only)
  • to: (date-only)
  • role: required (role)
    • id: required (integer)
    • self: required (string)
    • name: required (string)
  • team: required (team)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • member: required (member)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/core/3/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/core/3/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  }
}

HTTP status code 400

Membership cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "User is already a member of this team on this date."
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/team-memberships/{id} get put delete
get

Retrieve an existing membership for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 200

Membership data of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • commitmentPercent: required (integer)
  • from: (date-only)
  • to: (date-only)
  • role: required (role)
    • id: required (integer)
    • self: required (string)
    • name: required (string)
  • team: (team)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • member: (member)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/core/3/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/core/3/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Membership cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Membership with id '42' does not exist"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing membership for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

Body

Media type: application/json

Type: object

Properties
  • roleId: (integer - default: Default team role)
  • commitmentPercent: (integer - default: 100)
  • from: (date-only)
  • to: (date-only)

Example:

{
  "roleId": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31"
}

HTTP status code 200

Membership has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • id: required (integer)
  • commitmentPercent: required (integer)
  • from: (date-only)
  • to: (date-only)
  • role: required (role)
    • id: required (integer)
    • self: required (string)
    • name: required (string)
  • team: (team)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • member: (member)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/core/3/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/core/3/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  }
}

HTTP status code 400

Membership cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "User is already a member of this team on this date."
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Membership cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Membership with id '42' does not exist"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing membership

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • id: required (string)

HTTP status code 204

Membership has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Membership cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Membership with id '42' does not exist"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Periods

get

Retrieve all periods for a given date range

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • from: required (date-only)

    Retrieve results starting with this date

  • to: required (date-only)

    Retrieve results up to and including this date

HTTP status code 200

Body

Media type: application/json

Type: object

Properties
  • periods: required (array of Period)

    Items: Period

    • from: required (date-only)
    • to: required (date-only)

Example:

{
  "periods": [
    {
      "from": "2017-12-01",
      "to": "2017-12-31"
    },
    {
      "from": "2018-01-01",
      "to": "2018-01-31"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Timesheet Approvals

get

Retrieve all timesheets that are awaiting my approval

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

Awaiting Timesheets

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Timesheet Approval)

    Items: Timesheet Approval

    • self: required (string)
    • period: required (period)
      • from: required (date-only)
      • to: required (date-only)
    • requiredSeconds: required (number)
    • timeSpentSeconds: required (number)
    • status: required (status)
      • key: required (one of OPEN, IN_REVIEW, APPROVED)
      • comment: (string)
      • actor: (actor)
        • self: required (string)
        • accountId: required (string)
        • displayName: required (string)
      • requiredSecondsAtSubmit: (number)
      • timeSpentSecondsAtSubmit: (number)
      • updatedAt: required (datetime)
    • user: required (user)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • actions: required (actions)
      • submit: (submit)
        • self: required (string)
      • approve: (approve)
        • self: required (string)
      • reject: (reject)
        • self: required (string)
      • reopen: (reopen)
        • self: required (string)
    • worklogs: required (worklogs)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/waiting",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2016-12-01&to=2016-12-31",
      "period": {
        "from": "2016-12-01",
        "to": "2016-12-31"
      },
      "requiredSeconds": 633600,
      "timeSpentSeconds": 633600,
      "status": {
        "key": "IN_REVIEW",
        "actor": {
          "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
          "accountId": "1111aaaa2222bbbb3333cccc",
          "displayName": "John Brown"
        },
        "requiredSecondsAtSubmit": 633600,
        "timeSpentSecondsAtSubmit": 633600,
        "updatedAt": "2017-02-23T15:07:00Z"
      },
      "user": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "reviewer": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "actions": {
        "approve": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/approve?from=2016-12-01&to=2016-12-31"
        },
        "reject": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reject?from=2016-12-01&to=2016-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2016-12-01&to=2016-12-31"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/1111aaaa2222bbbb3333cccc?from=2016-12-01&to=2016-12-31",
      "period": {
        "from": "2016-12-01",
        "to": "2016-12-31"
      },
      "requiredSeconds": 633600,
      "timeSpentSeconds": 633600,
      "status": {
        "key": "IN_REVIEW",
        "actor": {
          "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
          "accountId": "1111aaaa2222bbbb3333cccc",
          "displayName": "John Brown"
        },
        "requiredSecondsAtSubmit": 633600,
        "timeSpentSecondsAtSubmit": 633600,
        "updatedAt": "2017-02-23T15:07:00Z"
      },
      "user": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "reviewer": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
        "accountId": "1111aaaa2222bbbb3333cccc",
        "displayName": "John Brown"
      },
      "actions": {
        "approve": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/1111aaaa2222bbbb3333cccc/approve?from=2016-12-01&to=2016-12-31"
        },
        "reject": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/1111aaaa2222bbbb3333cccc/reject?from=2016-12-01&to=2016-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/core/3/worklogs/user/1111aaaa2222bbbb3333cccc?from=2016-12-01&to=2016-12-31"
      }
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve the current approval for a given period

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

HTTP status code 200

The Timesheet approval

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • period: required (period)
    • from: required (date-only)
    • to: required (date-only)
  • requiredSeconds: required (number)
  • timeSpentSeconds: required (number)
  • status: required (status)
    • key: required (one of OPEN, IN_REVIEW, APPROVED)
    • comment: (string)
    • actor: (actor)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • actions: required (actions)
    • submit: (submit)
      • self: required (string)
    • approve: (approve)
      • self: required (string)
    • reject: (reject)
      • self: required (string)
    • reopen: (reopen)
      • self: required (string)
  • worklogs: required (worklogs)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
  "period": {
    "from": "2017-12-01",
    "to": "2017-12-31"
  },
  "requiredSeconds": 604800,
  "timeSpentSeconds": 604800,
  "status": {
    "key": "APPROVED",
    "comment": "Approved! Great job!!",
    "actor": {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
      "accountId": "1111aaaa2222bbbb3333cccc",
      "displayName": "John Brown"
    },
    "requiredSecondsAtSubmit": 604800,
    "timeSpentSecondsAtSubmit": 604800,
    "updatedAt": "2017-02-23T15:07:00Z"
  },
  "user": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "actions": {
    "reopen": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reopen?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
  }
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Get Reviewers for a user

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

HTTP status code 200

Users with approve timesheet permission in teams where the user is a member

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of User)

    Items: User

    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/1111aaaa2222bbbb3333cccc/reviewers",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
      "accountId": "1111aaaa2222bbbb3333cccc",
      "displayName": "John Brown"
    },
    {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
      "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
      "displayName": "Erica Jefferson"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Approve Timesheet

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Starting date of the period

  • to: (date-only)

    Ending date of the period (inclusive)

Body

Media type: application/json

Type: object

Properties
  • comment: (string)

Example:

{
  "comment": "Approved! Great job!!"
}

HTTP status code 200

The submitted timesheet

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • period: required (period)
    • from: required (date-only)
    • to: required (date-only)
  • requiredSeconds: required (number)
  • timeSpentSeconds: required (number)
  • status: required (status)
    • key: required (one of OPEN, IN_REVIEW, APPROVED)
    • comment: (string)
    • actor: (actor)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • actions: required (actions)
    • submit: (submit)
      • self: required (string)
    • approve: (approve)
      • self: required (string)
    • reject: (reject)
      • self: required (string)
    • reopen: (reopen)
      • self: required (string)
  • worklogs: required (worklogs)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
  "period": {
    "from": "2017-12-01",
    "to": "2017-12-31"
  },
  "requiredSeconds": 604800,
  "timeSpentSeconds": 604800,
  "status": {
    "key": "APPROVED",
    "comment": "Approved! Great job!!",
    "actor": {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
      "accountId": "1111aaaa2222bbbb3333cccc",
      "displayName": "John Brown"
    },
    "requiredSecondsAtSubmit": 604800,
    "timeSpentSecondsAtSubmit": 604800,
    "updatedAt": "2017-02-23T15:07:00Z"
  },
  "user": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "actions": {
    "reopen": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reopen?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
  }
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Reject Timesheet

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Starting date of the period

  • to: (date-only)

    Ending date of the period (inclusive)

Body

Media type: application/json

Type: object

Properties
  • comment: (string)

Example:

{
  "comment": "Timesheet was rejected because you haven't fulfilled your hours, Erica"
}

HTTP status code 200

The rejected timesheet

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • period: required (period)
    • from: required (date-only)
    • to: required (date-only)
  • requiredSeconds: required (number)
  • timeSpentSeconds: required (number)
  • status: required (status)
    • key: required (one of OPEN, IN_REVIEW, APPROVED)
    • comment: (string)
    • actor: (actor)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • actions: required (actions)
    • submit: (submit)
      • self: required (string)
    • approve: (approve)
      • self: required (string)
    • reject: (reject)
      • self: required (string)
    • reopen: (reopen)
      • self: required (string)
  • worklogs: required (worklogs)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
  "period": {
    "from": "2017-12-01",
    "to": "2017-12-31"
  },
  "requiredSeconds": 604800,
  "timeSpentSeconds": 576000,
  "status": {
    "key": "OPEN",
    "comment": "Timesheet was rejected because you haven't fulfilled your hours, Erica",
    "actor": {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
      "accountId": "1111aaaa2222bbbb3333cccc",
      "displayName": "John Brown"
    },
    "requiredSecondsAtSubmit": 604800,
    "timeSpentSecondsAtSubmit": 576000,
    "updatedAt": "2017-02-23T15:07:00Z"
  },
  "user": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
  }
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Re-open Timesheet

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Starting date of the period

  • to: (date-only)

    Ending date of the period (inclusive)

Body

Media type: application/json

Type: object

Properties
  • comment: (string)

Example:

{
  "comment": "Timesheet was reopened so you can fix your timesheet, Erica"
}

HTTP status code 200

The reopened timesheet

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • period: required (period)
    • from: required (date-only)
    • to: required (date-only)
  • requiredSeconds: required (number)
  • timeSpentSeconds: required (number)
  • status: required (status)
    • key: required (one of OPEN, IN_REVIEW, APPROVED)
    • comment: (string)
    • actor: (actor)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • actions: required (actions)
    • submit: (submit)
      • self: required (string)
    • approve: (approve)
      • self: required (string)
    • reject: (reject)
      • self: required (string)
    • reopen: (reopen)
      • self: required (string)
  • worklogs: required (worklogs)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
  "period": {
    "from": "2017-12-01",
    "to": "2017-12-31"
  },
  "requiredSeconds": 604800,
  "timeSpentSeconds": 576000,
  "status": {
    "key": "OPEN",
    "comment": "Timesheet was reopened so you can fix your timesheet, Erica",
    "actor": {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
      "accountId": "1111aaaa2222bbbb3333cccc",
      "displayName": "John Brown"
    },
    "requiredSecondsAtSubmit": 604800,
    "timeSpentSecondsAtSubmit": 576000,
    "updatedAt": "2017-02-23T15:07:00Z"
  },
  "user": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
  }
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Submit Timesheet for approvals

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Starting date of the period

  • to: (date-only)

    Ending date of the period (inclusive)

Body

Media type: application/json

Type: object

Properties
  • comment: (string)
  • reviewerAccountId: required (string)

Example:

{
  "comment": "Please review my timesheet, John",
  "reviewerAccountId": "1111aaaa2222bbbb3333cccc"
}

HTTP status code 200

The submitted timesheet

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • period: required (period)
    • from: required (date-only)
    • to: required (date-only)
  • requiredSeconds: required (number)
  • timeSpentSeconds: required (number)
  • status: required (status)
    • key: required (one of OPEN, IN_REVIEW, APPROVED)
    • comment: (string)
    • actor: (actor)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • actions: required (actions)
    • submit: (submit)
      • self: required (string)
    • approve: (approve)
      • self: required (string)
    • reject: (reject)
      • self: required (string)
    • reopen: (reopen)
      • self: required (string)
  • worklogs: required (worklogs)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
  "period": {
    "from": "2017-12-01",
    "to": "2017-12-31"
  },
  "requiredSeconds": 604800,
  "timeSpentSeconds": 604800,
  "status": {
    "key": "IN_REVIEW",
    "comment": "Please review my timesheet, John",
    "actor": {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
      "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
      "displayName": "Erica Jefferson"
    },
    "requiredSecondsAtSubmit": 604800,
    "timeSpentSecondsAtSubmit": 604800,
    "updatedAt": "2017-02-23T15:07:00Z"
  },
  "user": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
    "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
  }
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve the current approval for a team in a given period

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • teamId: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

HTTP status code 200

The Timesheet approval

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Timesheet Approval)

    Items: Timesheet Approval

    • self: required (string)
    • period: required (period)
      • from: required (date-only)
      • to: required (date-only)
    • requiredSeconds: required (number)
    • timeSpentSeconds: required (number)
    • status: required (status)
      • key: required (one of OPEN, IN_REVIEW, APPROVED)
      • comment: (string)
      • actor: (actor)
        • self: required (string)
        • accountId: required (string)
        • displayName: required (string)
      • requiredSecondsAtSubmit: (number)
      • timeSpentSecondsAtSubmit: (number)
      • updatedAt: required (datetime)
    • user: required (user)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • actions: required (actions)
      • submit: (submit)
        • self: required (string)
      • approve: (approve)
        • self: required (string)
      • reject: (reject)
        • self: required (string)
      • reopen: (reopen)
        • self: required (string)
    • worklogs: required (worklogs)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/core/3/timesheet-approvals/team/1?from=2017-12-01&to=2017-12-31",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31",
      "period": {
        "from": "2017-12-01",
        "to": "2017-12-31"
      },
      "requiredSeconds": 604800,
      "timeSpentSeconds": 360000,
      "status": {
        "key": "OPEN",
        "comment": "Timesheet was rejected because you haven't fulfilled your hours, Erica",
        "actor": {
          "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
          "accountId": "1111aaaa2222bbbb3333cccc",
          "displayName": "John Brown"
        },
        "requiredSecondsAtSubmit": 604800,
        "timeSpentSecondsAtSubmit": 0,
        "updatedAt": "2018-01-03T15:07:00Z"
      },
      "user": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=123456:01234567-89ab-cdef-0123-456789abcdef",
        "accountId": "123456:01234567-89ab-cdef-0123-456789abcdef",
        "displayName": "Erica Jefferson"
      },
      "actions": {
        "submit": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/123456:01234567-89ab-cdef-0123-456789abcdef/submit?from=2017-12-01&to=2017-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/core/3/worklogs/user/123456:01234567-89ab-cdef-0123-456789abcdef?from=2017-12-01&to=2017-12-31"
      }
    },
    {
      "self": "https://api.tempo.io/core/3/timesheet-approvals/user/aabbccddeeff001122334455?from=2017-12-01&to=2017-12-31",
      "period": {
        "from": "2017-12-01",
        "to": "2017-12-31"
      },
      "requiredSeconds": 604800,
      "timeSpentSeconds": 604800,
      "status": {
        "key": "APPROVED",
        "comment": "Approved! Great job!!",
        "actor": {
          "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
          "accountId": "1111aaaa2222bbbb3333cccc",
          "displayName": "John Brown"
        },
        "requiredSecondsAtSubmit": 604800,
        "timeSpentSecondsAtSubmit": 604800,
        "updatedAt": "2018-01-03T15:07:00Z"
      },
      "user": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=aabbccddeeff001122334455",
        "accountId": "aabbccddeeff001122334455",
        "displayName": "Judy Simpson"
      },
      "actions": {
        "reopen": {
          "self": "https://api.tempo.io/core/3/timesheet-approvals/user/aabbccddeeff001122334455/reopen?from=2017-12-01&to=2017-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/core/3/worklogs/user/aabbccddeeff001122334455?from=2017-12-01&to=2017-12-31"
      }
    }

  ]
}

HTTP status code 404

Team cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Team not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

User Schedule

get

Retrieve user-schedule of the logged-in user

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • from: required (date-only)

    Retrieve results starting with this date

  • to: required (date-only)

    Retrieve results up to and including this date

HTTP status code 200

List of day-schedules

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Day schedule)

    Items: Day schedule

    • date: required (date-only)
    • requiredSeconds: required (number)
    • type: required (one of WORKING_DAY, NON_WORKING_DAY, HOLIDAY, HOLIDAY_AND_NON_WORKING_DAY)
    • holiday: (holiday)
      • name: required (string)
      • description: (string)
      • durationSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/user-schedule?from=2017-12-23&to=2017-12-27",
  "metadata": {
    "count": 5
  },
  "results": [
    {
      "date": "2017-12-23",
      "requiredSeconds": 0,
      "type": "NON_WORKING_DAY"
    },
    {
      "date": "2017-12-24",
      "requiredSeconds": 0,
      "type": "HOLIDAY_AND_NON_WORKING_DAY",
      "holiday": {
        "name": "Christmas Eve",
        "description": "Twas the night before Christmas",
        "durationSeconds": 14400
      }
    },
    {
      "date": "2017-12-25",
      "requiredSeconds": 0,
      "type": "HOLIDAY",
      "holiday": {
        "name": "Christmas Day",
        "durationSeconds": 28800
      }
    },
    {
      "date": "2017-12-26",
      "requiredSeconds": 0,
      "type": "HOLIDAY",
      "holiday": {
        "name": "Boxing Day",
        "durationSeconds": 28800
      }
    },
    {
      "date": "2017-12-27",
      "requiredSeconds": 28800,
      "type": "WORKING_DAY"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Retrieve user-schedule of the given user

get

Retrieve user-schedule

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: required (date-only)

    Retrieve results starting with this date

  • to: required (date-only)

    Retrieve results up to and including this date

HTTP status code 200

List of day-schedules

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Day schedule)

    Items: Day schedule

    • date: required (date-only)
    • requiredSeconds: required (number)
    • type: required (one of WORKING_DAY, NON_WORKING_DAY, HOLIDAY, HOLIDAY_AND_NON_WORKING_DAY)
    • holiday: (holiday)
      • name: required (string)
      • description: (string)
      • durationSeconds: required (number)

Example:

{
  "self": "https://api.tempo.io/core/3/user-schedule/1111aaaa2222bbbb3333cccc?from=2017-12-23&to=2017-12-27",
  "metadata": {
    "count": 5
  },
  "results": [
    {
      "date": "2017-12-23",
      "requiredSeconds": 0,
      "type": "NON_WORKING_DAY"
    },
    {
      "date": "2017-12-24",
      "requiredSeconds": 0,
      "type": "HOLIDAY_AND_NON_WORKING_DAY",
      "holiday": {
        "name": "Christmas Eve",
        "description": "Twas the night before Christmas",
        "durationSeconds": 14400
      }
    },
    {
      "date": "2017-12-25",
      "requiredSeconds": 0,
      "type": "HOLIDAY",
      "holiday": {
        "name": "Christmas Day",
        "durationSeconds": 28800
      }
    },
    {
      "date": "2017-12-26",
      "requiredSeconds": 0,
      "type": "HOLIDAY",
      "holiday": {
        "name": "Boxing Day",
        "durationSeconds": 28800
      }
    },
    {
      "date": "2017-12-27",
      "requiredSeconds": 28800,
      "type": "WORKING_DAY"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Work Attributes

get

Retrieve all work attributes

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

HTTP status code 200

List of all work attributes

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Work Attribute)

    Items: Work Attribute

    • self: required (string)
    • key: required (string)
    • name: required (string)
    • type: required (one of CHECKBOX, INPUT_FIELD, INPUT_NUMERIC, STATIC_LIST)
    • required: required (boolean - default: false)
    • values: (array of )

Example:

{
  "self": "https://api.tempo.io/core/3/work-attributes",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/core/3/work-attributes/_COLOR_",
      "key": "_COLOR_",
      "name": "Color",
      "type": "STATIC_LIST",
      "required": false,
      "values": [
        "red",
        "green",
        "blue",
        "yellow",
        "pink"
      ]
    },
    {
      "self": "https://api.tempo.io/core/3/work-attributes/_EXTERNALREF_",
      "key": "_EXTERNALREF_",
      "name": "External Ref.",
      "type": "INPUT_FIELD",
      "required": true
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve an existing work attribute for the given key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

HTTP status code 200

Work attribute data of the given key

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • key: required (string)
  • name: required (string)
  • type: required (one of CHECKBOX, INPUT_FIELD, INPUT_NUMERIC, STATIC_LIST)
  • required: required (boolean - default: false)
  • values: (array of )

Example:

{
  "self": "https://api.tempo.io/core/3/work-attributes/_COLOR_",
  "key": "_COLOR_",
  "name": "Color",
  "type": "STATIC_LIST",
  "required": false,
  "values": [
    "red",
    "green",
    "blue",
    "yellow",
    "pink"
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Work attribute cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "A work attribute with key '_COLOR_' does not exist"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

Worklogs

/worklogs get post
get

Retrieve worklogs

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Query Parameters

  • issue: (array of string)

    Retrieve only worklogs for the given issues. Issues may be specified by either issue ids or issue keys.

  • project: (array of string)

    Retrieve only worklogs for the given projects. Projects may be specified by either project ids or project keys.

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs?from=2017-02-01&to=2017-02-28&offset=0&limit=50",
  "metadata": {
    "count": 18,
    "offset": 0,
    "limit": 50
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

post

Creates a new worklog

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

Body

Media type: application/json

Type: object

Properties
  • issueKey: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: (string)
  • authorAccountId: required (string)
  • attributes: (array of Work Attribute Value)

    Items: Work Attribute Value

    • key: required (string)
    • value: required (any)

Example:

{
  "issueKey": "DUM-1",
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system", // optional depending on setting in Tempo Admin
  "authorAccountId": "1111aaaa2222bbbb3333cccc",
  "remainingEstimateSeconds": 7200, // optional depending on setting in Tempo Admin
  "attributes": [
    {
      "key": "_EXTERNALREF_",
      "value": "EXT-32548"
    },
    {
      "key": "_COLOR_",
      "value": "green"
    }
  ]
}

HTTP status code 200

Worklog has been successfully created

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • tempoWorklogId: required (integer)
  • jiraWorklogId: (integer)
  • issue: required (issue)
    • self: required (string)
    • key: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: required (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • author: required (author)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • attributes: (attributes)
    • self: required (string)
    • values: required (array of Work Attribute Value)

      Items: Work Attribute Value

      • key: required (string)
      • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/12600",
  "tempoWorklogId": 126,
  "jiraWorklogId": 10100,
  "issue": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/issue/DUM-1",
    "key": "DUM-1"
  },
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system",
  "createdAt": "2017-02-06T16:41:41Z",
  "updatedAt": "2017-02-06T16:41:41Z",
  "author": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/core/3/worklogs/126/work-attribute-values",
    "values": [
      {
        "key": "_DELIVERED_",
        "value": true
      },
      {
        "key": "_EXTERNALREF_",
        "value": "EXT-44556"
      },
      {
        "key": "_COLOR_",
        "value": "red"
      }
    ]
  }
}

HTTP status code 400

Worklog cannot be created for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Issue not found"
    },
    {
      "message": "Date can not be empty"
    },
    {
      "message": "Invalid time duration entered"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

/worklogs/{worklogId} get put delete
get

Retrieve an existing worklog for the given id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • worklogId: required (string)

HTTP status code 200

Worklog data of the given id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • tempoWorklogId: required (integer)
  • jiraWorklogId: (integer)
  • issue: required (issue)
    • self: required (string)
    • key: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: required (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • author: required (author)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • attributes: (attributes)
    • self: required (string)
    • values: required (array of Work Attribute Value)

      Items: Work Attribute Value

      • key: required (string)
      • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/12600",
  "tempoWorklogId": 126,
  "jiraWorklogId": 10100,
  "issue": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/issue/DUM-1",
    "key": "DUM-1"
  },
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system",
  "createdAt": "2017-02-06T16:41:41Z",
  "updatedAt": "2017-02-06T16:41:41Z",
  "author": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/core/3/worklogs/126/work-attribute-values",
    "values": [
      {
        "key": "_DELIVERED_",
        "value": true
      },
      {
        "key": "_EXTERNALREF_",
        "value": "EXT-44556"
      },
      {
        "key": "_COLOR_",
        "value": "red"
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Worklog cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Worklog cannot be found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

put

Update an existing worklog

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • worklogId: required (string)

Body

Media type: application/json

Type: object

Properties
  • issueKey: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: (string)
  • authorAccountId: required (string)
  • attributes: (array of Work Attribute Value)

    Items: Work Attribute Value

    • key: required (string)
    • value: required (any)

Example:

{
  "issueKey": "DUM-1",
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system", // optional depending on setting in Tempo Admin
  "authorAccountId": "1111aaaa2222bbbb3333cccc",
  "remainingEstimateSeconds": 7200, // optional depending on setting in Tempo Admin
  "attributes": [
    {
      "key": "_EXTERNALREF_",
      "value": "EXT-32548"
    },
    {
      "key": "_COLOR_",
      "value": "green"
    }
  ]
}

HTTP status code 200

Worklog has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • tempoWorklogId: required (integer)
  • jiraWorklogId: (integer)
  • issue: required (issue)
    • self: required (string)
    • key: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: required (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • author: required (author)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • attributes: (attributes)
    • self: required (string)
    • values: required (array of Work Attribute Value)

      Items: Work Attribute Value

      • key: required (string)
      • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/12600",
  "tempoWorklogId": 126,
  "jiraWorklogId": 10100,
  "issue": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/issue/DUM-1",
    "key": "DUM-1"
  },
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system",
  "createdAt": "2017-02-06T16:41:41Z",
  "updatedAt": "2017-02-06T16:41:41Z",
  "author": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/core/3/worklogs/126/work-attribute-values",
    "values": [
      {
        "key": "_DELIVERED_",
        "value": true
      },
      {
        "key": "_EXTERNALREF_",
        "value": "EXT-44556"
      },
      {
        "key": "_COLOR_",
        "value": "red"
      }
    ]
  }
}

HTTP status code 400

Worklog cannot be updated for some reasons

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Issue not found"
    },
    {
      "message": "Date can not be empty"
    },
    {
      "message": "Invalid time duration entered"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Worklog cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Worklog cannot be found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

delete

Delete an existing worklog

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • worklogId: required (string)

HTTP status code 204

Worklog has been successfully deleted

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Worklog cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Worklog cannot be found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all work attribute values for the worklog

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • worklogId: required (string)

HTTP status code 200

List of all work attribute values

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
  • results: required (array of Work Attribute Value)

    Items: Work Attribute Value

    • key: required (string)
    • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/126/work-attribute-values",
  "metadata": {
    "count": 3
  },
  "results": [
    {
      "key": "_DELIVERED_",
      "value": true
    },
    {
      "key": "_EXTERNALREF_",
      "value": "EXT-44556"
    },
    {
      "key": "_COLOR_",
      "value": "red"
    }
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve a specific work attribute value for the worklog

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • worklogId: required (string)
  • key: required (string)

HTTP status code 200

Work attribute value data of the given key

Body

Media type: application/json

Type: object

Properties
  • key: required (string)
  • value: required (any)

Example:

{
  "key": "_COLOR_",
  "value": "red"
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Work attribute value cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Work attribute value cannot be found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve an existing worklog for the given JIRA worklog id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • jiraWorklogId: required (string)

HTTP status code 200

Worklog data of the given JIRA worklog id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • tempoWorklogId: required (integer)
  • jiraWorklogId: (integer)
  • issue: required (issue)
    • self: required (string)
    • key: required (string)
  • timeSpentSeconds: required (number)
  • startDate: required (date-only)
  • startTime: required (time-only)
  • description: required (string)
  • createdAt: required (datetime)
  • updatedAt: required (datetime)
  • author: required (author)
    • self: required (string)
    • accountId: required (string)
    • displayName: required (string)
  • attributes: (attributes)
    • self: required (string)
    • values: required (array of Work Attribute Value)

      Items: Work Attribute Value

      • key: required (string)
      • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/12600",
  "tempoWorklogId": 126,
  "jiraWorklogId": 10100,
  "issue": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/issue/DUM-1",
    "key": "DUM-1"
  },
  "timeSpentSeconds": 3600,
  "billableSeconds": 5200,
  "startDate": "2017-02-06",
  "startTime": "20:06:00",
  "description": "Investigating a problem with our external database system",
  "createdAt": "2017-02-06T16:41:41Z",
  "updatedAt": "2017-02-06T16:41:41Z",
  "author": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?accountId=1111aaaa2222bbbb3333cccc",
    "accountId": "1111aaaa2222bbbb3333cccc",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/core/3/worklogs/126/work-attribute-values",
    "values": [
      {
        "key": "_DELIVERED_",
        "value": true
      },
      {
        "key": "_EXTERNALREF_",
        "value": "EXT-44556"
      },
      {
        "key": "_COLOR_",
        "value": "red"
      }
    ]
  }
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Worklog cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Worklog cannot be found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve worklogs associated to the given JIRA filter id

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • jirafilterId: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs of the given JIRA filter id

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/jira/filter/10020?offset=0&limit=50",
  "metadata": {
    "count": 64,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/core/3/worklogs/jira/filter/10020?offset=50&limit=50"
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all worklogs associated to the given account key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountKey: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs associated to the account

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/account/ACC-1?offset=0&limit=50",
  "metadata": {
    "count": 51,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/core/3/worklogs/account/ACC-1?offset=50&limit=50"
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all worklogs associated to the given project key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • projectKey: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs associated to the project

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/project/PRJ-1",
  "metadata": {
    "count": 51,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/core/3/worklogs/project/PRJ-1?offset=50&limit=50"
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get
Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • teamId: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs associated to the team

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/team/42",
  "metadata": {
    "count": 0,
    "offset": 0,
    "limit": 50
  },
  "results": [
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all worklogs associated to the given user

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • accountId: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs associated to the user

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/user/john?offset=100&limit=50",
  "metadata": {
    "count": 250,
    "offset": 100,
    "limit": 50,
    "next": "https://api.tempo.io/core/3/worklogs/user/john?offset=150&limit=50",
    "previous": "https://api.tempo.io/core/3/worklogs/user/john?offset=50&limit=50"
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"

get

Retrieve all worklogs associated to the given issue key

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • key: required (string)

Query Parameters

  • from: (date-only)

    Retrieve results starting with this date

  • to: (date-only)

    Retrieve results up to and including this date

  • updatedFrom: (date-only)

    Retrieve results that have been updated from this date

  • offset?: (integer - default: 0)

    Skip over a number of elements by specifying an offset value for the query

  • limit?: (integer - default: 50 - maximum: 1000)

    Limit the number of elements on the response

HTTP status code 200

Worklogs associated to the issue

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (metadata)
    • count: required (integer)
    • offset: required (integer - default: 0)
    • limit: required (integer - default: 50 - maximum: 1000)
    • next: (string)
    • previous: (string)
  • results: required (array of Worklog)

    Items: Worklog

    • self: required (string)
    • tempoWorklogId: required (integer)
    • jiraWorklogId: (integer)
    • issue: required (issue)
      • self: required (string)
      • key: required (string)
    • timeSpentSeconds: required (number)
    • startDate: required (date-only)
    • startTime: required (time-only)
    • description: required (string)
    • createdAt: required (datetime)
    • updatedAt: required (datetime)
    • author: required (author)
      • self: required (string)
      • accountId: required (string)
      • displayName: required (string)
    • attributes: (attributes)
      • self: required (string)
      • values: required (array of Work Attribute Value)

        Items: Work Attribute Value

        • key: required (string)
        • value: required (any)

Example:

{
  "self": "https://api.tempo.io/core/3/worklogs/issue/PLAT-234",
  "metadata": {
    "count": 57,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/core/3/worklogs/issue/PLAT-234?offset=50&limit=50"
  },
  "results": [
    // skipped
  ]
}

HTTP status code 401

Client must be authenticated to access this resource.

HTTP status code 403

Authenticated user is missing permission to fulfill the request

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "The logged-in-user does not have required permission to view this data"
    }
  ]
}

HTTP status code 404

Worklog cannot be found in the system

Body

Media type: application/json

Type: object

Properties
  • errors: required (array of items)

    Items: items

    • message: required (string)

Example:

{
  "errors": [
    {
      "message": "Issue not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

    Used to send a valid OAuth 2 token : "Authorization: Bearer ${token}"