This resource represents issue properties, which provides for storing custom data against an issue. Use it to get, set, and delete issue properties as well as obtain details of all properties on an issue. Operations to bulk update and delete issue properties are also provided. Issue properties are a type of entity property.
Sets or updates a list of entity property values on issues. A list of up to 10 entity properties can be specified along with up to 10,000 issues on which to set or update that list of entity properties.
The value of the request body must be a valid, non-empty JSON. The maximum length of single issue property value is 32768 characters. This operation can be accessed anonymously.
This operation is:
location
link in the response to determine the status of the task and use Get task to obtain subsequent updates.Permissions required:
write:jira-work
write:issue.property:jira
Connect app scope required: WRITE
Issue properties to be set or updated with values.
array<integer>
object
Returned if the operation is successful.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"entitiesIds": [
2154
],
"properties": {}
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/properties`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Sets or updates entity property values on issues. Up to 10 entity properties can be specified for each issue and up to 100 issues included in the request.
The value of the request body must be a valid, non-empty JSON.
This operation is:
location
link in the response to determine the status of the task and use Get task to obtain subsequent updates.Permissions required:
write:jira-work
write:issue.property:jira
Connect app scope required: WRITE
Details of the issue properties to be set or updated. Note that if an issue is not found, it is ignored.
array<IssueEntityPropertiesForMultiUpdate>
Returned if the operation is 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
25
26
27
28
29
30
31
32
33
34
35
36
37
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"issues": [
{
"issueID": 1000,
"properties": {
"myProperty": {
"owner": "admin",
"weight": 100
}
}
},
{
"issueID": 1001,
"properties": {
"myOtherProperty": {
"cost": 150,
"transportation": "car"
}
}
}
]
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/properties/multi`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Sets a property value on multiple issues.
The value set can be a constant or determined by a Jira expression. Expressions must be computable with constant complexity when applied to a set of issues. Expressions must also comply with the restrictions that apply to all Jira expressions.
The issues to be updated can be specified by a filter.
The filter identifies issues eligible for update using these criteria:
entityIds
Only issues from this list are eligible.
currentValue
Only issues with the property set to this value are eligible.
hasProperty
:
If more than one criteria is specified, they are joined with the logical AND: only issues that satisfy all criteria are eligible.
If an invalid combination of criteria is provided, an error is returned. For example, specifying a currentValue
and hasProperty
as false would not match any issues (because without the property the property cannot have a value).
The filter is optional. Without the filter all the issues visible to the user and where the user has the EDIT_ISSUES permission for the issue are considered eligible.
This operation is:
location
link in the response to determine the status of the task and use Get task to obtain subsequent updates.Permissions required:
write:jira-work
read:jira-expressions:jira
, write:issue.property:jira
Connect app scope required: WRITE
string
Requiredstring
IssueFilterForBulkPropertySet
any
Returned if the request is 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
25
26
27
28
29
30
31
32
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"filter": {
"currentValue": {
"owner": "admin",
"weight": 50
},
"entityIds": [
10100,
100010
],
"hasProperty": true
},
"value": {
"owner": "admin",
"weight": 100
}
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/properties/{propertyKey}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Deletes a property value from multiple issues. The issues to be updated can be specified by filter criteria.
The criteria the filter used to identify eligible issues are:
entityIds
Only issues from this list are eligible.currentValue
Only issues with the property set to this value are eligible.If both criteria is specified, they are joined with the logical AND: only issues that satisfy both criteria are considered eligible.
If no filter criteria are specified, all the issues visible to the user and where the user has the EDIT_ISSUES permission for the issue are considered eligible.
This operation is:
location
link in the response to determine the status of the task and use Get task to obtain subsequent updates.Permissions required:
write:jira-work
delete:issue.property:jira
Connect app scope required: DELETE
string
Requiredany
array<integer>
Returned if the request is successful.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{
"currentValue": "deprecated value",
"entityIds": [
10100,
100010
]
}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/properties/{propertyKey}`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Returns the URLs and keys of an issue's properties.
This operation can be accessed anonymously.
Permissions required: Property details are only returned where the user has:
read:jira-work
read:issue.property:jira
Connect app scope required: READ
string
RequiredReturned if the request is successful.
List of property keys.
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}/properties`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
8
{
"keys": [
{
"key": "issue.support",
"self": "https://your-domain.atlassian.net/rest/api/3/issue/EX-2/properties/issue.support"
}
]
}
Returns the key and value of an issue's property.
This operation can be accessed anonymously.
Permissions required:
read:jira-work
read:issue.property:jira
Connect app scope required: READ
string
Requiredstring
RequiredReturned if the request is successful.
An entity property, for more information see Entity properties.
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}/properties/{propertyKey}`, {
headers: {
'Accept': 'application/json'
}
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
1
2
3
4
5
6
7
{
"key": "issue.support",
"value": {
"system.conversation.id": "b1bf38be-5e94-4b40-a3b8-9278735ee1e6",
"system.support.time": "1m"
}
}
Sets the value of an issue's property. Use this resource to store custom data against an issue.
The value of the request body must be a valid, non-empty JSON blob. The maximum length is 32768 characters.
This operation can be accessed anonymously.
Permissions required:
write:jira-work
write:issue.property:jira
Connect app scope required: WRITE
string
Requiredstring
RequiredThe value of the property. The value has to be a valid, non-empty JSON value. The maximum length of the property value is 32768 bytes.
any
Returned if the issue property is updated.
any
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// This sample uses Atlassian Forge
// https://developer.atlassian.com/platform/forge/
import api, { route } from "@forge/api";
var bodyData = `{}`;
const response = await api.asUser().requestJira(route`/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}`, {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: bodyData
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.json());
Deletes an issue's property.
This operation can be accessed anonymously.
Permissions required:
write:jira-work
delete:issue.property:jira
Connect app scope required: DELETE
string
Requiredstring
RequiredReturned 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}/properties/{propertyKey}`, {
method: 'DELETE'
});
console.log(`Response: ${response.status} ${response.statusText}`);
console.log(await response.text());
Rate this page: