Custom fields
- 1 General information
- 2 Get all custom fields information
- 3 Get configuration scheme for custom field
- 4 Remove configuration scheme for custom field
- 5 Get values for custom field configuration scheme
- 6 Add values into custom field configuration scheme
- 7 Change values in custom field configuration scheme
- 8 Remove values from custom field configuration scheme
- 9 Sort custom field values alphabetically
- 10 Add custom fields
- 11 Delete custom fields
- 12 Clear custom field schemes
- 13 Add custom fields scheme
- 14 Add custom fields schemes in bulk
- 15 Update custom fields schemes
- 15.1 Parameters
- 16 Update all custom fields schemes at once
- 16.1 Parameters
- 17 Get custom fields types
- 18 Get screens where a custom field appears
- 19 Pagination
- 20 Changes
General information
All REST APIs for custom fields are ONLY available for Jira Administrators
Get all custom fields information
Method type: GET
URL: {JIRA_URL}/rest/extender/1.0/customField/all
Respons format: JSON
Example response:
{
"customFields":[
{
"issuesWithValue": 0,
"lastValueUpdate": "never", //String value when never updated
"name":"Checkboxes",
"id": 10000,
"type":"Checkboxes",
"key":"com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes"
},
{
"issuesWithValue": 900,
"lastValueUpdate": 1234567890, //timestamp value
"name":"Radio Buttons",
"id": 10001,
"type":"Radio Buttons",
"key":"com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons"
},
{
"issuesWithValue": 0,
"lastValueUpdate": "never",
"name":"Select List (cascading)",
"id": 10004,
"type":"Select List (cascading)",
"key":"com.atlassian.jira.plugin.system.customfieldtypes:cascadingselect"
},
{
"issuesWithValue": 0,
"lastValueUpdate": "never",
"name":"Select List (multiple choices)",
"id": 10003,
"type":"Select List (multiple choices)",
"key":"com.atlassian.jira.plugin.system.customfieldtypes:multiselect"
},
{
"issuesWithValue": 0,
"lastValueUpdate": "never",
"name":"Select List (single choice)",
"id": 10002,
"type":"Select List (single choice)",
"key":"com.atlassian.jira.plugin.system.customfieldtypes:select"
}
],
"startAt": 0,
"total": 10,
"maxResults": 100
}
Get configuration scheme for custom field
Method type - GET
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/field/{customFieldId}
where {customFieldId} is custom field id
Example URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/field/10003
Respons format: JSON
Example response
{
"customFieldSchemes":[
{
"name":"Default Configuration Scheme for Select List (multiple choices)",
"description":"Example description",
"id": 10104,
"associatedProjects": [],
"issueTypes": [
{
"name": "Global (all issues)",
"id": "global"
}
]
},
{
"name":"Configuration Scheme for Select List",
"description":"Example description",
"id": 10105,
"associatedProjects": [],
"issueTypes": [
{
"name": "Epic",
"id": "10000"
},
{
"name": "Task",
"id": "10002"
}
]
},
{
"name":"Another configuration scheme",,
"description":"Example description",
"id": 10106,
"associatedProjects": [
{
"name": "PB",
"id": 10001,
"key": "PB"
}
],
"issueTypes": []
}
],
"startAt": 0,
"total": 10,
"maxResults": 100
}
Remove configuration scheme for custom field
Method type - DELETE
URL: {JIRA_URL}/rest/extender/1.0/customField/removeConfigScheme/{configSchemeId}
where {configSchemeId} is custom field configuration scheme
Example URL: {JIRA_URL}/rest/extender/1.0/customField/removeConfigScheme/10102
Response format - JSON
Example response
{
"message": "config scheme '10102' deleted"
}
Get values for custom field configuration scheme
Method type - GET
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/getValue/{configSchemeId}
where {configSchemeId} is custom field configuration scheme
Example URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/getValue/10104
Response format - JSON
Example response
Example for standard fields (Radio buttons, Select list (sings/multiple choices), Checkboxes
Example for cascading field (Select list (cascading))
Add values into custom field configuration scheme
Method type - POST
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/addValue/{configSchemeId}
where {configSchemeId} is custom field configuration scheme
Request format - JSON
Example request
Example for one value (Single List fields)
Example for several values (Single List fields)
Example for one value (Cascading fields)
Example for several values (Cascading fields)
Response format - JSON
Example response
Change values in custom field configuration scheme
Method type - POST
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/editValue/{configSchemeId}/option/{optionId}
where {configSchemeId} is custom field configuration scheme
where {optionId} is custom field value id to change
Request format - JSON
Example request
All parameters
Disable value in field
Rename value in Cascading field
Change value position
parentId - optional - only used in cascading fields when you need to change the value in the second checkbox
disable - optional - (true/false) - disable or enable field value
name - optional - a new name for the value if you want to change it
position - optional - number <1, ∞) - field value position on list
Response format - JSON
Example response
Remove values from custom field configuration scheme
Method type - POST
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/removeValue
Request format - JSON
Example request
Example for one value
Example for several values
Response format - JSON
Example response
Sort custom field values alphabetically
Method type - POST
1) Sorting for the first level (e.g. for select lists, radio buttons, etc.)
URL:
{JIRA_URL}/rest/extender/1.0/customField/configScheme/sortValuesAlphabetically/{configSchemeId}
where {configSchemeId} is custom field configuration scheme
2) Sorting for the second level (e.g. for a cascading select list, etc.)
URL: {JIRA_URL}/rest/extender/1.0/customField/configScheme/sortValuesAlphabetically/{configSchemeId}/parentOptionId/{parentOptionId}
where {configSchemeId} is custom field configuration scheme
where {parentOptionId} is the identifier of the field value at the first level whose values at the second level should be changed
Example response
Add custom fields
Method type - PUT
URL: {JIRA_URL}/rest/extender/1.0/customField/addCustomField
Request format - JSON
Example request (all parameters)
fieldName - required
fieldDescription - required
fieldTypeKey - required - uniq field type key; you can get all keys from Get custom fields types
schemeName - optional - custom field configuration scheme name - default value ("Default Configuration Scheme for {CUSTOM_FIELD_NAME}")
schemeDescription - optional - custom field configuration scheme description - default value ("Default configuration scheme generated by Extender for JIRA")
issueTypes - optional - issue types for field context - default value ("Global (all issues)")
projects - optional - project for field context - default value (all projects)
optionNames - optional - adding options to the field if they are supported
Response format - JSON
Example response
Delete custom fields
Deleting several custom fields at once can take a long time or slow down the application
Method type - DELETE
URL: {JIRA_URL}/rest/extender/1.0/customField/deleteCustomField
Request format - JSON
Example request
Example for one custom field
Example for several custom fields
Response format - JSON
Clear custom field schemes
API clears configurations of contexts that do not have any project mapping (global context is skipped).
Example context that will be removed:
Method type - DELETE
URL: {JIRA_URL}/rest/extender/1.0/customField/clearConfigSchemes/{customFieldId}
where {customFieldId} is custom field id
where {customFieldId} takes the value all for all custom fields
Example URL:
{JIRA_URL}/rest/extender/1.0/customField/clearConfigSchemes/10100
{JIRA_URL}/rest/extender/1.0/customField/clearConfigSchemes/all
Remember, in the case of executing the API for all custom fields, the execution time may be significantly longer
Response format - JSON
Example response
Add custom fields scheme
Method type - PUT
URL: {JIRA_URL}/rest/extender/1.0/customField/addConfigScheme/{customFieldId}
where {customFieldId} is custom field id
Request format - JSON
Example request
Example (all parameters)
schemeName - optional - custom field configuration scheme name - default value ("Default Configuration Scheme for {CUSTOM_FIELD_NAME}")
schemeDescription - optional - custom field configuration scheme description - default value ("Default configuration scheme generated by Extender for JIRA")
issueTypes - optional - issue types for field context - default value ("Global (all issues)")
projects - optional - project for field context - default value (all projects)
Response format - JSON
Example response
Add custom fields schemes in bulk
Method type - PUT
URL: {JIRA_URL}/rest/extender/1.0/customField/addConfigSchemes/{customFieldId}
where {customFieldId} is custom field id
Request format - JSON
Example request
Example (all parameters)
schemeName - optional - custom field configuration scheme name - default value ("Default Configuration Scheme for {CUSTOM_FIELD_NAME}")
schemeDescription - optional - custom field configuration scheme description - default value ("Default configuration scheme generated by Extender for JIRA")
issueTypes - required - array containing issue types configuration arrays for all contexts - default value for empty array ("Global (all issues)")
projects - required - array containing projects configuration arrays for all contexts - default value for empty array (all projects)
optionName - required - array containing arrays with option names for all contexts - leave array empty if field does not support options
Response format - JSON
Example response
Example API call:
Result:
Update custom fields schemes
Method type - PUT
URL: {JIRA_URL}/rest/extender/1.0/customField/updateConfigScheme/{configSchemeId}
URL: {JIRA_URL}/rest/extender/1.0/customField/updateConfigScheme/{configSchemeId}?keepExistingConfigurations=true
where {configSchemeId} is config scheme id
Request format - JSON
Example request
Example (all parameters)
schemeName - optional - custom field configuration scheme name - default value ("Default Configuration Scheme for {CUSTOM_FIELD_NAME}")
schemeDescription - optional - custom field configuration scheme description - default value ("Default configuration scheme generated by Extender for JIRA")
projects - optional - project for field context
Request without this parameter - API skips changes in project contexts
Request with empty array - API clear project contexts (set global for all project)
Request with non empty array and param keepExistingConfigurations - API will add the indicated projects to the existing configuration of project contexts
Request with non empty array and without param keepExistingConfigurations - API will overwrite the configuration only with the selected projects
issueTypes - optional - project for field context
Request without this parameter - API skips changes in issue type contexts
Request with empty array - API clear issue type contexts (set global for all project)
Request with non empty array and param keepExistingConfigurations - API will add the indicated issue types to the existing configuration of issue type contexts
Request with non empty array and without param keepExistingConfigurations - API will overwrite the configuration only with the selected issue types
Response format - JSON
Example response
Parameters
keepExistingConfigurations - optional - (true or empty) - sets the API working mode, whether new projects and request types are to be added to the current configuration or replaced
Update all custom fields schemes at once
Method type - PUT
URL: {JIRA_URL}/rest/extender/1.0/updateAllConfigSchemes/field/{customFieldId}
URL: {JIRA_URL}/rest/extender/1.0/updateAllConfigSchemes/field/{customFieldId}?keepExistingConfigurations=true
where {customFieldId} is custom field id
Request format - JSON
Example request
Example (all parameters)
schemeName - optional - custom field configuration scheme name - default value ("Default Configuration Scheme for {CUSTOM_FIELD_NAME}")
schemeDescription - optional - custom field configuration scheme description - default value ("Default configuration scheme generated by Extender for JIRA")
projects - optional - project for field context
Request without this parameter - API skips changes in project contexts
Request with empty array - API clear project contexts (set global for all project)
Request with non empty array and param keepExistingConfigurations - API will add the indicated projects to the existing configuration of project contexts
Request with non empty array and without param keepExistingConfigurations - API will overwrite the configuration only with the selected projects
issueTypes - optional - project for field context
Request without this parameter - API skips changes in issue type contexts
Request with empty array - API clear issue type contexts (set global for all project)
Request with non empty array and param keepExistingConfigurations - API will add the indicated issue types to the existing configuration of issue type contexts
Request with non empty array and without param keepExistingConfigurations - API will overwrite the configuration only with the selected issue types
Response format - JSON
Example response
Parameters
keepExistingConfigurations - optional - (true or empty) - sets the API working mode, whether new projects and request types are to be added to the current configuration or replaced
Get custom fields types
Method type - GET
URL: {JIRA_URL}/rest/extender/1.0/customField/customFieldTypes
Response format - JSON
Example response
Get screens where a custom field appears
Method type - GET
URL: {JIRA_URL}/rest/extender/1.0/customField/screen/field/{customFieldId}
where {customFieldId} is custom field id
Example URL: {JIRA_URL}/rest/extender/1.0/customField/screen/field/10118
Respons format: JSON
Example response
Pagination
This REST API uses pagination to improve performance for all Jira users. Pagination is enforced for methods that could return a large collection of items. When you make a request to a paged API, the response will wrap the returned array of values in a JSON object with paging metadata, for example:
Where:
startAt
is the index of the first item returned in the page of results.maxResults
is the maximum number of items that can be returned per page. Each API endpoint may have a different limit for the number of items returned, and these limits may change without notice. (default value - 1000)total
is the total number of items contained in all pages. This number may change as the client requests the subsequent pages, therefore the client should always assume that the requested page can be empty.