As per the announcement: support for multiple contexts per project is coming soon, we’re adding the ability to set different default values for each issue type in a field context.
Existing Default Values APIs
Until October 2026
1. Deprecated: Get Default Value
Requests to Get custom field contexts default values will continue to return the default value for contexts that only have a single default value. Contexts which have been configured to support more than one default value will not be returned.
2. Deprecated: Set Default Value
Requests to Set custom field contexts default values will continue to populate the default value for all issue types associated with the context. If a context has different default values for particular issue types the API will override them all to use the new default value.
After October 2026
The deprecated APIs will be removed.
New Default Values APIs
1. Get Default Values
GET /rest/api/3/field/{fieldId}/context/defaultValues
Returns a paginated list of contexts with their default values.
The default value objects shape remains field type dependant and will follow the same structure as the existing default values API.
Query parameters:
-
contextId— repeatable; defaults to all contexts on the field the consumer can see. -
issueTypeId— repeatable; restricts returned issue types to the listed issue types only. Does not affect the any issue types default value. -
startAt— pagination offset, default 0. -
maxResults— page size, default 50, maximum 100.
Example request
GET /rest/api/3/field/customfield_10010/context/defaultValues?contextId=12345
Example response (200 OK)
{
"startAt": 0,
"maxResults": 50,
"total": 1,
"values": [
{
"contextId": 12345,
"defaultValues": [
{
"isAnyIssueType": true,
"value": { ... }
},
{
"issueTypeId": 10001,
"value": { ... }
},
{
"issueTypeId": 10002,
"value": { ... }
}
]
}
]
}
2. Set Default Values
PUT /rest/api/3/field/{fieldId}/context/defaultValues
Allows updating default values for particular issue types in a context.
The default value can be removed by providing null.
If the issue type isn’t available on the requested context an exception will be returned. The issue type can be added to the context via Add issue types to context.
Example request
PUT /rest/api/3/field/customfield_10010/context/defaultValues
{
"defaultValues": [
{
"contextId": 12345,
"isAnyIssueType": true,
"value": { ... }
},
{
"contextId": 12345,
"issueTypeId": 10001,
"value": { ... }
},
{
"contextId": 12345,
"issueTypeId": 10002,
"value": null
}
]
}
Other affected APIs
Add issue types to context
New issue types added to a context via Add issue types to context inherit the default value from existing issue types. This will change once contexts support default values per issue type.
When adding an issue type to a context with default values, a new defaultValue parameter lets consumers control whether to copy default values from existing issue types. If omitted, the default value from the first issue type mapping in the context is copied.
Currently, adding issue types to a context configured as isAnyIssueType changes the context to map only to explicit issue types. We will now support a context being isAnyIssueType while also having explicit issue types. This allows an any issue type context to have specific default values for other issue types.
Request body
-
defaultValue— object, optional; Object shape is field type dependant. When a default value is provided the new issue types being added will be set with the requested default. If the optional parameter isn’t provided the default value will be set to the same value of the contexts first issue type mapping. -
isAnyIssueType— boolean, optional; When true the isAnyIssueType mapping is added to the context, or kept if already present. When false or not provided the isAnyIssueType mapping is removed and replaced with the explicit issue types.
Example request
PUT /rest/api/3/field/{fieldId}/context/{contextId}/issuetype
{
"issueTypeIds": [
"10001",
"10005",
"10006"
],
"isAnyIssueType": true,
"defaultValue": {
"optionId": 10001,
"type": "option.single"
}
}
Remove issue types from context
The current behaviour of the remove issue types from context API is that removing all explicitly associated issue types from a context creates an any issue types mapping. This behaviour remains, but to ensure predictability, the new any issue types mapping will copy the default value from the oldest issue type mapping in the context.