---
title: "API query methods"
canonical: "https://support.appfire.com/space/OFJ/603653134/API%20query%20methods"
format: markdown
---
> Macro (aura-html)

> ℹ️ This page is about **OKR for Jira Cloud**. Using** Data Center**? **[Click here](https://appfire.atlassian.net/wiki/spaces/OFJ/pages/603652538)**.

## Base URL for all API calls

- If you are in the Europe region: [https://eu.okr-jira-prod.appfire.com](https://eu.okr-jira-prod.appfire.com/)
- If you are in the Australia region: [https://au.okr-jira-prod.appfire.com](https://au.okr-jira-prod.appfire.com/)
- If you are in the Сanada region: [https://ca.okr-jira-prod.appfire.com](https://ca.okr-jira-prod.appfire.com/)
- Everywhere else: [https://okr-jira-prod.appfire.com](https://okr-jira-prod.appfire.com/)

### Key notes

- While updates are available via API, progress tracking is preferred when using the `percentDone` field directly on Objectives and Key Results.
- Progress values for manual Key Result updates are not editable and won't be present in the retrieved data.
- Objective progress cannot be tracked via updates.

## Query objectives by date

The query retrieves a list of all objectives that have a start date and/or due date within the specified date range.

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/objectives/byDate`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `startDateEpochMilli` | Start date of query time window, in UNIX Epoch time format, in milliseconds. | :check_mark: |
| `deadlineEpochMilli` | End date of query time window, in UNIX Epoch time format, in milliseconds. | :check_mark: |
| `expand` | A list of objects you want to include expanded in request. By default, you receive only the IDs of connected entities.  
**Permitted values: **KEY_RESULTS,TEAMS,PERIODS,LABELS | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span> `https://okr-jira-prod.appfire.com/api/v2/api-export/objectives/byDate?`  
`startDateEpochMilli=1409459200000`  
`&deadlineEpochMilli=1748647410000`  
`&expand=KEY_RESULTS,TEAMS,PERIODS,LABELS`

<details>
<summary>curl</summary>

```
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/objectives/byDate?startDateEpochMilli=1600647410000&deadlineEpochMilli=1748647410000&expand=KEY_RESULTS,TEAMS,PERIODS,LABELS' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"okrs": [
		{
			"id": "5fda249d289742000406b3e4",
			"key": "O-2",
			"name": "Become more mature company",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI1ZmVhZTJmZGNjYTIyMTAwMDMxNWFiMWYifQ%3D%3D",
			"description": "<p>This quarter we will be focusing on improving our performance.</p><p></p>",
			"parentObjectiveId": null,
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 8.333333333333332,
			"created": "2020-12-16T15:15:41+0000",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"krIds": [
				"605480b190c42b0003385170",
				"6061e921e2f4470003bc3210"
			],
			"childObjectiveIds": [
				"5fdb72c63d2cf000035ceb37",
				"60743135b347480003dc6a9c",
				"61f9367df9aa7f0e4024a6fe"
			],
			"latestUpdate": {
				"entityId": "5fda249d289742000406b3e4",
				"status": "ON_TRACK",
				"created": "2021-05-05T12:15:14+0000",
				"value": null,
				"description": ""
			},
			"periodAliasId": "602a6a2717378700039f342a",
			"weight": 0
		}
	],
	"krs": [
		{
			"id": "605480b190c42b0003385170",
			"key": "KR-8",
			"name": "new auto KR",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"issueIds": [
				"10005",
				"10006",
				"10010"
			],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [
				"5c12ad9fd3af3b1ccfecbf55"
			],
			"percentDone": 33.33333333333333,
			"created": "2021-03-19T10:45:05+0000",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342a",
			"latestUpdate": {
				"entityId": "620ea538512edb00acf67ac1",
				"status": "ON_TRACK",
				"created": "2022-02-17T19:42:43+0000",
				"value": 1.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "AUTO",
				"startValue": null,
				"desiredValue": null,
				"jql": "project= TEST"
			},
			"weight": 1
		},
		{
			"id": "6061e921e2f4470003bc3210",
			"key": "KR-9",
			"name": "different start date",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"issueIds": [
				"10000"
			],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2021-03-29T14:50:09+0000",
			"startDate": "2020-04-01T00:00:00+0000",
			"deadline": "2020-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": null,
			"latestUpdate": {
				"entityId": "61138f2be5fd454858c3e1ee",
				"status": "AT_RISK",
				"created": "2021-08-11T08:49:47+0000",
				"value": 0.0,
				"description": null
			},
			"unit": {
				"name": "USD",
				"symbol": "$"
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		}
	],
	"teams": [],
	"periods": [
		{
			"id": "602a6a2717378700039f342a",
			"name": "Q1 Y2021",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000"
		}
	],
	"labels": []
}
```
</details>

## Query objectives by ID

The query for a list of all objectives with specified IDs. 

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/objectives/byIds`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `objectiveIds` | Comma-separated list of objective IDs you want to receive. | :check_mark: |
| `expand` | A list of objects you want to include expanded in the request. By default, you receive only the IDs of connected entities.  
**Permitted values: **KEY_RESULTS,TEAMS,PERIODS,LABELS | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span> `https://okr-jira-prod.appfire.com/api/v2/api-export/objectives/byIds?objectiveIds=5fda249d289742000406b3e4`  
`&expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS`

<details>
<summary>curl</summary>

```
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/objectives/byIds?expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS&objectiveIds=5fda249d289742000406b3e4,5fdb72c63d2cf000035ceb37' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"okrs": [
		{
			"id": "5fda249d289742000406b3e4",
			"key": "O-2",
			"name": "Become more mature companybbb",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI2MWZhYzVmMzk1NTZlODYyMTE0NTAwZjAifQ%3D%3D",
			"description": "<p>This quarter we will be focusing on improving our performance.</p><p></p>",
			"parentObjectiveId": null,
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 8.333333333333332,
			"created": "2020-12-16T15:15:41+0000",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"krIds": [
				"605480b190c42b0003385170",
				"6061e921e2f4470003bc3210"
			],
			"childObjectiveIds": [
				"5fdb72c63d2cf000035ceb37",
				"60743135b347480003dc6a9c",
				"61f9367df9aa7f0e4024a6fe"
			],
			"latestUpdate": {
				"entityId": "5fda249d289742000406b3e4",
				"status": "ON_TRACK",
				"created": "2021-05-05T12:15:14+0000",
				"value": null,
				"description": ""
			},
			"periodAliasId": "602a6a2717378700039f342a",
			"weight": 0
		},
		{
			"id": "5fdb72c63d2cf000035ceb37",
			"key": "O-3",
			"name": "45",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2020-12-17T15:01:26+0000",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"krIds": [
				"5fda249d289742000406b3e5",
				"5fdb72c63d2cf000035ceb38",
				"5ff445869f8c190003e0e445",
				"60bde9dc99b4177c88ad428c"
			],
			"childObjectiveIds": [],
			"latestUpdate": {
				"entityId": "5fdb72c63d2cf000035ceb37",
				"status": "UNDEFINED",
				"created": "2021-08-09T00:00:00+0000",
				"value": null,
				"description": ""
			},
			"periodAliasId": "602a6a2717378700039f342c",
			"weight": 0
		}
	],
	"krs": [
		{
			"id": "5fda249d289742000406b3e5",
			"key": "KR-2",
			"name": "adda",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fdb72c63d2cf000035ceb37",
			"issueIds": [
				"10003"
			],
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2020-12-16T15:15:41+0000",
			"startDate": "2021-01-05T00:00:00+0000",
			"deadline": "2021-03-28T00:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": null,
			"latestUpdate": {
				"entityId": "61c993aaa0fd9b768a0fb47d",
				"status": "AT_RISK",
				"created": "2021-12-27T10:21:30+0000",
				"value": 0.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 22.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "5fdb72c63d2cf000035ceb38",
			"key": "KR-3",
			"name": "12",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fdb72c63d2cf000035ceb37",
			"issueIds": [],
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [
				"5c12ad9fd3af3b1ccfecbf55"
			],
			"percentDone": 0.0,
			"created": "2020-12-17T15:01:26+0000",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342c",
			"latestUpdate": {
				"entityId": "5fdb72c63d2cf000035ceb39",
				"status": "ON_TRACK",
				"created": "2020-12-17T15:00:24+0000",
				"value": 1.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 1.0,
				"desiredValue": 2.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "5ff445869f8c190003e0e445",
			"key": "KR-5",
			"name": "miau",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fdb72c63d2cf000035ceb37",
			"issueIds": [],
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2021-01-05T10:55:02+0000",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342c",
			"latestUpdate": {
				"entityId": "5ff445909f8c190003e0e447",
				"status": "DELAYED",
				"created": "2021-01-05T10:55:12+0000",
				"value": 0.0,
				"description": ""
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "605480b190c42b0003385170",
			"key": "KR-8",
			"name": "new auto KR",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"issueIds": [
				"10005",
				"10006",
				"10010"
			],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [
				"5c12ad9fd3af3b1ccfecbf55"
			],
			"percentDone": 33.33333333333333,
			"created": "2021-03-19T10:45:05+0000",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342a",
			"latestUpdate": {
				"entityId": "620ea538512edb00acf67ac1",
				"status": "ON_TRACK",
				"created": "2022-02-17T19:42:43+0000",
				"value": 1.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "AUTO",
				"startValue": null,
				"desiredValue": null,
				"jql": "project= TEST"
			},
			"weight": 1
		},
		{
			"id": "6061e921e2f4470003bc3210",
			"key": "KR-9",
			"name": "different start date",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"issueIds": [
				"10000"
			],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2021-03-29T14:50:09+0000",
			"startDate": "2020-04-01T00:00:00+0000",
			"deadline": "2020-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": null,
			"latestUpdate": {
				"entityId": "61138f2be5fd454858c3e1ee",
				"status": "AT_RISK",
				"created": "2021-08-11T08:49:47+0000",
				"value": 0.0,
				"description": null
			},
			"unit": {
				"name": "USD",
				"symbol": "$"
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "60bde9dc99b4177c88ad428c",
			"key": "KR-15",
			"name": "fghjfgh",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "5fdb72c63d2cf000035ceb37",
			"issueIds": [],
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [
				"5c12ad9fd3af3b1ccfecbf55"
			],
			"percentDone": 0.0,
			"created": "2021-06-07T09:41:48+0000",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [
				"605df77c6e53750003068c7d",
				"605dfb316e53750003068c8a"
			],
			"periodAliasId": "602a6a2717378700039f342c",
			"latestUpdate": {
				"entityId": "60bde9dc99b4177c88ad428d",
				"status": "ON_TRACK",
				"created": "2021-06-07T09:41:37+0000",
				"value": 0.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		}
	],
	"teams": [
		{
			"id": "605df77c6e53750003068c7d",
			"name": "lets go!"
		},
		{
			"id": "605dfb316e53750003068c8a",
			"name": "My team"
		}
	],
	"periods": [
		{
			"id": "602a6a2717378700039f342a",
			"name": "Q1 Y2021",
			"startDate": "2021-01-01T00:00:00+0000",
			"deadline": "2021-03-31T23:59:59+0000"
		},
		{
			"id": "602a6a2717378700039f342c",
			"name": "Q3 Y2021",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000"
		}
	],
	"labels": []
}
```
</details>

## Query key results by date

The query retrieves a list of all key results that have a start date and/or due date within the specified date range.

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/keyResults/byDate`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `startDateEpochMilli` | Start date of query time window, in UNIX Epoch time format, in milliseconds. | :check_mark: |
| `deadlineEpochMilli` | End date of query time window, in UNIX Epoch time format, in milliseconds. | :check_mark: |
| `expand` | A list of objects you want to include expanded in reqeust. By default, you receive only the IDs of connected entities.<br>**Permitted values: **OBJECTIVES,TEAMS,PERIODS,LABELS | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span> `https://okr-jira-prod.appfire.com/api/v2/api-export/keyResults/byDate?`  
`startDateEpochMilli=1509459200000`  
`&deadlineEpochMilli=1748647410000`  
`&expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS`

<details>
<summary>curl</summary>

```
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/keyResults/byDate?startDateEpochMilli=1649459200000&deadlineEpochMilli=1748647410000&expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"okrs": [
		{
			"id": "620265fe81300a4c89e89806",
			"key": "O-99",
			"name": "Department objective ",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI2MWZhYzVmMzk1NTZlODYyMTE0NTAwZjAifQ%3D%3D",
			"description": "",
			"parentObjectiveId": "620265d481300a4c89e89802",
			"ownerAccountId": "557058:a63fcd57-682a-450b-8d7c-ec330b2aa543",
			"collaboratorAccountIds": [],
			"percentDone": 4.761904761904762,
			"created": "2022-02-08T12:45:50+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [
				"61fac8f89556e8621145011d"
			],
			"krIds": [
				"62027c6f81300a4c89e89a1c"
			],
			"childObjectiveIds": [
				"6202664f81300a4c89e89810",
				"6202666281300a4c89e89812"
			],
			"latestUpdate": {
				"entityId": "620265fe81300a4c89e89806",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:45:50+0000",
				"value": null,
				"description": "Objective created."
			},
			"periodAliasId": "602a6a2717378700039f342f",
			"weight": 1
		},
		{
			"id": "6202664f81300a4c89e89810",
			"key": "O-101",
			"name": "Team objective",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI2MWZhYzVmMzk1NTZlODYyMTE0NTAwZjAifQ%3D%3D",
			"description": "",
			"parentObjectiveId": "620265fe81300a4c89e89806",
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T12:47:11+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [
				"61c3402d8a875b727286a6c2"
			],
			"krIds": [
				"6202671581300a4c89e89827",
				"6202672781300a4c89e8982a"
			],
			"childObjectiveIds": [],
			"latestUpdate": {
				"entityId": "6202664f81300a4c89e89810",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:47:11+0000",
				"value": null,
				"description": "Objective created."
			},
			"periodAliasId": "602a6a2717378700039f342f",
			"weight": 1
		},
		{
			"id": "6202666281300a4c89e89812",
			"key": "O-102",
			"name": "Team 2 objective",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI2MWZhYzVmMzk1NTZlODYyMTE0NTAwZjAifQ%3D%3D",
			"description": "",
			"parentObjectiveId": "620265fe81300a4c89e89806",
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 9.523809523809524,
			"created": "2022-02-08T12:47:30+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [
				"611a1b88c385f85c13ac8630"
			],
			"krIds": [
				"6202673e81300a4c89e8982e",
				"6202674e81300a4c89e89830",
				"62029d8881300a4c89e8af27"
			],
			"childObjectiveIds": [],
			"latestUpdate": {
				"entityId": "6202666281300a4c89e89812",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:47:30+0000",
				"value": null,
				"description": "Objective created."
			},
			"periodAliasId": "602a6a2717378700039f342f",
			"weight": 1
		}
	],
	"krs": [
		{
			"id": "6202671581300a4c89e89827",
			"key": "KR-96",
			"name": "Team KR",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "6202664f81300a4c89e89810",
			"issueIds": [],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T12:50:29+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "6202671581300a4c89e89828",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:50:29+0000",
				"value": 0.0,
				"description": "Key result created."
			},
			"unit": {
				"name": "Numeric",
				"symbol": ""
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "6202672781300a4c89e8982a",
			"key": "KR-97",
			"name": "Team KR 2 ",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "6202664f81300a4c89e89810",
			"issueIds": [],
			"ownerAccountId": "557058:a63fcd57-682a-450b-8d7c-ec330b2aa543",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T12:50:47+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "6202672781300a4c89e8982b",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:50:47+0000",
				"value": 0.0,
				"description": "Key result created."
			},
			"unit": {
				"name": "Numeric",
				"symbol": ""
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "6202673e81300a4c89e8982e",
			"key": "KR-98",
			"name": "Team KR 3",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "6202666281300a4c89e89812",
			"issueIds": [],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T12:51:09+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "6202673e81300a4c89e8982f",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:51:09+0000",
				"value": 0.0,
				"description": "Key result created."
			},
			"unit": {
				"name": "Numeric",
				"symbol": ""
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "6202674e81300a4c89e89830",
			"key": "KR-99",
			"name": "Team KR 4",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "6202666281300a4c89e89812",
			"issueIds": [],
			"ownerAccountId": "557058:a63fcd57-682a-450b-8d7c-ec330b2aa543",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T12:51:26+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "6202674e81300a4c89e89831",
				"status": "NOT_STARTED",
				"created": "2022-02-08T12:51:26+0000",
				"value": 0.0,
				"description": "Key result created."
			},
			"unit": {
				"name": "Numeric",
				"symbol": ""
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 1
		},
		{
			"id": "62027c6f81300a4c89e89a1c",
			"key": "KR-103",
			"name": "For tracking ",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "620265fe81300a4c89e89806",
			"issueIds": [],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2022-02-08T14:21:35+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "62027c6f81300a4c89e89a1d",
				"status": "NOT_STARTED",
				"created": "2022-02-08T14:21:35+0000",
				"value": 0.0,
				"description": "Key result created."
			},
			"unit": {
				"name": "Numeric",
				"symbol": ""
			},
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 1.0,
				"jql": null
			},
			"weight": 0
		},
		{
			"id": "62029d8881300a4c89e8af27",
			"key": "KR-104",
			"name": "Auto KR",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": "",
			"parentObjectiveId": "6202666281300a4c89e89812",
			"issueIds": [
				"10008",
				"10007",
				"10009",
				"10000",
				"10002",
				"10001",
				"10004"
			],
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 28.57142857142857,
			"created": "2022-02-08T16:42:48+0000",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": "602a6a2717378700039f342f",
			"latestUpdate": {
				"entityId": "62029d8881300a4c89e8af2a",
				"status": "NOT_STARTED",
				"created": "2022-02-08T16:42:48+0000",
				"value": 2.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "AUTO",
				"startValue": null,
				"desiredValue": null,
				"jql": "project = ddd"
			},
			"weight": 1
		}
	],
	"teams": [
		{
			"id": "611a1b88c385f85c13ac8630",
			"name": "Product team"
		},
		{
			"id": "61c3402d8a875b727286a6c2",
			"name": "Operations"
		},
		{
			"id": "61fac8f89556e8621145011d",
			"name": "Research"
		}
	],
	"periods": [
		{
			"id": "602a6a2717378700039f342f",
			"name": "Q2 Y2022",
			"startDate": "2022-04-01T00:00:00+0000",
			"deadline": "2022-06-30T23:59:59+0000"
		}
	],
	"labels": []
}
```
</details>

## Query key results by ID

Query for a list of all key results with specified IDs. 

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/keyResults/byIds`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `keyResultIds` | Comma-separated list of key result IDs you want to receive. | :check_mark: |
| `expand` | A list of objects you want to include in the request. By default, you receive only the IDs of connected entities.  
**Permitted values:** KEY_RESULTS,TEAMS,PERIODS,LABELS | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span> `https://okr-jira-prod.appfire.com/api/v2/api-export/keyResults/byIds?`  
`expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS`  
`&keyResultIds=5fda249d289742000406b3e5`

<details>
<summary>curl</summary>

```
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/keyResults/byIds?expand=OBJECTIVES,KEY_RESULTS,TEAMS,PERIODS,LABELS&keyResultIds=5fda249d289742000406b3e5' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"okrs": [
		{
			"id": "5fdb72c63d2cf000035ceb37",
			"key": "O-3",
			"name": "45",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiT0JKRUNUSVZFIiwib2tySWQiOiI2MWZhYzVmMzk1NTZlODYyMTE0NTAwZjAifQ%3D%3D",
			"description": null,
			"parentObjectiveId": "5fda249d289742000406b3e4",
			"ownerAccountId": "5dbfee8570f1ea0df7698353",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2020-12-17T15:01:26+0000",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"krIds": [
				"5fda249d289742000406b3e5",
				"5fdb72c63d2cf000035ceb38",
				"5ff445869f8c190003e0e445",
				"60bde9dc99b4177c88ad428c"
			],
			"childObjectiveIds": [],
			"latestUpdate": {
				"entityId": "5fdb72c63d2cf000035ceb37",
				"status": "UNDEFINED",
				"created": "2021-08-09T00:00:00+0000",
				"value": null,
				"description": ""
			},
			"periodAliasId": "602a6a2717378700039f342c",
			"weight": 0
		}
	],
	"krs": [
		{
			"id": "5fda249d289742000406b3e5",
			"key": "KR-2",
			"name": "adda",
			"link": "https://test-okr-prd.atlassian.net/plugins/servlet/ac/com.digitaltoucan.okrforjira/okrs-general-page#!eyJ0eXBlIjoiS1IiLCJrcklkIjoiNjExYTFhMjljMzg1Zjg1YzEzYWM4NjI0In0%3D",
			"description": null,
			"parentObjectiveId": "5fdb72c63d2cf000035ceb37",
			"issueIds": [
				"10003"
			],
			"ownerAccountId": "5c12ad9fd3af3b1ccfecbf55",
			"collaboratorAccountIds": [],
			"percentDone": 0.0,
			"created": "2020-12-16T15:15:41+0000",
			"startDate": "2021-01-05T00:00:00+0000",
			"deadline": "2021-03-28T00:59:59+0000",
			"labelIds": [],
			"teamIds": [],
			"periodAliasId": null,
			"latestUpdate": {
				"entityId": "61c993aaa0fd9b768a0fb47d",
				"status": "AT_RISK",
				"created": "2021-12-27T10:21:30+0000",
				"value": 0.0,
				"description": null
			},
			"unit": null,
			"currentProgressDefinition": {
				"type": "STANDARD",
				"startValue": 0.0,
				"desiredValue": 22.0,
				"jql": null
			},
			"weight": 1
		}
	],
	"teams": [],
	"periods": [
		{
			"id": "602a6a2717378700039f342c",
			"name": "Q3 Y2021",
			"startDate": "2021-07-01T00:00:00+0000",
			"deadline": "2021-09-30T23:59:59+0000"
		}
	],
	"labels": []
}
```
</details>

## Query updates by entity ID

This query retrieves updates for objectives or key results, displaying the newest ones first.

> 📝 **NOTE ON PROGRESS: **Updates are not the best way to calculate progress. Utilize the `percentDone` field on Objectives and Key Results to obtain the latest progress value.

Updates for non-auto Key Results have `startValue`, `value`, and `desiredValue` fields. They allow tracking changes in the progress of a Key Result. The latest update for a Key Result will have an up-to-date value.

There are two kinds of auto KR updates. Automatic updates are generated when connected issues change status, and such updates have progress values. You can also create a manual update with a description, but progress values are not editable and will not be present on the Update object fetched through the API.

Objective progress cannot be traced by its updates. Objective updates will always have their progress as null. We calculate the progress of an objective in-flight and do not generate an update for every change in the Objective's underlying Key Results.

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/updates`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `entityId` | ID of a single objective or key result to return updates for.   
If no ID is provided, updates for all key results and objectives will be returned, newest first. | :cross_mark: |
| `earlierThan` | Only updates earlier than the date provided will be returned. This parameter defines an open interval and should be provided in UNIX Epoch time format, in milliseconds. | :cross_mark: |
| `laterThan` | Only updates later than the date provided will be returned. This parameter defines an open interval and should be provided in UNIX Epoch time format, in milliseconds. | :cross_mark: |
| `cursor` | This endpoint supports cursor-based pagination.   
Request returns up to `pageSize` records. If there are more updates than fit on the current page, the `nextCursor` field will be populated in the response object.<br>You can get the next page of updates by using the value of `nextCursor` as a `cursor` parameter in the next request.  
Lack of `nextCursor` means there are no more updates to return. | :cross_mark: |
| `pageSize` | This controls how many updates the request will return in a single response.  If there are more updates than returned, `nextCursor` field of the response object will be populated.  
Takes values from 1 to 1000.  
The default value is 1000. | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span>`https://okr-jira-prod.appfire.com/api/v2/api-export/updates?entityId=5fda249d289742000406b3e5&pageSize=100&cursor=MTY0MDYwMDQ5MDI5MA==`

<details>
<summary>curl</summary>

```shell
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/updates?entityId=5fda249d289742000406b3e5&pageSize=2&cursor=MTY0MDYwMDQ5MDI5MA%3D%3D' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"updates": [
		{
			"updateId": "6454f20c63f888445a0765a1",
			"entityId": "6453c760a3b1a006776f1c7e",
			"status": "ON_TRACK",
			"displayedStatus": "ON TRACK",
			"created": "2023-05-05T12:09:48+0000",
			"value": null,
			"description": "",
			"startValue": null,
			"desiredValue": null
		}
	],
	"nextCursor": "MTY4MzI4ODU4ODQ4Ng=="
}
```
</details>

## Query comments

Query paged comments (all or for given updateIds).

<span style="color: #36b37e">**GET **</span>`/api/v2/api-export/updateComments`

| **Parameter** | **Description** | **Mandatory** |
| --- | --- | --- |
| `earlierThan` | Only updates earlier than the date provided will be returned. This parameter defines an open interval and should be provided in UNIX Epoch time format, in milliseconds. | :cross_mark: |
| `laterThan` | Only updates later than the date provided will be returned. This parameter defines an open interval and should be provided in UNIX Epoch time format, in milliseconds. | :cross_mark: |
| `updateId` | IDs of updates to retrieve comments.   
If no IDs are provided, comments for all updates will be returned, newest first. | :cross_mark: |
| `cursor` | This endpoint supports cursor-based pagination.   
Request returns up to `pageSize` records. If there are more updates than fit on the current page, the `nextCursor` field will be populated in the response object.<br>You can get the next page of comments by using the value of `nextCursor` as a `cursor` parameter in the next request.<br>Lack of `nextCursor` means there are no more comments to return. | :cross_mark: |
| `pageSize` | Controls how many comments the request will return in a single response. If there are more comments than returned, the `nextCursor` field of the response object will be populated.  
Takes values from 1 to 1000.  
The default value is 1000. | :cross_mark: |

**Example request:**

<span style="color: #36b37e">**GET **</span>`https://okr-jira-prod.appfire.com/api/v2/api-export/updateComments?updateId=6453c760a3b1a006776f1c7f&pageSize=1&cursor=MTY4MzIxMjE0MTA1OQ==`

<details>
<summary>curl</summary>

```shell
curl --request GET \
  --url 'https://okr-jira-prod.appfire.com/api/v2/api-export/updateComments?updateId=6453c760a3b1a006776f1c7f&pageSize=1&cursor=MTY4MzIxMjE0MTA1OQ%3D%3D' \
  --header 'API-Token: {token}' \
  --header 'Content-Type: application/json'
```
</details>

<details>
<summary>Example response:</summary>

```json
{
	"comments": [
		{
			"commentId": "6453c76da3b1a006776f1c81",
			"updateId": "6453c760a3b1a006776f1c7f",
			"text": "Reply\nEdited",
			"authorAccountId": "61f93e0fe688d6007068c36d",
			"replyToCommentId": "6453c769a3b1a006776f1c80",
			"created": "2023-05-04T14:55:41+0000",
			"lastEdited": "2023-05-04T14:55:44+0000"
		}
	],
	"nextCursor": "MTY4MzIxMjE0MTA1OQ=="
}
```
</details>