REST API documentation version 2

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

About the Tempo REST API

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, where you can get support from our internal experts and share best practices with other developers building with Tempo at: developer.tempo.io

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

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>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/2/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>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 > 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/2/worklogs?from=2018-01-28&to=2018-02-03"

How to retrieve an 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}

  • version: required (2)

Accounts

Resources dedicated to accounts

/accounts post get
post

Creates a new account

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)
  • contactUsername: (string)
  • global: (boolean - default: false)
  • leadUsername: required (string)
  • name: required (string)
  • monthlyBudget: (number)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • customerKey: (string)
  • categoryKey: (string)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "leadUsername": "erica",
  "contactUsername": "johnb",
  "categoryKey": "dev1",
  "customerKey": "cloudbay1"
}

HTTP status code 200

Account has been successfully created

Body

Media type: application/json

Type: object

Properties
  • category: (category)
    • self: required (string)
    • key: required (string)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • key: required (string)
  • global: required (boolean - default: false)
  • name: required (string)
  • monthlyBudget: (integer)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • lead: required (lead)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • username: (string)
    • displayName: required (string)
  • self: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "category": {
    "self": "https://api.tempo.io/2/account-categories/development",
    "key": "development",
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/2/customers/cloudbay",
    "key": "cloudbay",
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/2/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

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 (Pagination)
    • count: required (integer)
  • results: required (array of Account)

    Items: Account

    • category: (category)
      • self: required (string)
      • key: required (string)
      • name: required (string)
      • type: required (type)
        • name: required (string)
    • key: required (string)
    • global: required (boolean - default: false)
    • name: required (string)
    • monthlyBudget: (integer)
    • customer: (customer)
      • self: required (string)
      • key: required (string)
      • name: required (string)
    • status: required (one of OPEN, CLOSED, ARCHIVED)
    • lead: required (lead)
      • self: required (string)
      • username: required (string)
      • displayName: required (string)
    • contact: (contact)
      • self: (string)
      • username: (string)
      • displayName: required (string)
    • self: required (string)
    • links: required (links)
      • self: required (string)

Examples:

Retrieve all existing accounts:

{
  "self": "https://api.tempo.io/2/accounts",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "category": {
        "self": "https://api.tempo.io/2/account-categories/300",
        "key": "300",
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/2/customers/100201",
        "key": "100201",
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT/links"
      }
    },
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "name": "Cloudbay: Capex",
      "status": "CLOSED",
      "global": false,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "links": {
        "self": "https://api.tempo.io/2/accounts/CLOUDBAY_CAPEX/links"
      }
    }
  ]
}

Retrieve accounts for "OPEN" status:

{
  "self": "https://api.tempo.io/2/accounts?status=OPEN",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "category": {
        "self": "https://api.tempo.io/2/account-categories/300",
        "key": "300",
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/2/customers/100201",
        "key": "100201",
        "name": "CloudBay"
      }
    },
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "name": "Cloudbay: Capex",
      "status": "OPEN",
      "global": false,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "category": {
        "self": "https://api.tempo.io/2/account-categories/300",
        "key": "300",
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/2/customers/100201",
        "key": "100201",
        "name": "CloudBay"
      }
    }
  ]
}

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

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
  • category: (category)
    • self: required (string)
    • key: required (string)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • key: required (string)
  • global: required (boolean - default: false)
  • name: required (string)
  • monthlyBudget: (integer)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • lead: required (lead)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • username: (string)
    • displayName: required (string)
  • self: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "category": {
    "self": "https://api.tempo.io/2/account-categories/development",
    "key": "development",
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/2/customers/cloudbay",
    "key": "cloudbay",
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/2/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

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)
  • contactUsername: (string)
  • global: (boolean - default: false)
  • leadUsername: required (string)
  • name: required (string)
  • monthlyBudget: (number)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • customerKey: (string)
  • categoryKey: (string)

Example:

{
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "leadUsername": "erica",
  "contactUsername": "johnb",
  "categoryKey": "dev1",
  "customerKey": "cloudbay1"
}

HTTP status code 200

Account has been successfully updated

Body

Media type: application/json

Type: object

Properties
  • category: (category)
    • self: required (string)
    • key: required (string)
    • name: required (string)
    • type: required (type)
      • name: required (string)
  • key: required (string)
  • global: required (boolean - default: false)
  • name: required (string)
  • monthlyBudget: (integer)
  • customer: (customer)
    • self: required (string)
    • key: required (string)
    • name: required (string)
  • status: required (one of OPEN, CLOSED, ARCHIVED)
  • lead: required (lead)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • contact: (contact)
    • self: (string)
    • username: (string)
    • displayName: required (string)
  • self: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "name": "Cloudbay: Development",
  "status": "OPEN",
  "global": false,
  "monthlyBudget": 600,
  "lead": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "contact": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "category": {
    "self": "https://api.tempo.io/2/account-categories/development",
    "key": "development",
    "name": "Development",
    "type": {
      "name": "BILLABLE"
    }
  },
  "customer": {
    "self": "https://api.tempo.io/2/customers/cloudbay",
    "key": "cloudbay",
    "name": "CloudBay"
  },
  "links": {
    "self": "https://api.tempo.io/2/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

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

Body

Media type: application/json

Type: object

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

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

Resources dedicated to 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)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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.

HTTP status code 200

List of all categories

Body

Media type: application/json

Type: object

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

    Items: Category

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

Example:

{
  "self": "https://api.tempo.io/2/account-categories",
  "metadata": {
    "count": 1
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/account-categories/300",
      "key": "300",
      "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

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)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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)
  • name: required (string)
  • type: required (type)
    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/account-categories/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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

Body

Media type: application/json

Type: object

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

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

Resources dedicated to types of an account category

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 (Pagination)
    • count: required (integer)
  • results: required (array of CategoryType)

    Items: CategoryType

    • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/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

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

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

Resources dedicated to account links

Customers

Resources dedicated to 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)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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.

HTTP status code 200

List of all customers

Body

Media type: application/json

Type: object

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

    Items: Customer

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

Example:

{
  "self": "https://api.tempo.io/2/customers",
  "metadata": {
    "count": 1
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/customers/GreenCloud",
      "key": "GreenCloud",
      "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

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)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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)
  • name: required (string)

Example:

{
  "self": "https://api.tempo.io/2/customers/CLOUDBAY_DEVELOPMENT",
  "key": "CLOUDBAY_DEVELOPMENT",
  "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

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

Body

Media type: application/json

Type: object

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

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 (Pagination)
    • count: required (integer)
  • results: required (array of Account)

    Items: Account

    • category: (category)
      • self: required (string)
      • key: required (string)
      • name: required (string)
      • type: required (type)
        • name: required (string)
    • key: required (string)
    • global: required (boolean - default: false)
    • name: required (string)
    • monthlyBudget: (integer)
    • customer: (customer)
      • self: required (string)
      • key: required (string)
      • name: required (string)
    • status: required (one of OPEN, CLOSED, ARCHIVED)
    • lead: required (lead)
      • self: required (string)
      • username: required (string)
      • displayName: required (string)
    • contact: (contact)
      • self: (string)
      • username: (string)
      • displayName: required (string)
    • self: required (string)
    • links: required (links)
      • self: required (string)

Example:

{
  "self": "https://api.tempo.io/2/customers/CLOUDBAY/accounts",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT",
      "key": "CLOUDBAY_DEVELOPMENT",
      "name": "Cloudbay: Development",
      "status": "OPEN",
      "global": false,
      "monthlyBudget": 600,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "contact": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "category": {
        "self": "https://api.tempo.io/2/account-categories/300",
        "key": "300",
        "name": "Development",
        "type": {
          "name": "BILLABLE"
        }
      },
      "customer": {
        "self": "https://api.tempo.io/2/customers/CLOUDBAY",
        "key": "CLOUDBAY",
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/2/accounts/CLOUDBAY_DEVELOPMENT/links"
      }
    },
    {
      "self": "https://api.tempo.io/2/accounts/CLOUDBAY_CAPEX",
      "key": "CLOUDBAY_CAPEX",
      "name": "Cloudbay: Capex",
      "status": "ARCHIVED",
      "global": true,
      "lead": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "customer": {
        "self": "https://api.tempo.io/2/customers/CLOUDBAY",
        "key": "CLOUDBAY",
        "name": "CloudBay"
      },
      "links": {
        "self": "https://api.tempo.io/2/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

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

Resource dedicated to 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
  • projectKey: (string)
  • description: (string)
  • includeNonWorkingDays: (boolean)
  • plannedPerDaySeconds: required (number)
  • rule: (one of NEVER, WEEKLY, BI_WEEKLY, MONTHLY)
  • username: required (string)
  • startDate: required (date-only)
  • recurrenceEndDate: (date-only)
  • endDate: required (date-only)
  • issueKey: (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",
  "username": "johnb",
  "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 (PlanAssignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (PlanItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (PlanRecurrence)
    • 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/2/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?username=johnb",
    "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/2/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 (PlanAssignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (PlanItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (PlanRecurrence)
    • 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/2/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?username=johnb",
    "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/2/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

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
  • projectKey: (string)
  • description: (string)
  • includeNonWorkingDays: (boolean)
  • plannedPerDaySeconds: required (number)
  • rule: (one of NEVER, WEEKLY, BI_WEEKLY, MONTHLY)
  • username: required (string)
  • startDate: required (date-only)
  • recurrenceEndDate: (date-only)
  • endDate: required (date-only)
  • issueKey: (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",
  "username": "johnb",
  "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 (PlanAssignee)
    • self: required (string)
    • type: required (one of USER, TEAM)
  • planItem: required (PlanItem)
    • self: required (string)
    • type: required (one of ISSUE, PROJECT)
  • recurrence: required (PlanRecurrence)
    • 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/2/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?username=johnb",
    "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/2/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

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

Body

Media type: application/json

Type: object

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

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

  • username: 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 plans

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (Pagination)
    • 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 (PlanAssignee)
      • self: required (string)
      • type: required (one of USER, TEAM)
    • planItem: required (PlanItem)
      • self: required (string)
      • type: required (one of ISSUE, PROJECT)
    • recurrence: required (PlanRecurrence)
      • 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/2/plans/user/johnb?from=2017-11-01&to=2017-12-31",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/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?username=johnb",
        "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/2/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/2/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?username=johnb",
        "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/2/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

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

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

Programs

Resources dedicated to 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 (Pagination)
    • count: required (integer)
  • results: required (array of Program)

    Items: Program

    • self: required (string)
    • id: required (integer)
    • name: required (string)
    • manager: (User)
      • self: required (string)
      • username: required (string)
      • displayName: required (string)
    • teams: required (TeamsRef)
      • 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/2/programs",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/programs/1",
      "id": 1,
      "name": "P1",
      "manager": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "teams": {
        "self": "https://api.tempo.io/2/programs/1/teams",
        "values": [
          {
            "self": "https://api.tempo.io/2/teams/101",
            "id": 101,
            "name": "Developer"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/2/programs/2",
      "id": 2,
      "name": "P2",
      "manager": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "teams": {
        "self": "https://api.tempo.io/2/programs/2/teams",
        "values": [
          {
            "self": "https://api.tempo.io/2/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

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)
  • managerUsername: (string)
  • teamIds: (array of integer)

Example:

{
  "name": "P1",
  "managerUsername": "johnb",
  "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: (User)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • teams: required (TeamsRef)
    • 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/2/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/2/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/2/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

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: (User)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • teams: required (TeamsRef)
    • 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/2/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/2/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/2/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

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)
  • managerUsername: (string)
  • teamIds: (array of integer)

Example:

{
  "name": "P1",
  "managerUsername": "johnb",
  "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: (User)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • teams: required (TeamsRef)
    • 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/2/programs/1",
  "id": 1,
  "name": "P1",
  "manager": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "teams": {
    "self": "https://api.tempo.io/2/programs/1/teams",
    "values": [
      {
        "self": "https://api.tempo.io/2/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

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

Body

Media type: application/json

Type: object

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

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 (Pagination)
    • 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/2/programs/3/teams",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/teams/12",
      "id": 12,
      "name": "Design"
    },
    {
      "self": "https://api.tempo.io/2/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

Resources dedicated to roles related

/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 (Pagination)
    • 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/2/roles",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/roles/1",
      "id": 1,
      "name": "Developer",
      "default": true
    },
    {
      "self": "https://api.tempo.io/2/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

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/2/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

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/2/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

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/2/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

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

Body

Media type: application/json

Type: object

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

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

Resources dedicated to 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)
  • leadUsername: (string)
  • programId: (integer)

Example:

{
  "name": "Team-A",
  "summary": "This is the A team",
  "leadUsername": "johnb",
  "programId": 42
}

HTTP status code 200

Team has been successfully created

Body

Media type: application/json

Type: object

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

Example:

{
  "self": "https://api.tempo.io/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/2/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/2/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/2/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/2/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

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 (Pagination)
    • count: required (integer)
  • results: required (array of Team)

    Items: Team

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

Example:

{
  "self": "https://api.tempo.io/2/teams",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/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?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "program": {
        "self": "https://api.tempo.io/2/programs/42",
        "id": 42,
        "name": "Devs"
      },
      "links": {
        "self": "https://api.tempo.io/2/teams/1/links"
      },
      "members": {
        "self": "https://api.tempo.io/2/teams/1/members"
      },
      "permissions": {
        "self": "https://api.tempo.io/2/teams/1/permissions"
      }
    },
    {
      "self": "https://api.tempo.io/2/teams/2",
      "id": 2,
      "name": "Team-B",
      "links": {
        "self": "https://api.tempo.io/2/teams/2/links"
      },
      "members": {
        "self": "https://api.tempo.io/2/teams/2/members"
      },
      "permissions": {
        "self": "https://api.tempo.io/2/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

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
  • permissions: required (permissions)
    • self: required (string)
  • name: required (string)
  • summary: (string)
  • id: required (integer)
  • lead: (lead)
    • self: required (string)
    • username: required (string)
    • displayName: required (string)
  • members: required (members)
    • self: required (string)
  • program: (program)
    • self: required (string)
    • id: required (integer)
    • name: required (string)
  • self: required (string)
  • links: required (links)
    • self: required (string)

Example:

{
  "self": "https://api.tempo.io/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/2/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/2/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/2/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/2/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

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)
  • leadUsername: (string)
  • programId: (integer)

Example:

{
  "name": "Team-A",
  "summary": "This is the A team",
  "leadUsername": "johnb",
  "programId": 42
}

HTTP status code 200

Team has been successfully updated

Body

Media type: application/json

Type: object

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

Example:

{
  "self": "https://api.tempo.io/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "program": {
    "self": "https://api.tempo.io/2/programs/42",
    "id": 42,
    "name": "Dev"
  },
  "links": {
    "self": "https://api.tempo.io/2/teams/1/links"
  },
  "members": {
    "self": "https://api.tempo.io/2/teams/1/members"
  },
  "permissions": {
    "self": "https://api.tempo.io/2/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

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

Body

Media type: application/json

Type: object

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

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 (Pagination)
    • 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)
      • username: 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)
        • team: (team)
          • self: required (string)
          • id: required (integer)
          • name: required (string)
        • member: (member)
          • self: required (string)
          • username: required (string)
          • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/teams/1/members",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/teams/1/members/johnb",
      "team": {
        "self": "https://api.tempo.io/2/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "memberships": {
        "self": "https://api.tempo.io/2/teams/1/members/johnb/memberships",
        "active": {
          "self": "https://api.tempo.io/2/team-memberships/3",
          "id": 3,
          "commitmentPercent": 100,
          "from": null,
          "to": null,
          "role": {
            "self": "https://api.tempo.io/2/roles/1",
            "id": 1,
            "name": "Tester"
          }
        }
      }
    },
    {
      "self": "https://api.tempo.io/2/teams/1/members/erica2",
      "team": {
        "self": "https://api.tempo.io/2/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica2",
        "username": "erica2",
        "displayName": "Erica Jefferson"
      },
      "memberships": {
        "self": "https://api.tempo.io/2/teams/1/members/erica2/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

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)
  • username: 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)
    • username: 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)
      • team: (team)
        • self: required (string)
        • id: required (integer)
        • name: required (string)
      • member: (member)
        • self: required (string)
        • username: required (string)
        • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/teams/1/members/johnb",
  "team": {
    "self": "https://api.tempo.io/2/teams/1"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "memberships": {
    "self": "https://api.tempo.io/2/teams/1/members/johnb/memberships",
    "active": {
      "self": "https://api.tempo.io/2/team-memberships/1",
      "id": 1,
      "commitmentPercent": 100,
      "from": null,
      "to": null,
      "role": {
        "self": "https://api.tempo.io/2/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

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)
  • username: 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 (Pagination)
    • 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/2/teams/1/members/johnb/memberships",
  "metadata": {
    "count": 3
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/team-memberships/1",
      "id": 1,
      "commitmentPercent": 100,
      "from": "2016-01-01",
      "to": "2016-12-31",
      "role": {
        "self": "https://api.tempo.io/2/roles/1",
        "id": 1,
        "name": "Tester"
      },
      "team": {
        "self": "https://api.tempo.io/2/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb"
      }
    },
    {
      "self": "https://api.tempo.io/2/team-memberships/2",
      "id": 2,
      "commitmentPercent": 50,
      "from": "2017-06-01",
      "to": "2017-12-31",
      "role": {
        "self": "https://api.tempo.io/2/roles/2",
        "id": 2,
        "name": "Developer"
      },
      "team": {
        "self": "https://api.tempo.io/2/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb"
      }
    },
    {
      "self": "https://api.tempo.io/2/team-memberships/3",
      "id": 3,
      "commitmentPercent": 100,
      "from": "2018-01-01",
      "to": "2018-12-31",
      "role": {
        "self": "https://api.tempo.io/2/roles/1",
        "id": 1,
        "name": "Tester"
      },
      "team": {
        "self": "https://api.tempo.io/2/teams/1"
      },
      "member": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb"
      }
    }
  ]
}

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

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 (Pagination)
    • 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)
        • username: required (string)
        • displayName: required (string)

Example:

14:

{
  "self": "https://api.tempo.io/2/teams/14/permissions",
  "metadata": {
    "count": 3
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team",
      "key": "tempo.teams.browse.team",
      "users": {
        "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica2",
            "username": "erica2",
            "displayName": "Erica Jefferson"
          },
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
            "username": "johnb",
            "displayName": "John Brown"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/2/teams/14/permissions/tempo.timesheets.approve.timesheet",
      "key": "tempo.timesheets.approve.timesheet",
      "users": {
        "self": "https://api.tempo.io/2/teams/14/permissions/tempo.timesheets.approve.timesheet/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
            "username": "johnb",
            "displayName": "John Brown"
          }
        ]
      }
    },
    {
      "self": "https://api.tempo.io/2/teams/14/permissions/tempo.planner.plan.permission",
      "key": "tempo.planner.plan.permission",
      "users": {
        "self": "https://api.tempo.io/2/teams/14/permissions/tempo.planner.plan.permission/users",
        "values": [
          {
            "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
            "username": "johnb",
            "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

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)
      • username: required (string)
      • displayName: required (string)

Example:

tempo.teams.browse.team:

{
  "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team",
  "key": "tempo.teams.browse.team",
  "users": {
    "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team/users",
    "values": [
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica2",
        "username": "erica2",
        "displayName": "Erica Jefferson"
      },
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "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

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

put

Grant permission to the given list of users

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

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

Body

Media type: application/json

Type: object

Properties
  • usernames: required (array of )

Example:

{
  "usernames": [
    "johnb",
    "erica2",
    "larsp"
  ]
}

HTTP status code 200

Grants successful

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)
      • username: required (string)
      • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team",
  "key": "tempo.teams.browse.team",
  "users": {
    "self": "https://api.tempo.io/2/teams/14/permissions/tempo.teams.browse.team/users",
    "values": [
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica2",
        "username": "erica2",
        "displayName": "Erica Jefferson"
      },
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=larsp",
        "username": "larsp",
        "displayName": "Lars Petersen"
      }
    ]
  }
}

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

HTTP status code 404

Team, permission or user 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": "User not found"
    }
  ]
}

Secured by OAuth 2.0

Headers

  • Authorization: required (string)

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

Resources dedicated to team links

/team-links/{id} get delete

Team - Memberships

Resources dedicated to memberships related to team

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)
  • username: required (string)
  • roleId: (integer - default: Default team role)
  • commitmentPercent: (integer - default: 100)
  • from: (date-only)
  • to: (date-only)

Example:

{
  "teamId": 1,
  "username": "johnb",
  "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)
    • username: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/2/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/2/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "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

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)
    • username: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/2/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/2/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "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

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)
    • username: required (string)
    • displayName: required (string)

Example:

{
  "self": "https://api.tempo.io/2/team-memberships/2",
  "id": 2,
  "commitmentPercent": 50,
  "from": "2017-06-01",
  "to": "2017-12-31",
  "role": {
    "self": "https://api.tempo.io/2/roles/2",
    "id": 2,
    "name": "Developer"
  },
  "team": {
    "self": "https://api.tempo.io/2/teams/1",
    "id": 1,
    "name": "Team-A"
  },
  "member": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "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

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

Body

Media type: application/json

Type: object

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

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

Timesheet Approvals

Resources dedicated to 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 (Pagination)
    • 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)
        • username: required (string)
        • displayName: required (string)
      • requiredSecondsAtSubmit: (number)
      • timeSpentSecondsAtSubmit: (number)
      • updatedAt: required (datetime)
    • user: required (user)
      • self: required (string)
      • username: 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/2/timesheet-approvals/waiting",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica?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?username=johnb",
          "username": "johnb",
          "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?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "reviewer": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "actions": {
        "approve": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/player3/approve?from=2016-12-01&to=2016-12-31"
        },
        "reject": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/player3/reject?from=2016-12-01&to=2016-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/2/worklogs/user/player3?from=2016-12-01&to=2016-12-31"
      }
    },
    {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/johnb?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?username=johnb",
          "username": "johnb",
          "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?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "reviewer": {
        "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
        "username": "johnb",
        "displayName": "John Brown"
      },
      "actions": {
        "approve": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/player1/approve?from=2016-12-01&to=2016-12-31"
        },
        "reject": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/player1/reject?from=2016-12-01&to=2016-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/2/worklogs/user/player1?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

  • username: 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)
      • username: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • username: 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/2/timesheet-approvals/user/erica?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?username=johnb",
      "username": "johnb",
      "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?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "actions": {
    "reopen": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/reopen?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/2/worklogs/user/erica?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

  • username: 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 (Pagination)
    • count: required (integer)
  • results: required (array of User)

    Items: User

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

Example:

{
  "self": "https://api.tempo.io/2/timesheet-approvals/user/johnb/reviewers",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
      "username": "johnb",
      "displayName": "John Brown"
    },
    {
      "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=erica",
      "username": "erica",
      "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

  • username: 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)
      • username: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • username: 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/2/timesheet-approvals/user/erica?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?username=johnb",
      "username": "johnb",
      "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?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "actions": {
    "reopen": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/reopen?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/2/worklogs/user/erica?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

  • username: 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)
      • username: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • username: 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/2/timesheet-approvals/user/erica?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?username=johnb",
      "username": "johnb",
      "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?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/2/worklogs/user/erica?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

  • username: 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)
      • username: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • username: 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/2/timesheet-approvals/user/erica?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?username=johnb",
      "username": "johnb",
      "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?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/2/worklogs/user/erica?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

  • username: 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)
  • reviewerUsername: required (string)

Example:

{
  "comment": "Please review my timesheet, John",
  "reviewerUsername": "johnb"
}

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)
      • username: required (string)
      • displayName: required (string)
    • requiredSecondsAtSubmit: (number)
    • timeSpentSecondsAtSubmit: (number)
    • updatedAt: required (datetime)
  • user: required (user)
    • self: required (string)
    • username: 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/2/timesheet-approvals/user/erica?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?username=erica",
      "username": "erica",
      "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?username=erica",
    "username": "erica",
    "displayName": "Erica Jefferson"
  },
  "reviewer": {
    "self": "https://my-cloud-instance.atlassian.net/rest/api/2/user?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "actions": {
    "approve": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/approve?from=2017-12-01&to=2017-12-31"
    },
    "reject": {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/reject?from=2017-12-01&to=2017-12-31"
    }
  },
  "worklogs": {
    "self": "https://api.tempo.io/2/worklogs/user/erica?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 (Pagination)
    • 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)
        • username: required (string)
        • displayName: required (string)
      • requiredSecondsAtSubmit: (number)
      • timeSpentSecondsAtSubmit: (number)
      • updatedAt: required (datetime)
    • user: required (user)
      • self: required (string)
      • username: 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/2/timesheet-approvals/team/1?from=2017-12-01&to=2017-12-31",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/erica?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?username=johnb",
          "username": "johnb",
          "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?username=erica",
        "username": "erica",
        "displayName": "Erica Jefferson"
      },
      "actions": {
        "submit": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/erica/submit?from=2017-12-01&to=2017-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/2/worklogs/user/erica?from=2017-12-01&to=2017-12-31"
      }
    },
    {
      "self": "https://api.tempo.io/2/timesheet-approvals/user/judy?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?username=johnb",
          "username": "johnb",
          "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?username=judy",
        "username": "judy",
        "displayName": "Judy Simpson"
      },
      "actions": {
        "reopen": {
          "self": "https://api.tempo.io/2/timesheet-approvals/user/judy/reopen?from=2017-12-01&to=2017-12-31"
        }
      },
      "worklogs": {
        "self": "https://api.tempo.io/2/worklogs/user/judy?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

Resource dedicated to the user schedules

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: (date-only)

    Retrieve results starting with this date

  • to: (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 (Pagination)
    • 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/2/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

  • username: 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

List of day-schedules

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (Pagination)
    • 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/2/user-schedule/johnb?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

Resources dedicated to 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 (Pagination)
    • 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/2/work-attributes",
  "metadata": {
    "count": 2
  },
  "results": [
    {
      "self": "https://api.tempo.io/2/work-attributes/_COLOR_",
      "key": "_COLOR_",
      "name": "Color",
      "type": "STATIC_LIST",
      "required": false,
      "values": [
        "red",
        "green",
        "blue",
        "yellow",
        "pink"
      ]
    },
    {
      "self": "https://api.tempo.io/2/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

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/2/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

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

Resources dedicated to worklogs

/worklogs get post
get

Retrieve worklogs

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

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

Body

Media type: application/json

Type: object

Properties
  • self: required (string)
  • metadata: required (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/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

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)
  • authorUsername: 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
  "authorUsername": "johnb",
  "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 (User)
    • self: required (string)
    • username: 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/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/2/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

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 (User)
    • self: required (string)
    • username: 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/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/2/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

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)
  • authorUsername: 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
  "authorUsername": "johnb",
  "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 (User)
    • self: required (string)
    • username: 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/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/2/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

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

Body

Media type: application/json

Type: object

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

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 (Pagination)
    • 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/2/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

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

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 (User)
    • self: required (string)
    • username: 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/2/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?username=johnb",
    "username": "johnb",
    "displayName": "John Brown"
  },
  "attributes": {
    "self": "https://api.tempo.io/2/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

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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/worklogs/jira/filter/10020?offset=0&limit=50",
  "metadata": {
    "count": 64,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/2/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

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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/worklogs/account/ACC-1?offset=0&limit=50",
  "metadata": {
    "count": 51,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/2/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

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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/worklogs/project/PRJ-1",
  "metadata": {
    "count": 51,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/2/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

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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/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

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 username

Secured by OAuth 2.0

Tempo supports OAuth 2.0 for authenticating all API requests.

URI Parameters

  • username: 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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/worklogs/user/john?offset=100&limit=50",
  "metadata": {
    "count": 50,
    "offset": 100,
    "limit": 50,
    "next": "https://api.tempo.io/2/worklogs/user/john?offset=150&limit=50",
    "previous": "https://api.tempo.io/2/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

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 (Pagination)
    • 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 (User)
      • self: required (string)
      • username: 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/2/worklogs/issue/PLAT-234",
  "metadata": {
    "count": 57,
    "offset": 0,
    "limit": 50,
    "next": "https://api.tempo.io/2/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

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