Atlassian Jira Field API
The Atlassian Jira Field API enables managing custom and system fields within Jira including contexts, options, and configurations.
The Atlassian Jira Field API enables managing custom and system fields within Jira including contexts, options, and configurations.
components:
schemas:
PageBeanField:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/Field'
readOnly: true
type: array
type: object
PageBeanCustomFieldContext:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/CustomFieldContext'
readOnly: true
type: array
type: object
PageBeanCustomFieldContextDefaultValue:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/CustomFieldContextDefaultValue'
readOnly: true
type: array
type: object
PageBeanIssueTypeToContextMapping:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/IssueTypeToContextMapping'
readOnly: true
type: array
type: object
PageBeanContextForProjectAndIssueType:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/ContextForProjectAndIssueType'
readOnly: true
type: array
type: object
PageBeanCustomFieldContextProjectMapping:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/CustomFieldContextProjectMapping'
readOnly: true
type: array
type: object
PageBeanCustomFieldContextOption:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/CustomFieldContextOption'
readOnly: true
type: array
type: object
CustomFieldCreatedContextOptionsList:
additionalProperties: false
description: A list of custom field options for a context.
properties:
options:
description: The created custom field options.
items:
$ref: '#/components/schemas/CustomFieldContextOption'
type: array
type: object
CustomFieldUpdatedContextOptionsList:
additionalProperties: false
description: A list of custom field options for a context.
properties:
options:
description: The updated custom field options.
items:
$ref: '#/components/schemas/CustomFieldOptionUpdate'
type: array
type: object
PageBeanContext:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/Context'
readOnly: true
type: array
type: object
PageBeanScreenWithTab:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/ScreenWithTab'
readOnly: true
type: array
type: object
PageBeanIssueFieldOption:
additionalProperties: false
description: A page of items.
properties:
isLast:
description: Whether this is the last page.
readOnly: true
type: boolean
maxResults:
description: The maximum number of items that could be returned.
format: int32
readOnly: true
type: integer
nextPage:
description: If there is another page of results, the URL of the next page.
format: uri
readOnly: true
type: string
self:
description: The URL of the page.
format: uri
readOnly: true
type: string
startAt:
description: The index of the first item returned.
format: int64
readOnly: true
type: integer
total:
description: The number of items returned.
format: int64
readOnly: true
type: integer
values:
description: The list of items.
items:
$ref: '#/components/schemas/IssueFieldOption'
readOnly: true
type: array
type: object
IssueFieldOption:
additionalProperties: false
description: Details of the options for a select list issue field.
properties:
config:
$ref: '#/components/schemas/IssueFieldOptionConfiguration'
id:
description: >-
The unique identifier for the option. This is only unique within the
select field's set of options.
format: int64
type: integer
properties:
additionalProperties: {}
description: >-
The properties of the object, as arbitrary key-value pairs. These
properties can be searched using JQL, if the extractions (see [Issue
Field Option Property
Index](https://developer.atlassian.com/cloud/jira/platform/modules/issue-field-option-property-index/))
are defined in the descriptor for the issue field module.
type: object
value:
description: The option's name, which is displayed in Jira.
type: string
required:
- id
- value
type: object
externalDocs:
description: Find out more about Atlassian products and services.
url: http://www.atlassian.com
info:
contact:
email: [email protected]
description: Needs description.
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: http://atlassian.com/terms/
title: 'Atlassian rest/api/3/field/'
version: 1001.0.0-SNAPSHOT-67b5c6e5f3598d7ec1649016d026468ab2838a77
openapi: 3.0.1
paths:
/rest/api/3/field/search:
get:
deprecated: false
description: >-
Returns a [paginated](#pagination) list of fields for Classic Jira
projects. The list can include:<br><br> * all fields<br> * specific
fields, by defining `id`<br> * fields that contain a string in the
field name or description, by defining `query`<br> * specific fields
that contain a string in the field name or description, by defining `id`
and `query`<br><br>Only custom fields can be queried, `type` must be set
to `custom`.<br><br>**[Permissions](#permissions) required:**
*Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
operationId: atlassianGetfieldspaginated
parameters:
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int64
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 50
format: int32
type: integer
- description: The type of fields to search.
in: query
name: type
schema:
items:
default: ''
enum:
- custom
- system
type: string
type: array
- description: >-
The IDs of the custom fields to return or, where `query` is
specified, filter.
in: query
name: id
schema:
items:
default: ''
type: string
type: array
uniqueItems: true
- description: >-
String used to perform a case-insensitive partial match with field
names or descriptions.
in: query
name: query
schema:
type: string
- description: |-
[Order](#ordering) the results by a field:
* `contextsCount` sorts by the number of contexts related to a field
* `lastUsed` sorts by the date when the value of the field last changed
* `name` sorts by the field name
* `screensCount` sorts by the number of screens related to a field
in: query
name: orderBy
schema:
enum:
- contextsCount
- '-contextsCount'
- +contextsCount
- lastUsed
- '-lastUsed'
- +lastUsed
- name
- '-name'
- +name
- screensCount
- '-screensCount'
- +screensCount
- projectsCount
- '-projectsCount'
- +projectsCount
type: string
- description: >-
Use [expand](#expansion) to include additional information in the
response. This parameter accepts a comma-separated list. Expand
options include:
* `key` returns the key for each field
* `lastUsed` returns the date when the value of the field last changed
* `screensCount` returns the number of screens related to a field
* `contextsCount` returns the number of contexts related to a field
* `isLocked` returns information about whether the field is [locked](https://confluence.atlassian.com/x/ZSN7Og)
* `searcherKey` returns the searcher key for each custom field
in: query
name: expand
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"isLast":false,"maxResults":50,"startAt":0,"total":2,"values":[{"id":"customfield_10000","name":"Approvers","schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker","customId":10000,"items":"user","type":"array"},"description":"Contains
users needed for approval. This custom field was created by Jira
Service
Desk.","key":"customfield_10000","isLocked":true,"searcherKey":"com.atlassian.jira.plugin.system.customfieldtypes:userpickergroupsearcher","screensCount":2,"contextsCount":2,"lastUsed":{"type":"TRACKED","value":"2021-01-28T07:37:40.000+0000"}},{"id":"customfield_10001","name":"Change
reason","schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:select","customId":10001,"type":"option"},"description":"Choose
the reason for the change
request","key":"customfield_10001","isLocked":false,"searcherKey":"com.atlassian.jira.plugin.system.customfieldtypes:multiselectsearcher","screensCount":2,"contextsCount":2,"projectsCount":2,"lastUsed":{"type":"NOT_TRACKED"}}]}
schema:
$ref: '#/components/schemas/PageBeanField'
description: Returned if the request is successful.
'400':
content:
application/json:
example: >-
{"errorMessages":["Only custom fields can be
queried."],"errors":{}}
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only Jira administrators can access
fields."],"errors":{}}
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the user does not have the necessary permission.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
summary: Atlassian Get Fields Paginated
tags:
- Issue Fields
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:field:jira
- read:field-configuration:jira
state: Beta
x-atlassian-connect-scope: NONE
/rest/api/3/field/search/trashed:
get:
deprecated: false
description: >-
Returns a [paginated](#pagination) list of fields in the trash. The list
may be restricted to fields whose field name or description partially
match a string.<br><br>Only custom fields can be queried, `type` must be
set to `custom`.<br><br>**[Permissions](#permissions) required:**
*Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
operationId: atlassianGettrashedfieldspaginated
parameters:
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int64
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 50
format: int32
type: integer
- in: query
name: id
schema:
items:
default: ''
type: string
type: array
uniqueItems: true
- description: >-
String used to perform a case-insensitive partial match with field
names or descriptions.
in: query
name: query
schema:
type: string
- in: query
name: expand
schema:
enum:
- name
- '-name'
- +name
- trashDate
- '-trashDate'
- +trashDate
- plannedDeletionDate
- '-plannedDeletionDate'
- +plannedDeletionDate
- projectsCount
- '-projectsCount'
- +projectsCount
type: string
- description: |-
[Order](#ordering) the results by a field:
* `name` sorts by the field name
* `trashDate` sorts by the date the field was moved to the trash
* `plannedDeletionDate` sorts by the planned deletion date
in: query
name: orderBy
schema:
type: string
responses:
'200':
content:
application/json:
example: >-
{"isLast":false,"maxResults":50,"startAt":0,"total":1,"values":[{"id":"customfield_10000","name":"Approvers","schema":{"custom":"com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker","customId":10003,"type":"array"},"description":"Contains
users needed for approval. This custom field was created by Jira
Service
Desk.","key":"customfield_10003","trashedDate":"2022-10-06T07:32:47.000+0000","trashedBy":{"accountId":"5b10a2844c20165700ede21g","active":true,"avatarUrls":{"16x16":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16","24x24":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24","32x32":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32","48x48":"https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48"},"displayName":"Mia
Krystof","emailAddress":"[email protected]","self":"https://your-domain.atlassian.net/rest/api/3/user?accountId=5b10a2844c20165700ede21g","timeZone":"Australia/Sydney"},"plannedDeletionDate":"2022-10-24T07:32:47.000+0000"}]}
schema:
$ref: '#/components/schemas/PageBeanField'
description: Returned if the request is successful.
'400':
content:
application/json:
example: >-
{"errorMessages":["Only custom fields can be
queried."],"errors":{}}
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the request is invalid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only Jira administrators can access
fields."],"errors":{}}
schema:
$ref: '#/components/schemas/ErrorCollection'
description: Returned if the user does not have the necessary permission.
security:
- basicAuth: []
- OAuth2:
- read:jira-work
summary: Atlassian Get Fields In Trash Paginated
tags:
- Issue Fields
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- read:jira-work
state: Current
- scheme: OAuth2
scopes:
- read:field:jira
- read:field-configuration:jira
- read:user:jira
state: Beta
x-atlassian-connect-scope: READ
/rest/api/3/field/{fieldId}:
put:
deprecated: false
description: >-
Updates a custom field.<br><br>**[Permissions](#permissions) required:**
*Administer Jira* [global
permission](https://confluence.atlassian.com/x/x4dKLg).
operationId: atlassianUpdatecustomfield
parameters:
- description: The ID of the custom field.
in: path
name: fieldId
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
description: Select the manager and the corresponding employee.
name: Managers and employees list
searcherKey: >-
com.atlassian.jira.plugin.system.customfieldtypes:cascadingselectsearcher
schema:
$ref: '#/components/schemas/UpdateCustomFieldDetails'
description: The custom field update details.
required: true
responses:
'204':
content:
application/json:
schema: {}
description: Returned if the request is successful.
'400':
content:
application/json:
example: >-
{"errorMessages":["searcherKey is invalid for the field
type."],"errors":{}}
description: Returned if the request is not valid.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only Jira administrators can edit custom
fields."],"errors":{}}
description: Returned if the user does not have the required permissions.
'404':
content:
application/json:
example: >-
{"errorMessages":["The custom field was not
found."],"errors":{}}
description: Returned if the custom field is not found.
security:
- basicAuth: []
- OAuth2:
- manage:jira-configuration
summary: Atlassian Update Custom Field
tags:
- Issue Fields
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-oauth2-scopes:
- scheme: OAuth2
scopes:
- manage:jira-configuration
state: Current
- scheme: OAuth2
scopes:
- write:field:jira
state: Beta
x-atlassian-connect-scope: ADMIN
/rest/api/3/field/{fieldId}/context:
get:
deprecated: false
description: >-
Returns a [paginated](#pagination) list of [
contexts](https://confluence.atlassian.com/adminjiracloud/what-are-custom-field-contexts-991923859.html)
for a custom field. Contexts can be returned as follows:<br><br> * With
no other parameters set, all contexts.<br> * By defining `id` only, all
contexts from the list of IDs.<br> * By defining `isAnyIssueType`,
limit the list of contexts returned to either those that apply to all
issue types (true) or those that apply to only a subset of issue types
(false)<br> * By defining `isGlobalContext`, limit the list of contexts
return to either those that apply to all projects (global contexts)
(true) or those that apply to only a subset of projects
(false).<br><br>**[Permissions](#permissions) required:** *Administer
Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg).
operationId: atlassianGetcontextsforfield
parameters:
- description: The ID of the custom field.
in: path
name: fieldId
required: true
schema:
type: string
- description: Whether to return contexts that apply to all issue types.
in: query
name: isAnyIssueType
schema:
type: boolean
- description: Whether to return contexts that apply to all projects.
in: query
name: isGlobalContext
schema:
type: boolean
- description: >-
The list of context IDs. To include multiple contexts, separate IDs
with ampersand: `contextId=10000&contextId=10001`.
in: query
name: contextId
schema:
items:
format: int64
type: integer
type: array
uniqueItems: true
- description: >-
The index of the first item to return in a page of results (page
offset).
in: query
name: startAt
schema:
default: 0
format: int64
type: integer
- description: The maximum number of items to return per page.
in: query
name: maxResults
schema:
default: 50
format: int32
type: integer
responses:
'200':
content:
application/json:
example: >-
{"isLast":true,"maxResults":100,"startAt":0,"total":2,"values":[{"id":"10025","name":"Bug
fields context","description":"A context used to define the
custom field options for
bugs.","isGlobalContext":true,"isAnyIssueType":false},{"id":"10026","name":"Task
fields context","description":"A context used to define the
custom field options for
tasks.","isGlobalContext":false,"isAnyIssueType":false}]}
schema:
$ref: '#/components/schemas/PageBeanCustomFieldContext'
description: Returned if the request is successful.
'401':
description: Returned if the authentication credentials are incorrect or missing.
'403':
content:
application/json:
example: >-
{"errorMessages":["Only Jira administrators can access custom
field contexts."],"errors":{}}
description: Returned if the user does not have the required permissions.
'404':
content:
application/json:
example: >-
{"errorMessages":["The custom field was not
found."],"errors":{}}
description: Returned if the custom field was not found.
security:
- basicAuth: []
- OAuth2:
- manage:jira-configuration
summary: Atlassian Get Custom Field Contexts
tags:
- Issue Custom Field Contexts
# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/atlassian/refs/heads/main/openapi/atlassian-rest-api-3-field--openapi-original.yml