This page contains announcements and updates for developers from various products, platforms, and programs across Atlassian. It includes filter controls to make it easier to only see updates relevant to you.
To ensure you don’t miss any updates, we also provide RSS feeds. These feeds will take on any filters you applied to the page, and are a standardized way of keeping up-to-date with Atlassian changes for developers. For example, in Slack with the RSS app installed, you can type /feed <FEED URL> in any channel, and RSS updates will appear in that channel as they are posted.
As previously mentioned in CHANGE-2770, support for several cross-workspace APIs has ended.
We are announcing the availability of two new public REST APIs that return information about the accessible workspaces for a user:
These new endpoints can be used alongside existing single-workspace scoped APIs to serve as replacements for the deprecated APIs.
Below is a table summarizing the deprecated APIs and the corresponding alternative APIs that we suggest transitioning to.
| Deprecated API description | Deprecated endpoint and link | Suggested alternative APIs |
1 | Returns a paginated list of all public repositories. |
|
|
2 | Returns an object for each repository the caller has explicit access to and their effective permission. |
|
|
3 | Returns all snippets. |
|
|
4 | Returns an object for each workspace the caller is a member of, and their effective role. |
|
|
5 | Returns a list of workspaces accessible by the authenticated user. |
|
For the first three deprecated APIs, if you already have a single workspace, simply transition to the workspace-scoped alternative by including the workspace slug or UUID in the request path.
However, if you do not already have a single workspace, we suggest using the workspace‑scoped APIs in combination with the new /2.0/user/workspaces API.
Use the /2.0/user/workspaces to get all accessible workspaces for the user
Request to workspace‑scoped alternative endpoint (example: /2.0/repositories/{workspace})
Option 1: select one accessible workspace to use in a request to the scoped endpoint (1 request)
Option 2: make a request for each accessible workspace and aggregate the results (N requests)
A new RFC is ready for review at: https://community.developer.atlassian.com/t/rfc-124-evolving-the-marketplace-trust-program/98418
We are extending the deprecation window for the following internal API that we previously announced would be removed from Confluence Cloud.
/download/attachments/{id}/{id}
This endpoint is still available via API token access in Confluence Cloud, and will remain available for 3 months from today until Apr 14, 2026, when we will remove API token access and such requests fail. All other endpoints from the announcement are still removed as stated.
Key Dates:
Deprecation announcement: Jan 15, 2026
Removal date: Apr 14, 2026
Why is this happening?
This API is not intended public use and is not supported.
What will happen?
On and after the removal date, all API token access requests to the listed endpoints will fail.
Action Required
Before the removal date, we recommend migrating to the Get URI to download attachment endpoint as an alternative.
Jira global background scripts are now available in Preview. This feature enables you to add an invisible container that coordinates data and behavior across all pages in Jira, enabling advanced integrations and automations.
We’re releasing this feature in preview to gather feedback and help you prepare for upcoming changes. You can use global background scripts in production environments during the preview period.
For more information, see Jira global background scripts (Preview)
As announced in July 2025, a number of glyphs for the Icon component will now be removed.
We identified an issue in the Transactions and Licenses APIs where the hostEntitlementNumber and hostLicenseId fields were incorrectly mapped to Customer Service Management (CSM) (part of Service Collection SKU) instead of the underlying Atlassian Apps (Jira or Jira Service Management).
This issue affected approximately 8K entitlements across partners and has now been fixed as of Jan 15, 2026.
hostEntitlementNumber and correspondly hostLicenseId will no longer map to Customer Service Management.
The app entitlements now map to the corresponding Jira products:
Jira Service Management (JSM), or
Jira.
No entitlements were removed; only the host entitlement has been updated.
Partners can use the lastUpdated field to identify updated licenses and transactions via:
We’ve updated how Data Center promotion are paginated in the Get promotions paged API so they behave consistently with Cloud promotion.
What changed
Previously, partners used the limit , totalItems and offset fields to navigate Data Center and Server promotion via: https://developer.atlassian.com/platform/marketplace/rest/v1/api-group-promotions/#api-group-promotions
As part of the ongoing DC promotion migration( https://developer.atlassian.com/platform/marketplace/changelog/#CHANGE-2986):
Data Center promotion codes
Now use cursor-based pagination via the nextId and prevId fields returned by the API response.
This is aligned with how Cloud promotions are already paginated.
Partners are requested to use the nextId and prevId values to navigate forward and backward through pages of Data Center promotion codes.
Server promotion codes
No change. Server promotion continue to use limit, totalItems and offset for pagination.
You can keep using your existing integration for Server-only use cases.
For full API details, see the Promotions API docs below, while Changes to Developer documents will be updated by Jan 23, 2026
https://developer.atlassian.com/platform/marketplace/rest/v1/api-group-promotions/#api-group-promotions
A new RFC is ready for review at: https://community.developer.atlassian.com/t/rfc-123-csm-extensibility-on-forge/98412
The avi:jira:created:issue event now includes an clonedFrom field if the issue was created through the “Clone” operation. This field contains the ID and key of the original issue.
Support for Claude Opus 4.5 model is now available in Forge LLMs. This is in addition to the already supported Claude Opus 4 and Claude Opus 4.1 models.
Also note that Claude Opus 4 has been marked as deprecated and support will be removed in February 2026.
Forge LLMs remain in Early Access (EAP). Due to high demand, participation is limited. To request access, join the waitlist here.
For the exhaustive list of supported models, refer to our documentation here
We announced in a previous changelog that we would be changing the Forge user invocation rate limits from 1,200 requests per minute (RPM) to 20 requests per second (RPS). In response to customer feedback, we’ve decided not to implement this change. Invocation rate limits will continue to be 1,200 per one-minute fixed window.
These invocation rate limits are applied specifically by the Forge platform, and unrelated to the upcoming Jira/Confluence point-based rate limits. For more information, see https://developer.atlassian.com/platform/forge/limits-invocation/.
We recently released a new Invite users to an organization API, which is available to all customers, as long as you have at least one paid subscription in your organization.
The new API (v2) supersedes the previous Invite user to org API (v1), which will stop working after June 30, 2026. The v1 API is only available to customers with the centralized user management experience.
We recommend you update your workflows to the new API as soon as possible to avoid any disruption.
Bitbucket Data Center and Server 8.19.27, 9.4.16, and 10.1.4 bug fix releases are available now!
To see the issues resolved in these bug fix releases, go to:
We’re introducing a new API to invite users to an organization: Invite users to an organization.
This API supersedes the previous Invite user to org API, which was only available to customers with the centralized user management experience.
The new API is available to all customers, as long as you have at least one paid subscription in your organization. This API also lets you add users to groups in an invitation, which wasn’t supported in the previous API.
This fix will be rolled out on Jan 28, 2026 across all Jira Cloud instances.
We fixed bugs that caused the Issues Match REST API and webhooks to evaluate JQL queries differently than the standard Issue Navigator. JQL expressions using EMPTY or != with issue properties or the "Epic Label" field now return consistent results across all Jira Cloud features.
This fix is not backward-compatible. Integrations that relied on the previous behavior may see different results from the Match API or different events triggering webhooks.
Related tickets: JRACLOUD-96922, JRACLOUD-97120
JQL expression | Previous behavior (Match API/webhooks) | New behavior |
|---|---|---|
| Did not match issues where the field was unset | Matches issues where the field is unset |
| Matched correctly | No change |
| Did not match issues where the field was unset | Matches issues where the field is unset |
| Matched all issues, including those where the field was unset | Only matches issues where the field is set |
| Matched correctly | No change |
| Matched all issues, including those where the field was unset | Only matches issues where the field is set |
This applies to both issue properties (for example, issue.property[key].path) and the "Epic Label" field.
JQL expression | Previous behavior | New behavior |
|---|---|---|
| Returned issues where the property was never set | Only matches issues where the property exists and its value is not |
You may see differences in:
The issues returned by POST /rest/api/3/match when using JQL with EMPTY or != on issue properties or "Epic Label"
The events that trigger webhooks using JQL filters with these operators and fields
Review any JQL used in webhook filters or Match API requests that contains:
EMPTY operators with issue properties or "Epic Label"
!= comparisons with issue properties
Best practices:
Goal | Recommended JQL |
|---|---|
Check if a field is set |
|
Check if a field is not set |
|
Specific scenarios:
To find issues where a property is either not set OR has a different value:
1
issue.property[key].path != "a" OR issue.property[key].path IS EMPTYTo find issues where a property is set AND has a different value:
1
issue.property[key].path != "a" AND issue.property[key].path IS NOT EMPTYTest critical webhook flows and integrations that use the Match API to confirm they behave as expected.
Rate this page: