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

UI modifications (apps)

Postman Collection
OpenAPI

UI modifications is a feature available for Forge apps only. It enables Forge apps to control how selected Jira fields behave on the following views: global issue create, issue view, issue transition. For example: hide specific fields, set them as required, etc.

GET

Get UI modifications

Gets UI modifications. UI modifications can only be retrieved by Forge apps.

Permissions required: None.

The new read:app-data:jira OAuth scope is 100% optional now, and not using it won't break your app. However, we recommend adding it to your app's scope list because we will eventually make it mandatory.

Data Security Policy: Exempt from app access rules
Scopes
ClassicRECOMMENDED:read:jira-work
Granular:read:jira-work, read:app-data:jira

Connect app scope requiredNONE

Request

Query parameters

startAt

integer

maxResults

integer

expand

string

Responses

Returned if the request is successful.

application/json

PageBeanUiModificationDetails

A page of items.

GET/rest/api/3/uiModifications
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/uiModifications`, { 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 { "isLast": true, "maxResults": 100, "startAt": 0, "total": 3, "values": [ { "id": "d7dbda8a-6239-4b63-8e13-a5ef975c8e61", "name": "Reveal Story Points", "description": "Reveals Story Points field when any Sprint is selected.", "self": "https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d7dbda8a-6239-4b63-8e13-a5ef975c8e61", "data": "{field: 'Story Points', config: {hidden: false}}", "contexts": [ { "id": "1533537a-bda3-4ac6-8481-846128cd9ef4", "projectId": "10000", "issueTypeId": "10000", "viewType": "GIC", "isAvailable": true }, { "id": "c016fefa-6eb3-40c9-8596-4c4ef273e67c", "projectId": "10000", "issueTypeId": "10001", "viewType": "IssueView", "isAvailable": true }, { "id": "1016defa-7ew3-40c5-8696-4c1efg73e67s", "projectId": "10000", "issueTypeId": "10002", "viewType": "IssueTransition", "isAvailable": true } ] }, { "id": "e4fe8db5-f82f-416b-a3aa-b260b55da577", "name": "Set Assignee", "description": "Sets the Assignee field automatically.", "self": "https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/e4fe8db5-f82f-416b-a3aa-b260b55da577", "contexts": [ { "id": "8b3740f9-8780-4958-8228-69dcfbda11d9", "projectId": "10000", "issueTypeId": "10000", "viewType": "GIC", "isAvailable": true } ] }, { "id": "1453f993-79ce-4389-a36d-eb72d5c85dd6", "name": "Hide Labels", "description": "Hides Labels if any component is provided.", "self": "https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/1453f993-79ce-4389-a36d-eb72d5c85dd6", "contexts": [] }, { "id": "d3f4097e-8d8e-451e-9fb6-27c3c8c3bfff", "name": "Wildcard example", "description": "This context is applied to all issue types", "self": "https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d3f4097e-8d8e-451e-9fb6-27c3c8c3bfff", "contexts": [ { "id": "521f2181-5d5e-46ea-9fc9-871bbf245b8b", "projectId": "10000", "issueTypeId": null, "viewType": "GIC", "isAvailable": true } ] } ] }
POST

Create UI modification

Creates a UI modification. UI modification can only be created by Forge apps.

Each app can define up to 3000 UI modifications. Each UI modification can define up to 1000 contexts. The same context can be assigned to maximum 100 UI modifications.

Permissions required:

The new write:app-data:jira OAuth scope is 100% optional now, and not using it won't break your app. However, we recommend adding it to your app's scope list because we will eventually make it mandatory.

Data Security Policy: Exempt from app access rules
Scopes
ClassicRECOMMENDED:read:jira-work
Granular:read:jira-work, write:app-data:jira

Connect app scope requiredNONE

Request

Request bodyapplication/json

Details of the UI modification.

contexts

array<UiModificationContextDetails>

data

string

description

string

name

string

Required

Responses

Returned if the UI modification is created.

application/json

UiModificationIdentifiers

Identifiers for a UI modification.

POST/rest/api/3/uiModifications
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 38 39 40 41 42 43 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import api, { route } from "@forge/api"; var bodyData = `{ "contexts": [ { "issueTypeId": "10000", "projectId": "10000", "viewType": "GIC" }, { "issueTypeId": "10001", "projectId": "10000", "viewType": "IssueView" }, { "issueTypeId": "10002", "projectId": "10000", "viewType": "IssueTransition" }, { "issueTypeId": "10003", "projectId": "10000", "viewType": null } ], "data": "{field: 'Story Points', config: {hidden: false}}", "description": "Reveals Story Points field when any Sprint is selected.", "name": "Reveal Story Points" }`; const response = await api.asUser().requestJira(route`/rest/api/3/uiModifications`, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
201Response
1 2 3 4 { "id": "d7dbda8a-6239-4b63-8e13-a5ef975c8e61", "self": "https://api.atlassian.com/ex/jira/{cloudid}/rest/api/2/uiModifications/d7dbda8a-6239-4b63-8e13-a5ef975c8e61" }
PUT

Update UI modification

Updates a UI modification. UI modification can only be updated by Forge apps.

Each UI modification can define up to 1000 contexts. The same context can be assigned to maximum 100 UI modifications.

Permissions required:

The new write:app-data:jira OAuth scope is 100% optional now, and not using it won't break your app. However, we recommend adding it to your app's scope list because we will eventually make it mandatory.

Data Security Policy: Exempt from app access rules
Scopes
ClassicRECOMMENDED:read:jira-work
Granular:read:jira-work, write:app-data:jira

Connect app scope requiredNONE

Request

Path parameters

uiModificationId

string

Required

Request bodyapplication/json

Details of the UI modification.

contexts

array<UiModificationContextDetails>

data

string

description

string

name

string

Responses

Returned if the UI modification is updated.

application/json

any

PUT/rest/api/3/uiModifications/{uiModificationId}
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 = `{ "contexts": [ { "issueTypeId": "10000", "projectId": "10000", "viewType": "GIC" }, { "issueTypeId": "10001", "projectId": "10000", "viewType": "IssueView" }, { "issueTypeId": "10002", "projectId": "10000", "viewType": "IssueTransition" } ], "data": "{field: 'Story Points', config: {hidden: true}}", "name": "Updated Reveal Story Points" }`; const response = await api.asUser().requestJira(route`/rest/api/3/uiModifications/{uiModificationId}`, { 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 UI modification

Deletes a UI modification. All the contexts that belong to the UI modification are deleted too. UI modification can only be deleted by Forge apps.

Permissions required: None.

The new write:app-data:jira OAuth scope is 100% optional now, and not using it won't break your app. However, we recommend adding it to your app's scope list because we will eventually make it mandatory.

Data Security Policy: Exempt from app access rules
Scopes
write:app-data:jira

Connect app scope requiredNONE

Request

Path parameters

uiModificationId

string

Required

Responses

Returned if the UI modification is deleted.

application/json

any

DEL/rest/api/3/uiModifications/{uiModificationId}
1 2 3 4 5 6 7 8 9 10 11 12 13 // 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/uiModifications/{uiModificationId}`, { method: 'DELETE', headers: { 'Accept': 'application/json' } }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());

Rate this page: