This resource represents issue worklogs. Use it to:
Returns worklogs for an issue (ordered by created time), starting from the oldest worklog or from the worklog started on or after a date and time.
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
This operation can be accessed anonymously.
Permissions required: Workloads are only returned where the user has:
read:jira-work
read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
, read:user:jira
...(Show more)Connect app scope required: READ
string
Requiredinteger
integer
integer
integer
string
Returned if the request is successful
Paginated list of worklog details
1
2
3
4
5
6
7
8
9
10
11
12
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
"maxResults": 1,
"startAt": 0,
"total": 1,
"worklogs": [
{
"author": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"comment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "I did some work here."
}
]
}
]
},
"id": "100028",
"issueId": "10002",
"self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
"started": "2021-01-17T12:34:00.000+0000",
"timeSpent": "3h 20m",
"timeSpentSeconds": 12000,
"updateAuthor": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"updated": "2021-01-18T23:45:00.000+0000",
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group",
"value": "jira-developers"
}
}
]
}
Adds a worklog to an issue.
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
This operation can be accessed anonymously.
Permissions required:
write:jira-work
write:issue-worklog:jira
, write:issue-worklog.property:jira
, read:avatar:jira
, read:group:jira
, read:issue-worklog:jira
...(Show more)Connect app scope required: WRITE
string
Requiredboolean
string
string
string
string
boolean
any
array<EntityProperty>
string
string
integer
Visibility
any
Returned if the request is successful.
Details of a worklog.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"comment": {
"content": [
{
"content": [
{
"text": "I did some work here.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
},
"started": "2021-01-17T12:34:00.000+0000",
"timeSpentSeconds": 12000,
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group"
}
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
"author": {
"accountId": "<string>",
"accountType": "<string>",
"active": true,
"avatarUrls": {
"16x16": "<string>",
"24x24": "<string>",
"32x32": "<string>",
"48x48": "<string>"
},
"displayName": "<string>",
"emailAddress": "<string>",
"key": "<string>",
"name": "<string>",
"self": "<string>",
"timeZone": "<string>"
},
"created": "<string>",
"id": "<string>",
"issueId": "<string>",
"properties": [
{
"key": "<string>"
}
],
"self": "<string>",
"started": "<string>",
"timeSpent": "<string>",
"timeSpentSeconds": 192,
"updateAuthor": {
"accountId": "<string>",
"accountType": "<string>",
"active": true,
"avatarUrls": {
"16x16": "<string>",
"24x24": "<string>",
"32x32": "<string>",
"48x48": "<string>"
},
"displayName": "<string>",
"emailAddress": "<string>",
"key": "<string>",
"name": "<string>",
"self": "<string>",
"timeZone": "<string>"
},
"updated": "<string>",
"visibility": {
"identifier": "<string>",
"type": "group",
"value": "<string>"
}
}
Deletes a list of worklogs from an issue. This is an experimental API with limitations:
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
Permissions required:
write:jira-work
delete:issue-worklog:jira
, delete:issue-worklog.property:jira
, write:issue.time-tracking:jira
, read:group:jira
, read:issue-worklog:jira
...(Show more)Connect app scope required: DELETE
string
Requiredstring
boolean
A JSON object containing a list of worklog IDs.
array<integer>
RequiredReturned if the bulk deletion request was partially successful, with a message indicating partial success.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"ids": [
1,
2,
5,
10
]
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Moves a list of worklogs from one issue to another. This is an experimental API with several limitations:
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
Permissions required:
write:jira-work
read:issue-worklog:jira
, write:issue-worklog:jira
, delete:issue-worklog:jira
, read:issue-worklog.property:jira
, write:issue-worklog.property:jira
...(Show more)Connect app scope required: WRITE
string
Requiredstring
boolean
A JSON object containing a list of worklog IDs and the ID or key of the destination issue.
array<integer>
string
Returned if the request is partially successful.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"ids": [
1,
2,
5,
10
],
"issueIdOrKey": "ABC-1234"
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog/move`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Returns a worklog.
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
This operation can be accessed anonymously.
Permissions required:
read:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)Connect app scope required: READ
string
Requiredstring
Requiredstring
Returned if the request is successful.
Details of a worklog.
1
2
3
4
5
6
7
8
9
10
11
12
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog/{id}`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"author": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"comment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "I did some work here."
}
]
}
]
},
"id": "100028",
"issueId": "10002",
"self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
"started": "2021-01-17T12:34:00.000+0000",
"timeSpent": "3h 20m",
"timeSpentSeconds": 12000,
"updateAuthor": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"updated": "2021-01-18T23:45:00.000+0000",
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group",
"value": "jira-developers"
}
}
Updates a worklog.
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
This operation can be accessed anonymously.
Permissions required:
write:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)Connect app scope required: WRITE
string
Requiredstring
Requiredboolean
string
string
string
boolean
any
array<EntityProperty>
string
string
integer
Visibility
any
Returned if the request is successful
Details of a worklog.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"comment": {
"content": [
{
"content": [
{
"text": "I did some work here.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
},
"started": "2021-01-17T12:34:00.000+0000",
"timeSpentSeconds": 12000,
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group"
}
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog/{id}`, {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"author": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"comment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "I did some work here."
}
]
}
]
},
"id": "100028",
"issueId": "10002",
"self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
"started": "2021-01-17T12:34:00.000+0000",
"timeSpent": "3h 20m",
"timeSpentSeconds": 12000,
"updateAuthor": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"updated": "2021-01-18T23:45:00.000+0000",
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group",
"value": "jira-developers"
}
}
Deletes a worklog from an issue.
Time tracking must be enabled in Jira, otherwise this operation returns an error. For more information, see Configuring time tracking.
This operation can be accessed anonymously.
Permissions required:
write:jira-work
delete:issue-worklog:jira
, delete:issue-worklog.property:jira
, write:issue.time-tracking:jira
Connect app scope required: DELETE
string
Requiredstring
Requiredboolean
string
string
string
boolean
Returned if the request is successful.
1
2
3
4
5
6
7
8
9
10
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/worklog/{id}`, {
method: 'DELETE'
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Returns a list of IDs and delete timestamps for worklogs deleted after a date and time.
This resource is paginated, with a limit of 1000 worklogs per page. Each page lists worklogs from oldest to youngest. If the number of items in the date range exceeds 1000, until
indicates the timestamp of the youngest item on the page. Also, nextPage
provides the URL for the next page of worklogs. The lastPage
parameter is set to true on the last page of worklogs.
This resource does not return worklogs deleted during the minute preceding the request.
Permissions required: Permission to access Jira.
read:jira-work
read:issue-worklog:jira
, read:issue-worklog.property:jira
Connect app scope required: READ
integer
Returned if the request is successful.
List of changed worklogs.
1
2
3
4
5
6
7
8
9
10
11
12
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
const response = await api.asUser().requestJira(route`/rest/api/3/worklog/deleted`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"lastPage": true,
"nextPage": "https://your-domain.atlassian.net/api/~ver~/worklog/deleted?since=1438013693136",
"self": "https://your-domain.atlassian.net/api/~ver~/worklog/deleted?since=1438013671562",
"since": 1438013671562,
"until": 1438013693136,
"values": [
{
"properties": [],
"updatedTime": 1438013671562,
"worklogId": 103
},
{
"properties": [],
"updatedTime": 1438013672165,
"worklogId": 104
},
{
"properties": [],
"updatedTime": 1438013693136,
"worklogId": 105
}
]
}
Returns worklog details for a list of worklog IDs.
The returned list of worklogs is limited to 1000 items.
Permissions required: Permission to access Jira, however, worklogs are only returned where either of the following is true:
read:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)Connect app scope required: READ
string
A JSON object containing a list of worklog IDs.
array<integer>
RequiredReturned if the request is successful.
array<Worklog>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"ids": [
1,
2,
5,
10
]
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/worklog/list`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[
{
"author": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"comment": {
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "I did some work here."
}
]
}
]
},
"id": "100028",
"issueId": "10002",
"self": "https://your-domain.atlassian.net/rest/api/3/issue/10010/worklog/10000",
"started": "2021-01-17T12:34:00.000+0000",
"timeSpent": "3h 20m",
"timeSpentSeconds": 12000,
"updateAuthor": {
"accountId": "5b10a2844c20165700ede21g",
"active": false,
"displayName": "Mia Krystof",
"self": "https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g"
},
"updated": "2021-01-18T23:45:00.000+0000",
"visibility": {
"identifier": "276f955c-63d7-42c8-9520-92d01dca0625",
"type": "group",
"value": "jira-developers"
}
}
]
Returns a list of IDs and update timestamps for worklogs updated after a date and time.
This resource is paginated, with a limit of 1000 worklogs per page. Each page lists worklogs from oldest to youngest. If the number of items in the date range exceeds 1000, until
indicates the timestamp of the youngest item on the page. Also, nextPage
provides the URL for the next page of worklogs. The lastPage
parameter is set to true on the last page of worklogs.
This resource does not return worklogs updated during the minute preceding the request.
Permissions required: Permission to access Jira, however, worklogs are only returned where either of the following is true:
read:jira-work
read:issue-worklog:jira
, read:issue-worklog.property:jira
Connect app scope required: READ
integer
string
Returned if the request is successful.
List of changed worklogs.
1
2
3
4
5
6
7
8
9
10
11
12
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
const response = await api.asUser().requestJira(route`/rest/api/3/worklog/updated`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"lastPage": true,
"nextPage": "https://your-domain.atlassian.net/api/~ver~/worklog/updated?since=1438013693136",
"self": "https://your-domain.atlassian.net/api/~ver~/worklog/updated?since=1438013671562",
"since": 1438013671562,
"until": 1438013693136,
"values": [
{
"properties": [],
"updatedTime": 1438013671562,
"worklogId": 103
},
{
"properties": [],
"updatedTime": 1438013672165,
"worklogId": 104
},
{
"properties": [],
"updatedTime": 1438013693136,
"worklogId": 105
}
]
}
Rate this page: