This resource represents issue worklogs. Use it to:
Returns worklogs for an issue, 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:
Connect app scope required: READ
read:jira-work
read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
, read:user:jira
...(Show more)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:
Connect app scope required: WRITE
write:jira-work
write:issue-worklog:jira
, write:issue-worklog.property:jira
, read:avatar:jira
, read:group:jira
, read:issue-worklog:jira
...(Show more)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>"
}
}
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:
Connect app scope required: READ
read:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)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:
Connect app scope required: WRITE
write:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)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:
Connect app scope required: DELETE
write:jira-work
delete:issue-worklog:jira
, delete:issue-worklog.property:jira
, write:issue.time-tracking:jira
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.
Connect app scope required: READ
read:jira-work
read:issue-worklog:jira
, read:issue-worklog.property:jira
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:
Connect app scope required: READ
read:jira-work
read:comment:jira
, read:group:jira
, read:issue-worklog:jira
, read:issue-worklog.property:jira
, read:project-role:jira
...(Show more)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:
Connect app scope required: READ
read:jira-work
read:issue-worklog:jira
, read:issue-worklog.property:jira
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: