Developer
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
  • Backlog
  • Board
  • Epic
  • Issue
  • Sprint
  • Development Information
  • Feature Flags
  • Deployments
  • Builds
  • Security Information
  • Operations
  • DevOps Components
Cloud
Jira Software Cloud / Reference / REST API

Feature Flags

Postman Collection
OpenAPI

APIs related to integrating feature flags with Jira Software.

These APIs are available to Atlassian Connect apps. To use these APIs you must have the jiraFeatureFlagInfoProvider module in your Connect app's descriptor. See https://developer.atlassian.com/cloud/jira/software/modules/feature-flag/.

These APIs are available to Forge apps with the devops:featureFlagInfoProvider module in the Forge app's manifest. See https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-software-feature-flag-info/.

POST

Submit Feature Flag data

Update / insert Feature Flag data.

Feature Flags are identified by their ID, and existing Feature Flag data for the same ID will be replaced if it exists and the updateSequenceId of existing data is less than the incoming data.

Submissions are performed asynchronously. Submitted data will eventually be available in Jira; most updates are available within a short period of time, but may take some time during peak load and/or maintenance times. The getFeatureFlagById operation can be used to confirm that data has been stored successfully (if needed).

In the case of multiple Feature Flags being submitted in one request, each is validated individually prior to submission. Details of which Feature Flags failed submission (if any) are available in the response object.

Data Security Policy: Not exempt from app access rules
Scopes
write:feature-flag-info:jira

Connect app scope requiredWRITE

Request

Header parameters

Authorization

string

Required

Request bodyapplication/json

Feature Flag data to submit.

properties

Properties

flags

array<FeatureFlagData>

Required
providerMetadata

ProviderMetadata

Responses

Submission accepted. Each submitted Feature Flag that is of a valid format will be eventually available in Jira.

Details of which Feature Flags were submitted and which failed submission (due to data format problems etc.) are available in the response object.

application/json

SubmitFeatureFlagsResponse

The result of a successful submitFeatureFlags request.

POST/rest/featureflags/0.1/bulk
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 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import { requestJira } from "@forge/bridge"; var bodyData = `{ "properties": { "accountId": "account-234", "projectId": "project-123" }, "flags": [ { "schemaVersion": "1.0", "id": "111-222-333", "key": "my-awesome-feature", "updateSequenceId": 1523494301448, "displayName": "Enable awesome feature", "issueKeys": [ "ISSUE-123" ], "associations": [ { "associationType": "issueIdOrKeys", "values": [ "ABC-123", "ABC-456" ] } ], "summary": { "url": "https://example.com/project/feature-123/summary", "status": { "enabled": true, "defaultValue": "Disabled", "rollout": { "percentage": 80 } }, "lastUpdated": "2018-01-20T23:27:25.000Z" }, "details": [ { "url": "https://example.com/project/feature-123/production", "lastUpdated": "2018-01-20T23:27:25.000Z", "environment": { "name": "prod-us-west", "type": "production" }, "status": { "enabled": true, "defaultValue": "Disabled", "rollout": { "percentage": 80 } } } ] } ], "providerMetadata": { "product": "Atlassian Release Platform 2.1.0" } }`; const response = await requestJira(`/rest/featureflags/0.1/bulk`, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: bodyData }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.json());
202Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "acceptedFeatureFlags": [ "111-222-333", "444-555-666" ], "failedFeatureFlags": {}, "unknownIssueKeys": [ "ISSUE-123" ], "unknownAssociations": [ { "associationType": "issueIdOrKeys", "values": [ "ABC-123", "ABC-456" ] } ] }
DEL

Delete Feature Flags by Property

Bulk delete all Feature Flags that match the given request.

One or more query params must be supplied to specify Properties to delete by. Optional param _updateSequenceId is no longer supported. If more than one Property is provided, data will be deleted that matches ALL of the Properties (e.g. treated as an AND). See the documentation for the submitFeatureFlags operation for more details.

e.g. DELETE /bulkByProperties?accountId=account-123&createdBy=user-456

Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed).

Data Security Policy: Not exempt from app access rules
Scopes
delete:feature-flag-info:jira

Connect app scope requiredDELETE

Request

Query parameters

_updateSequenceId

integer

Header parameters

Authorization

string

Required

Responses

Delete accepted. Data will eventually be removed from Jira.

DEL/rest/featureflags/0.1/bulkByProperties
1 2 3 4 5 6 7 8 9 10 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import { requestJira } from "@forge/bridge"; const response = await requestJira(`/rest/featureflags/0.1/bulkByProperties`, { method: 'DELETE' }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.text());
GET

Get a Feature Flag by ID

Retrieve the currently stored Feature Flag data for the given ID. The result will be what is currently stored, ignoring any pending updates or deletes.

Data Security Policy: Not exempt from app access rules
Scopes
read:feature-flag-info:jira

Connect app scope requiredREAD

Request

Path parameters

featureFlagId

string

Required

Header parameters

Authorization

string

Required

Responses

The Feature Flag data currently stored for the given ID.

application/json

FeatureFlagData

Data related to a single Feature Flag, across any Environment that the flag is present in.

GET/rest/featureflags/0.1/flag/{featureFlagId}
1 2 3 4 5 6 7 8 9 10 11 12 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import { requestJira } from "@forge/bridge"; const response = await requestJira(`/rest/featureflags/0.1/flag/{featureFlagId}`, { 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 { "schemaVersion": "1.0", "id": "111-222-333", "key": "my-awesome-feature", "updateSequenceId": 1523494301448, "displayName": "Enable awesome feature", "issueKeys": [ "ISSUE-123" ], "associations": [ { "associationType": "issueIdOrKeys", "values": [ "ABC-123", "ABC-456" ] } ], "summary": { "url": "https://example.com/project/feature-123/summary", "status": { "enabled": true, "defaultValue": "Disabled", "rollout": { "percentage": 80 } }, "lastUpdated": "2018-01-20T23:27:25.000Z" }, "details": [ { "url": "https://example.com/project/feature-123/production", "lastUpdated": "2018-01-20T23:27:25.000Z", "environment": { "name": "prod-us-west", "type": "production" }, "status": { "enabled": true, "defaultValue": "Disabled", "rollout": { "percentage": 80 } } } ] }
DEL

Delete a Feature Flag by ID

Delete the Feature Flag data currently stored for the given ID.

Deletion is performed asynchronously. The getFeatureFlagById operation can be used to confirm that data has been deleted successfully (if needed).

Data Security Policy: Not exempt from app access rules
Scopes
delete:feature-flag-info:jira

Connect app scope requiredDELETE

Request

Path parameters

featureFlagId

string

Required

Query parameters

_updateSequenceId

integer

Header parameters

Authorization

string

Required

Responses

Delete has been accepted. Data will eventually be removed from Jira if it exists.

DEL/rest/featureflags/0.1/flag/{featureFlagId}
1 2 3 4 5 6 7 8 9 10 // This sample uses Atlassian Forge // https://developer.atlassian.com/platform/forge/ import { requestJira } from "@forge/bridge"; const response = await requestJira(`/rest/featureflags/0.1/flag/{featureFlagId}`, { method: 'DELETE' }); console.log(`Response: ${response.status} ${response.statusText}`); console.log(await response.text());

Rate this page: