• Announcement banner
  • App data policies (EAP)
  • Application roles
  • Audit records
  • Avatars
  • Classification levels
  • Dashboards
  • Filters
  • Filter sharing
  • Group and user picker
  • Groups
  • Issues
  • UI modifications (apps)
  • Issue attachments
  • Issue comments
  • Issue comment properties
  • Issue fields
  • Issue field configurations
  • Issue custom field contexts
  • Issue custom field options
  • Issue custom field options (apps)
  • Issue custom field values (apps)
  • Issue custom field configuration (apps)
  • Issue navigator settings
  • Issue notification schemes
  • Issue priorities
  • Issue properties
  • Issue resolutions
  • Issue security level
  • Issue security schemes
  • Issue types
  • Issue type schemes
  • Issue type screen schemes
  • Issue type properties
  • Issue votes
  • Issue watchers
  • Issue worklogs
  • Issue worklog properties
  • Jira expressions
  • Jira settings
  • JQL
  • JQL functions (apps)
  • Labels
  • License metrics
  • Myself
  • Permissions
  • Permission schemes
  • Projects
  • Project avatars
  • Project categories
  • Project classification levels
  • Project components
  • Project email
  • Project features
  • Project key and name validation
  • Project permission schemes
  • Project properties
  • Project roles
  • Project role actors
  • Project types
  • Project versions
  • Screens
  • Screen tabs
  • Screen tab fields
  • Screen schemes
  • Server info
  • Status
  • Tasks
  • Time tracking
  • Users
  • User properties
  • Webhooks
  • Workflows
  • Workflow transition rules
  • Workflow schemes
  • Workflow scheme project associations
  • Workflow scheme drafts
  • Workflow statuses
  • Workflow status categories
  • Workflow transition properties
  • App properties
  • Dynamic modules
  • App migration
  • Service Registry
Cloud
Jira Cloud platform / Reference / REST API v3 (beta)

Issue custom field options

Postman Collection
OpenAPI

This resource represents custom issue field select list options created in Jira or using the REST API. This resource supports the following field types:

  • Checkboxes.
  • Radio Buttons.
  • Select List (single choice).
  • Select List (multiple choices).
  • Select List (cascading).

See Issue custom field options (apps) to manipulate custom issue field select list options created by a Connect app.

Use it to retrieve, create, update, order, and delete custom field options.

GET

Get custom field option

Returns a custom field option. For example, an option in a select list.

Note that this operation only works for issue field select list options created in Jira or using operations from the Issue custom field options resource, it cannot be used with issue field select list options created by Connect apps.

This operation can be accessed anonymously.

Permissions required: The custom field option is returned as follows:

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredREAD

ClassicRECOMMENDED:read:jira-work
Granular:read:field:jira, read:field.option:jira

Request

Path parameters

id

string

Required

Responses

Returned if the request is successful.

application/json

CustomFieldOption

Details of a custom option for a field.

GET/rest/api/3/customFieldOption/{id}
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/customFieldOption/{id}`, { headers: { 'Accept': 'application/json' } }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 { "self": "https://your-domain.atlassian.net/rest/api/3/customFieldOption/10000", "value": "To Do" }
GET

Get custom field options (context)

Returns a paginated list of all custom field option for a context. Options are returned first then cascading options, in the order they display in Jira.

This operation works for custom field options created in Jira or the operations from this resource. To work with issue field select list options created for Connect apps use the Issue custom field options (apps) operations.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredREAD

ClassicRECOMMENDED:manage:jira-configuration
Granular:read:field.option:jira

Request

Path parameters

fieldId

string

Required
contextId

integer

Required

Query parameters

optionId

integer

onlyOptions

boolean

startAt

integer

maxResults

integer

Responses

Returned if the request is successful.

application/json

PageBeanCustomFieldContextOption

A page of items.

GET/rest/api/3/field/{fieldId}/context/{contextId}/option
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/field/{fieldId}/context/{contextId}/option`, { headers: { 'Accept': 'application/json' } }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
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 { "isLast": true, "maxResults": 100, "startAt": 0, "total": 4, "values": [ { "id": "10001", "value": "New York" }, { "id": "10002", "value": "Boston", "disabled": true }, { "id": "10004", "value": "Denver" }, { "id": "10003", "value": "Brooklyn", "optionId": "10001" } ] }
PUT

Update custom field options (context)

Updates the options of a custom field.

If any of the options are not found, no options are updated. Options where the values in the request match the current values aren't updated and aren't reported in the response.

Note that this operation only works for issue field select list options created in Jira or using operations from the Issue custom field options resource, it cannot be used with issue field select list options created by Connect apps.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:read:field.option:jira, write:field.option:jira

Request

Path parameters

fieldId

string

Required
contextId

integer

Required

Request bodyapplication/json

options

array<CustomFieldOptionUpdate>

Responses

Returned if the request is successful.

application/json

CustomFieldUpdatedContextOptionsList

A list of custom field options for a context.

PUT/rest/api/3/field/{fieldId}/context/{contextId}/option
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 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import api, { route } from "@forge/api"; var bodyData = `{ "options": [ { "disabled": false, "id": "10001", "value": "Scranton" }, { "disabled": true, "id": "10002", "value": "Manhattan" }, { "disabled": false, "id": "10003", "value": "The Electric City" } ] }`; const response = await api.asUser().requestJira(route`/rest/api/3/field/{fieldId}/context/{contextId}/option`, { method: 'PUT', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "options": [ { "disabled": false, "id": "10001", "value": "Scranton" }, { "disabled": true, "id": "10002", "value": "Manhattan" }, { "disabled": false, "id": "10003", "value": "The Electric City" } ] }
POST

Create custom field options (context)

Creates options and, where the custom select field is of the type Select List (cascading), cascading options for a custom select field. The options are added to a context of the field.

The maximum number of options that can be created per request is 1000 and each field can have a maximum of 10000 options.

This operation works for custom field options created in Jira or the operations from this resource. To work with issue field select list options created for Connect apps use the Issue custom field options (apps) operations.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:read:field.option:jira, write:field.option:jira

Request

Path parameters

fieldId

string

Required
contextId

integer

Required

Request bodyapplication/json

options

array<CustomFieldOptionCreate>

Responses

Returned if the request is successful.

application/json

CustomFieldCreatedContextOptionsList

A list of custom field options for a context.

POST/rest/api/3/field/{fieldId}/context/{contextId}/option
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 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import api, { route } from "@forge/api"; var bodyData = `{ "options": [ { "disabled": false, "value": "Scranton" }, { "disabled": true, "optionId": "10000", "value": "Manhattan" }, { "disabled": false, "value": "The Electric City" } ] }`; const response = await api.asUser().requestJira(route`/rest/api/3/field/{fieldId}/context/{contextId}/option`, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
200Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "options": [ { "disabled": false, "id": "10001", "value": "Scranton" }, { "disabled": true, "id": "10002", "optionId": "10000", "value": "Manhattan" }, { "disabled": false, "id": "10003", "value": "The Electric City" } ] }
PUT

Reorder custom field options (context)

Changes the order of custom field options or cascading options in a context.

This operation works for custom field options created in Jira or the operations from this resource. To work with issue field select list options created for Connect apps use the Issue custom field options (apps) operations.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:write:field.option:jira

Request

Path parameters

fieldId

string

Required
contextId

integer

Required

Request bodyapplication/json

after

string

customFieldOptionIds

array<string>

Required
position

string

Responses

Returned if options are reordered.

application/json

any

PUT/rest/api/3/field/{fieldId}/context/{contextId}/option/move
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 = `{ "customFieldOptionIds": [ "10001", "10002" ], "position": "First" }`; const response = await api.asUser().requestJira(route`/rest/api/3/field/{fieldId}/context/{contextId}/option/move`, { method: 'PUT', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
DEL

Delete custom field options (context)

Deletes a custom field option.

Options with cascading options cannot be deleted without deleting the cascading options first.

This operation works for custom field options created in Jira or the operations from this resource. To work with issue field select list options created for Connect apps use the Issue custom field options (apps) operations.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:delete:field.option:jira

Request

Path parameters

fieldId

string

Required
contextId

integer

Required
optionId

integer

Required

Responses

Returned if the option is deleted.

DEL/rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}
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/field/{fieldId}/context/{contextId}/option/{optionId}`, { method: 'DELETE' }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.text());
DEL

Replace custom field options

Replaces the options of a custom field.

Note that this operation only works for issue field select list options created in Jira or using operations from the Issue custom field options resource, it cannot be used with issue field select list options created by Connect or Forge apps.

Permissions required: Administer Jira global permission.

Data Security Policy: Exempt from app access rules
Scopes

Connect app scope requiredADMIN

ClassicRECOMMENDED:manage:jira-configuration
Granular:read:field.option:jira, write:field.option:jira

Request

Path parameters

fieldId

string

Required
optionId

integer

Required
contextId

integer

Required

Query parameters

replaceWith

integer

jql

string

Responses

Returned if the long-running task to deselect the option is started.

application/json

TaskProgressBeanRemoveOptionFromIssuesResult

Details about a task.

DEL/rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}/issue
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/field/{fieldId}/context/{contextId}/option/{optionId}/issue`, { method: 'DELETE' }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.text());
303Response
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 { "self": "https://your-domain.atlassian.net/rest/api/3/task/1", "id": "1", "description": "Remove option 1 from issues matched by '*', and replace with option 3", "status": "COMPLETE", "result": { "errors": { "errorMessages": [ "Option 2 cannot be set on issue MKY-5 as it is not in the correct scope" ], "errors": {}, "httpStatusCode": { "empty": false, "present": true } }, "modifiedIssues": [ 10001, 10010 ], "unmodifiedIssues": [ 10005 ] }, "elapsedRuntime": 42 }

Rate this page: